code-coordinator 0.5.131__tar.gz → 0.5.133__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (864) hide show
  1. code_coordinator-0.5.133/PKG-INFO +512 -0
  2. code_coordinator-0.5.133/README.md +472 -0
  3. code_coordinator-0.5.133/code_coordinator.egg-info/PKG-INFO +512 -0
  4. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/code_coordinator.egg-info/scm_version.json +2 -2
  5. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/drive_queue.py +249 -28
  6. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_drive_queue.py +253 -0
  7. code_coordinator-0.5.131/PKG-INFO +0 -627
  8. code_coordinator-0.5.131/README.md +0 -587
  9. code_coordinator-0.5.131/code_coordinator.egg-info/PKG-INFO +0 -627
  10. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/.claude/commands/board.md +0 -0
  11. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/.claude/commands/complete-session.md +0 -0
  12. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/.claude/commands/coordinator.md +0 -0
  13. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/.githooks/_lib.sh +0 -0
  14. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/.githooks/post-checkout +0 -0
  15. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/.githooks/post-commit +0 -0
  16. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/.githooks/post-merge +0 -0
  17. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  18. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/.github/coord-ci-acceptance.yml +0 -0
  19. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/.github/workflows/auto-release.yml +0 -0
  20. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/.github/workflows/cargo-test.yml +0 -0
  21. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/.github/workflows/publish.yml +0 -0
  22. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/.github/workflows/release-tui.yml +0 -0
  23. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/.github/workflows/test.yml +0 -0
  24. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/.gitignore +0 -0
  25. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/CLAUDE.md +0 -0
  26. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/GOAL.md +0 -0
  27. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/LICENSE +0 -0
  28. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/MANIFEST.in +0 -0
  29. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/code_coordinator.egg-info/SOURCES.txt +0 -0
  30. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/code_coordinator.egg-info/dependency_links.txt +0 -0
  31. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/code_coordinator.egg-info/entry_points.txt +0 -0
  32. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/code_coordinator.egg-info/requires.txt +0 -0
  33. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/code_coordinator.egg-info/scm_file_list.json +0 -0
  34. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/code_coordinator.egg-info/top_level.txt +0 -0
  35. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/__init__.py +0 -0
  36. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/_board_mapping.py +0 -0
  37. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/acceptance.py +0 -0
  38. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/acceptance_drivers.py +0 -0
  39. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/agent.py +0 -0
  40. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/agent_app.py +0 -0
  41. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/agent_update.py +0 -0
  42. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/agents/opencode/.gitignore +0 -0
  43. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/agents/opencode/agents/work.md +0 -0
  44. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/agents/opencode/routing.jsonc +0 -0
  45. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/audit.py +0 -0
  46. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/auto_loop.py +0 -0
  47. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/block_log.py +0 -0
  48. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/board_bool_guard.py +0 -0
  49. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/board_service.py +0 -0
  50. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/board_wire.py +0 -0
  51. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/brain.py +0 -0
  52. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/branch_model.py +0 -0
  53. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/bug_intake.py +0 -0
  54. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/cargo_cache.py +0 -0
  55. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/ci_github.py +0 -0
  56. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/ci_store.py +0 -0
  57. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/claim.py +0 -0
  58. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/cli.py +0 -0
  59. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/client.py +0 -0
  60. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/commands/__init__.py +0 -0
  61. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/commands/_common.py +0 -0
  62. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/commands/acceptance.py +0 -0
  63. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/commands/agent_ops.py +0 -0
  64. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/commands/audit.py +0 -0
  65. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/commands/chat.py +0 -0
  66. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/commands/dispatch.py +0 -0
  67. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/commands/dispatch_workers.py +0 -0
  68. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/commands/drive.py +0 -0
  69. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/commands/drive_queue.py +0 -0
  70. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/commands/gate_a.py +0 -0
  71. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/commands/gates.py +0 -0
  72. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/commands/issues.py +0 -0
  73. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/commands/lifecycle.py +0 -0
  74. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/commands/merge.py +0 -0
  75. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/commands/milestone.py +0 -0
  76. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/commands/plan_followup.py +0 -0
  77. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/commands/plans.py +0 -0
  78. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/commands/portal.py +0 -0
  79. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/commands/release.py +0 -0
  80. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/commands/repo.py +0 -0
  81. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/commands/report.py +0 -0
  82. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/commands/review.py +0 -0
  83. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/commands/scorecard.py +0 -0
  84. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/commands/sessions.py +0 -0
  85. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/commands/setup.py +0 -0
  86. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/commands/status.py +0 -0
  87. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/commands/terminal.py +0 -0
  88. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/commands/test_gate.py +0 -0
  89. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/commands/tui.py +0 -0
  90. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/comments.py +0 -0
  91. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/config.py +0 -0
  92. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/config_reload.py +0 -0
  93. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/conflict_fix.py +0 -0
  94. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dao.py +0 -0
  95. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/__init__.py +0 -0
  96. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/fixture.py +0 -0
  97. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/index.html +0 -0
  98. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/server.py +0 -0
  99. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/terminal.py +0 -0
  100. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/.gitignore +0 -0
  101. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/components.json +0 -0
  102. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/dist/assets/Gallery-BoKs3mpY.js +0 -0
  103. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/dist/assets/Terminal-9CEnUXvW.css +0 -0
  104. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/dist/assets/Terminal-CEsP08iX.js +0 -0
  105. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/dist/assets/index-CDHPlB6k.js +0 -0
  106. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/dist/assets/index-Dq4kwTdw.css +0 -0
  107. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/dist/assets/workbox-window.prod.es5-BqEJf4Xk.js +0 -0
  108. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/dist/icons/icon-192.png +0 -0
  109. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/dist/icons/icon-512.png +0 -0
  110. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/dist/icons/icon.svg +0 -0
  111. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/dist/index.html +0 -0
  112. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/dist/manifest.webmanifest +0 -0
  113. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/dist/sw.js +0 -0
  114. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/dist/workbox-e4022e15.js +0 -0
  115. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/e2e/available-gates-terminal.spec.ts +0 -0
  116. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/e2e/deep-link.spec.ts +0 -0
  117. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/e2e/fixtureServer.ts +0 -0
  118. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/e2e/live-update-fixture.spec.ts +0 -0
  119. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/e2e/realtime.spec.ts +0 -0
  120. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/e2e/shell.spec.ts +0 -0
  121. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/e2e/smoke.spec.ts +0 -0
  122. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/e2e/terminal.spec.ts +0 -0
  123. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/e2e/theme.spec.ts +0 -0
  124. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/eslint.config.js +0 -0
  125. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/index.html +0 -0
  126. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/node_modules/flatted/python/flatted.py +0 -0
  127. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/package-lock.json +0 -0
  128. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/package.json +0 -0
  129. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/playwright.acceptance.config.ts +0 -0
  130. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/playwright.config.ts +0 -0
  131. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/postcss.config.js +0 -0
  132. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/public/icons/icon-192.png +0 -0
  133. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/public/icons/icon-512.png +0 -0
  134. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/public/icons/icon.svg +0 -0
  135. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/App.tsx +0 -0
  136. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/api/client.ts +0 -0
  137. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/api/generated.ts +0 -0
  138. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/components/ConnectionBadge.tsx +0 -0
  139. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/components/Detail.tsx +0 -0
  140. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/components/Gallery.tsx +0 -0
  141. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/components/Home.tsx +0 -0
  142. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/components/MobileKeyBar.tsx +0 -0
  143. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/components/PanelHeader.tsx +0 -0
  144. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/components/PipelineCard.tsx +0 -0
  145. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/components/SessionCard.tsx +0 -0
  146. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/components/SessionDetail.tsx +0 -0
  147. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/components/SessionsList.tsx +0 -0
  148. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/components/Terminal.tsx +0 -0
  149. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/components/__tests__/ConnectionBadge.test.tsx +0 -0
  150. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/components/__tests__/Detail.test.tsx +0 -0
  151. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/components/__tests__/Gallery.test.tsx +0 -0
  152. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/components/__tests__/Home.test.tsx +0 -0
  153. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/components/__tests__/MobileKeyBar.test.tsx +0 -0
  154. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/components/__tests__/PipelineCard.test.tsx +0 -0
  155. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/components/__tests__/SessionCard.test.tsx +0 -0
  156. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/components/__tests__/Terminal.test.tsx +0 -0
  157. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/components/ui/badge.tsx +0 -0
  158. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/components/ui/button.tsx +0 -0
  159. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/components/ui/card.tsx +0 -0
  160. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/components/ui/dialog.tsx +0 -0
  161. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/components/ui/dropdown-menu.tsx +0 -0
  162. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/components/ui/empty-state.tsx +0 -0
  163. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/components/ui/sheet.tsx +0 -0
  164. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/components/ui/skeleton.tsx +0 -0
  165. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/components/ui/tabs.tsx +0 -0
  166. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/components/ui/theme-provider.tsx +0 -0
  167. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/components/ui/theme-toggle.tsx +0 -0
  168. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/components/ui/toast.tsx +0 -0
  169. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/components/ui/toaster.tsx +0 -0
  170. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/components/ui/tooltip.tsx +0 -0
  171. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/components/ui/use-toast.ts +0 -0
  172. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/index.css +0 -0
  173. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/lib/pipeline.ts +0 -0
  174. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/lib/utils.ts +0 -0
  175. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/main.tsx +0 -0
  176. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/realtime/RealtimeProvider.tsx +0 -0
  177. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/realtime/__tests__/RealtimeProvider.test.tsx +0 -0
  178. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/realtime/__tests__/connection.test.ts +0 -0
  179. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/realtime/connection.ts +0 -0
  180. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/realtime/events.ts +0 -0
  181. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/routes/__tests__/paths.test.ts +0 -0
  182. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/routes/paths.ts +0 -0
  183. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/shell/ActivityRail.tsx +0 -0
  184. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/shell/AppShell.tsx +0 -0
  185. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/shell/ComingSoon.tsx +0 -0
  186. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/shell/EmptyDetail.tsx +0 -0
  187. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/shell/RouteNotFound.tsx +0 -0
  188. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/shell/ShellLayout.tsx +0 -0
  189. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/shell/StatusBar.tsx +0 -0
  190. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/shell/__tests__/ShellLayout.test.tsx +0 -0
  191. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/shell/__tests__/shellState.test.ts +0 -0
  192. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/shell/__tests__/stubViewport.ts +0 -0
  193. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/shell/breakpoints.ts +0 -0
  194. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/shell/railItems.ts +0 -0
  195. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/shell/shellState.ts +0 -0
  196. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/shell/useRegionFocus.ts +0 -0
  197. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/test-setup.ts +0 -0
  198. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/src/vite-env.d.ts +0 -0
  199. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/tailwind.config.js +0 -0
  200. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/tsconfig.json +0 -0
  201. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/tsconfig.node.json +0 -0
  202. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dashboard/webapp/vite.config.ts +0 -0
  203. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/db.py +0 -0
  204. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dead_end.py +0 -0
  205. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/deploy/README.md +0 -0
  206. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/deploy/coord-agent.service +0 -0
  207. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/deploy/coord-db-backup.service +0 -0
  208. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/deploy/coord-db-backup.sh +0 -0
  209. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/deploy/coord-db-backup.timer +0 -0
  210. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/deploy/coord-drive-queue.service +0 -0
  211. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/deploy/coord-drive-queue.timer +0 -0
  212. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/deploy/coord-notify.service +0 -0
  213. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/deploy/coord-notify.timer +0 -0
  214. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/deploy/coord-release-propagate.service +0 -0
  215. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/deploy/coord-release-propagate.timer +0 -0
  216. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/deploy/coord-release-window.service +0 -0
  217. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/deploy/coord-release-window.timer +0 -0
  218. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/deploy/coord-serve.service +0 -0
  219. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/deploy/coord-web-dist-build.service +0 -0
  220. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/deploy/coord-web-dist-build.timer +0 -0
  221. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/deploy/coord-web.service +0 -0
  222. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/deploy_manifest.py +0 -0
  223. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/deploy_units.py +0 -0
  224. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/deps.py +0 -0
  225. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/diagnose.py +0 -0
  226. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dispatch.py +0 -0
  227. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/dist_name.py +0 -0
  228. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/drive.py +0 -0
  229. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/drive_state.py +0 -0
  230. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/events.py +0 -0
  231. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/failure_class.py +0 -0
  232. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/filelock.py +0 -0
  233. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/fleet_config_health.py +0 -0
  234. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/freshness.py +0 -0
  235. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/gate_a.py +0 -0
  236. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/gate_b.py +0 -0
  237. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/gate_snapshot.py +0 -0
  238. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/gates.py +0 -0
  239. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/github_ops.py +0 -0
  240. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/goal.py +0 -0
  241. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/graph_health.py +0 -0
  242. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/health/__init__.py +0 -0
  243. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/health/aggregate.py +0 -0
  244. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/health/checks/__init__.py +0 -0
  245. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/health/checks/agent_install.py +0 -0
  246. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/health/checks/cargo_targets.py +0 -0
  247. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/health/checks/claude_binary.py +0 -0
  248. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/health/checks/deploy_lane_facts.py +0 -0
  249. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/health/checks/disk.py +0 -0
  250. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/health/checks/fleet_board.py +0 -0
  251. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/health/checks/fleet_deploy_lanes.py +0 -0
  252. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/health/checks/fleet_phantom.py +0 -0
  253. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/health/checks/fleet_unit_drift.py +0 -0
  254. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/health/checks/graph.py +0 -0
  255. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/health/checks/graphify_cli.py +0 -0
  256. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/health/checks/index_lock.py +0 -0
  257. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/health/checks/plan_usage.py +0 -0
  258. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/health/checks/repo_state.py +0 -0
  259. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/health/checks/spawned_coord.py +0 -0
  260. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/health/checks/timer_active.py +0 -0
  261. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/health/checks/toolchain.py +0 -0
  262. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/health/checks/unit_drift.py +0 -0
  263. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/health/checks/unit_enablement.py +0 -0
  264. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/health/checks/worktrees.py +0 -0
  265. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/health/cli.py +0 -0
  266. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/health/context.py +0 -0
  267. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/health/fleet_snapshot.py +0 -0
  268. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/health/models.py +0 -0
  269. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/health/pypi.py +0 -0
  270. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/health/registry.py +0 -0
  271. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/health/render.py +0 -0
  272. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/health/units.py +0 -0
  273. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/hooks.py +0 -0
  274. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/housekeeping.py +0 -0
  275. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/interactive.py +0 -0
  276. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/issue_store.py +0 -0
  277. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/liveness_auditor.py +0 -0
  278. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/machine_pause.py +0 -0
  279. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/merge_queue.py +0 -0
  280. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/milestone_chat.py +0 -0
  281. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/milestone_dispatch.py +0 -0
  282. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/milestone_gate.py +0 -0
  283. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/milestone_order.py +0 -0
  284. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/mock_author.py +0 -0
  285. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/models.py +0 -0
  286. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/network.py +0 -0
  287. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/new_issue_chat.py +0 -0
  288. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/notifier/__init__.py +0 -0
  289. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/notifier/baseline.py +0 -0
  290. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/notifier/cli.py +0 -0
  291. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/notifier/collect.py +0 -0
  292. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/notifier/digest.py +0 -0
  293. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/notifier/models.py +0 -0
  294. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/notifier/predicate.py +0 -0
  295. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/notifier/service.py +0 -0
  296. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/notifier/store.py +0 -0
  297. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/notifier/transport.py +0 -0
  298. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/notify.py +0 -0
  299. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/openapi.py +0 -0
  300. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/overlap_fence.py +0 -0
  301. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/overlap_predict.py +0 -0
  302. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/parentage.py +0 -0
  303. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/parentage_github.py +0 -0
  304. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/pipeline.py +0 -0
  305. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/plan_parser.py +0 -0
  306. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/plans.py +0 -0
  307. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/platform_paths.py +0 -0
  308. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/portal_bridge.py +0 -0
  309. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/portal_store.py +0 -0
  310. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/portal_sync.py +0 -0
  311. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/pr_body_lint.py +0 -0
  312. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/prereqs.py +0 -0
  313. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/progress.py +0 -0
  314. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/providers/__init__.py +0 -0
  315. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/providers/base.py +0 -0
  316. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/providers/claude.py +0 -0
  317. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/providers/claude_pty.py +0 -0
  318. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/providers/opencode.py +0 -0
  319. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/queue_diagnose.py +0 -0
  320. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/reconcile.py +0 -0
  321. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/refine_chat.py +0 -0
  322. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/release_cordon.py +0 -0
  323. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/release_propagate.py +0 -0
  324. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/release_verify.py +0 -0
  325. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/release_window.py +0 -0
  326. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/repo_edit.py +0 -0
  327. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/repo_onboard.py +0 -0
  328. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/reports.py +0 -0
  329. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/revalidate.py +0 -0
  330. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/review.py +0 -0
  331. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/scorecard.py +0 -0
  332. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/serve_app.py +0 -0
  333. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/skills/portal-followup/SKILL.md +0 -0
  334. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/skills/update-issue/SKILL.md +0 -0
  335. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/smoke.py +0 -0
  336. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/spend_ceiling.py +0 -0
  337. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/split_work.py +0 -0
  338. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/stage_projection.py +0 -0
  339. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/state.py +0 -0
  340. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/test_author.py +0 -0
  341. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/test_chat.py +0 -0
  342. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/test_orchestrator.py +0 -0
  343. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/test_report.py +0 -0
  344. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/tui_release.py +0 -0
  345. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/usage.py +0 -0
  346. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/usage_limits.py +0 -0
  347. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/usage_rollup.py +0 -0
  348. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coord/worker_events.py +0 -0
  349. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/coordinator.example.yml +0 -0
  350. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/deploy/coord-agent.service +0 -0
  351. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/deploy/coord-db-backup.service +0 -0
  352. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/deploy/coord-db-backup.sh +0 -0
  353. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/deploy/coord-db-backup.timer +0 -0
  354. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/deploy/coord-drive-queue.service +0 -0
  355. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/deploy/coord-drive-queue.timer +0 -0
  356. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/deploy/coord-notify.service +0 -0
  357. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/deploy/coord-notify.timer +0 -0
  358. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/deploy/coord-release-propagate.service +0 -0
  359. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/deploy/coord-release-propagate.timer +0 -0
  360. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/deploy/coord-release-window.service +0 -0
  361. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/deploy/coord-release-window.timer +0 -0
  362. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/deploy/coord-serve.service +0 -0
  363. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/deploy/coord-web-dist-build.service +0 -0
  364. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/deploy/coord-web-dist-build.sh +0 -0
  365. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/deploy/coord-web-dist-build.timer +0 -0
  366. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/deploy/coord-web-rollback.sh +0 -0
  367. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/deploy/coord-web.service +0 -0
  368. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/deploy/node-shim.sh +0 -0
  369. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/docs/AGENT_OPERATIONS.md +0 -0
  370. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/docs/ARCHITECTURE.md +0 -0
  371. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/docs/ARCH_SECURITY_GATES.md +0 -0
  372. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/docs/COCKPIT.md +0 -0
  373. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/docs/CONTROL_CENTER.md +0 -0
  374. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/docs/COST_DISCIPLINE.md +0 -0
  375. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/docs/CROSS_PLATFORM.md +0 -0
  376. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/docs/CUSTOMER_PORTAL.md +0 -0
  377. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/docs/DRIVE_QUEUE.md +0 -0
  378. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/docs/EPHEMERAL_WORKERS.md +0 -0
  379. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/docs/FORGE_MIGRATION.md +0 -0
  380. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/docs/GRAPHIFY_SETUP.md +0 -0
  381. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/docs/ISSUE_GUIDANCE.md +0 -0
  382. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/docs/MAC_MINI.md +0 -0
  383. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
  384. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/docs/NOTIFIER.md +0 -0
  385. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/docs/OPENCODE_VERIFICATION.md +0 -0
  386. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/docs/OPERATING_GOTCHAS.md +0 -0
  387. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/docs/ORACLE_LOOP.md +0 -0
  388. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/docs/PHONE_WEBAPP.md +0 -0
  389. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/docs/PIPELINE_V2.md +0 -0
  390. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/docs/PLATFORM_EVOLUTION.md +0 -0
  391. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/docs/SECOND_BACKEND.md +0 -0
  392. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/docs/STORE_SERVICE.md +0 -0
  393. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/docs/TEST_FIRST_BUG_LANE.md +0 -0
  394. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/docs/WEB_CONTROL_CENTER.md +0 -0
  395. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/docs/WSL_WINDOWS_WORKER.md +0 -0
  396. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/docs/mocks/web/README.md +0 -0
  397. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/docs/mocks/web/_tokens.css +0 -0
  398. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/docs/mocks/web/issue-detail.html +0 -0
  399. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/docs/mocks/web/pipeline-narrow.html +0 -0
  400. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/docs/mocks/web/pipeline-wide.html +0 -0
  401. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/graphify-out/.gitignore +0 -0
  402. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/install-agent.sh +0 -0
  403. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/pyproject.toml +0 -0
  404. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/scripts/audit_review_verdict_overrides.py +0 -0
  405. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/scripts/azure-workers/bootstrap-shared.sh +0 -0
  406. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/scripts/azure-workers/build-worker-image.sh +0 -0
  407. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/scripts/azure-workers/coordinator-machine.py +0 -0
  408. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/scripts/azure-workers/epic-down.sh +0 -0
  409. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/scripts/azure-workers/epic-up.sh +0 -0
  410. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/scripts/azure-workers/preflight.sh +0 -0
  411. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/scripts/azure-workers/provision-worker.sh +0 -0
  412. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
  413. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/scripts/azure-workers/tailnet-acl.hujson +0 -0
  414. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/scripts/azure-workers/verify-github-token.sh +0 -0
  415. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/scripts/codegen.py +0 -0
  416. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/scripts/coord-test-runner.sh +0 -0
  417. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/scripts/drive-batch.sh +0 -0
  418. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/scripts/gen_board_fixture.py +0 -0
  419. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/scripts/next_release_tag.py +0 -0
  420. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/scripts/run_tests_in_populated_home.sh +0 -0
  421. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/scripts/run_tests_without_gh.sh +0 -0
  422. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/scripts/smoke_437_interactive.py +0 -0
  423. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/scripts/verify_878_review_capture.py +0 -0
  424. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/scripts/verify_release_published.py +0 -0
  425. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/scripts/verify_release_wheel.py +0 -0
  426. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/setup.cfg +0 -0
  427. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/SMOKE_SET.md +0 -0
  428. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/__init__.py +0 -0
  429. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-33/audit_1039.rs +0 -0
  430. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-33/contract.md +0 -0
  431. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-33/manifest.yml +0 -0
  432. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-33/mocks/audit-panel-detail.screen +0 -0
  433. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-33/mocks/audit-panel-empty.screen +0 -0
  434. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-33/mocks/audit-panel-filters.screen +0 -0
  435. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-33/mocks/audit-panel-populated.screen +0 -0
  436. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-37/conftest.py +0 -0
  437. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-37/contract.md +0 -0
  438. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-37/manifest.yml +0 -0
  439. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
  440. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
  441. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-38/contract.md +0 -0
  442. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-38/manifest.yml +0 -0
  443. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-38/mocks/plans-base.screen +0 -0
  444. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-38/mocks/plans-detail-pane.screen +0 -0
  445. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-38/mocks/plans-help-overlay.screen +0 -0
  446. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-38/mocks/plans-palette.screen +0 -0
  447. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-38/mocks/plans-rightclick-epic.screen +0 -0
  448. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-38/mocks/plans-rightclick-header.screen +0 -0
  449. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-38/mocks/plans-rightclick-stub.screen +0 -0
  450. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-38/plans_detail_1122.rs +0 -0
  451. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-38/plans_help_1124.rs +0 -0
  452. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-38/plans_rightclick_1123.rs +0 -0
  453. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-51/contract.md +0 -0
  454. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
  455. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
  456. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-51/manifest.yml +0 -0
  457. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
  458. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-51/tsconfig.json +0 -0
  459. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-65/board_tabs_2282.rs +0 -0
  460. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-65/contract.md +0 -0
  461. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-65/manifest.yml +0 -0
  462. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-65/mocks/board-baseline-no-tabs.screen +0 -0
  463. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-65/mocks/board-pinned-3-tabs.screen +0 -0
  464. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-65/mocks/board-preview-tab.screen +0 -0
  465. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-65/mocks/board-split-side-by-side.screen +0 -0
  466. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-65/mocks/board-tab-context-menu.screen +0 -0
  467. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-65/mocks/board-tabs-help-overlay.screen +0 -0
  468. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-65/mocks/board-tabs-overflow.screen +0 -0
  469. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-65/mocks/pipeline-tabs-independent.screen +0 -0
  470. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
  471. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/conftest.py +0 -0
  472. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/fixtures/board-pipeline-basic.json +0 -0
  473. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
  474. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
  475. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
  476. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/fixtures/opencode_run_sample.jsonl +0 -0
  477. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/fixtures/playwright/all_pass.json +0 -0
  478. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/fixtures/playwright/global_setup_crash.json +0 -0
  479. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/fixtures/playwright/mixed_fail.json +0 -0
  480. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/fixtures/playwright/retry_then_pass.json +0 -0
  481. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
  482. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/fixtures/playwright/skip.json +0 -0
  483. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/fixtures/playwright/truncated.json +0 -0
  484. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
  485. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
  486. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
  487. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
  488. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
  489. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
  490. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
  491. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
  492. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_acceptance.py +0 -0
  493. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_acceptance_drivers.py +0 -0
  494. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_agent.py +0 -0
  495. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_agent_api_error.py +0 -0
  496. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_agent_app.py +0 -0
  497. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_agent_branch_base.py +0 -0
  498. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_agent_branch_capture.py +0 -0
  499. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_agent_config_free_1712.py +0 -0
  500. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_agent_deploy_units_endpoint.py +0 -0
  501. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_agent_dirty_worktree.py +0 -0
  502. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_agent_graph_self_heal.py +0 -0
  503. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_agent_health_h3.py +0 -0
  504. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_agent_idle_restart.py +0 -0
  505. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_agent_push_failure.py +0 -0
  506. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_agent_reap.py +0 -0
  507. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_agent_repos_and_pull.py +0 -0
  508. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_agent_restart_services_endpoint.py +0 -0
  509. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_agent_startup_diagnostics.py +0 -0
  510. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_agent_update.py +0 -0
  511. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_agent_update_bluegreen.py +0 -0
  512. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_agent_usage_limit.py +0 -0
  513. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_agent_zero_commit.py +0 -0
  514. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_ambient_home_isolation.py +0 -0
  515. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_approve_reject_plan.py +0 -0
  516. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_approve_usage_gate.py +0 -0
  517. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_assignment_already_recorded_daemon.py +0 -0
  518. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_audit_log.py +0 -0
  519. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_audit_outcome.py +0 -0
  520. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_audit_query.py +0 -0
  521. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_auto_loop.py +0 -0
  522. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_auto_release_publish_2035.py +0 -0
  523. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_base_checkout_restore.py +0 -0
  524. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_block_log.py +0 -0
  525. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_board_cap_762.py +0 -0
  526. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_board_fixture.py +0 -0
  527. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_board_read_path.py +0 -0
  528. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_board_service.py +0 -0
  529. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_board_state.py +0 -0
  530. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_board_wire.py +0 -0
  531. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_brain.py +0 -0
  532. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_branch_model.py +0 -0
  533. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_bug_intake.py +0 -0
  534. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_build_worker_image_env_update.py +0 -0
  535. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cargo_cache.py +0 -0
  536. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_ci_acceptance_gate_1950.py +0 -0
  537. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_ci_parity_2091.py +0 -0
  538. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_ci_store.py +0 -0
  539. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_claim.py +0 -0
  540. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_acceptance.py +0 -0
  541. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_assign.py +0 -0
  542. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
  543. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_assign_interactive_remote.py +0 -0
  544. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_assign_provider.py +0 -0
  545. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_assign_repo_drift_2219.py +0 -0
  546. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_audit.py +0 -0
  547. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_chat_continue.py +0 -0
  548. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_diagnose_config_provenance.py +0 -0
  549. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_diagnose_graph.py +0 -0
  550. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_doctor.py +0 -0
  551. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_doctor_config_free_1801.py +0 -0
  552. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
  553. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_drive.py +0 -0
  554. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_drive_queue.py +0 -0
  555. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_escalate.py +0 -0
  556. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_fix_headless_review.py +0 -0
  557. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_gate_a.py +0 -0
  558. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_install_drift.py +0 -0
  559. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_install_skills.py +0 -0
  560. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_issue_create_label.py +0 -0
  561. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_issue_reopen.py +0 -0
  562. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_merge.py +0 -0
  563. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_milestone_assign.py +0 -0
  564. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_milestone_capture.py +0 -0
  565. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_milestone_chat_add_child.py +0 -0
  566. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_milestone_dispatch.py +0 -0
  567. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_milestone_gate_b.py +0 -0
  568. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_milestone_gate_c.py +0 -0
  569. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_milestone_order.py +0 -0
  570. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
  571. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_milestone_ship.py +0 -0
  572. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_network.py +0 -0
  573. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_new_issue_chat.py +0 -0
  574. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_plans.py +0 -0
  575. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_portal.py +0 -0
  576. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_pull_artifact.py +0 -0
  577. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_queue.py +0 -0
  578. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_reattach_sessions.py +0 -0
  579. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_refine_board.py +0 -0
  580. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_release_preflight.py +0 -0
  581. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_release_propagate.py +0 -0
  582. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_release_window.py +0 -0
  583. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_repo_2220.py +0 -0
  584. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_scorecard.py +0 -0
  585. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_set_review_findings.py +0 -0
  586. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_status_advisory_terminal.py +0 -0
  587. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_status_merge_queue.py +0 -0
  588. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_status_provider.py +0 -0
  589. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_status_review_finalizing.py +0 -0
  590. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_status_test_failed_tag.py +0 -0
  591. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_status_usage_limit.py +0 -0
  592. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_sync_comments_873.py +0 -0
  593. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_test_plan.py +0 -0
  594. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_track.py +0 -0
  595. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_tui_update.py +0 -0
  596. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cli_wait.py +0 -0
  597. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_client_base_install.py +0 -0
  598. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_comments.py +0 -0
  599. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_completion_summary.py +0 -0
  600. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_config.py +0 -0
  601. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_config_acceptance.py +0 -0
  602. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_config_audit.py +0 -0
  603. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_config_pricing.py +0 -0
  604. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
  605. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_config_usage_gate.py +0 -0
  606. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_conflict_fix.py +0 -0
  607. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_conflict_fix_semantic.py +0 -0
  608. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_coord_test.py +0 -0
  609. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_coord_test_runner_baseline.py +0 -0
  610. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_coord_test_runner_populated_home.py +0 -0
  611. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_coord_test_runner_routing.py +0 -0
  612. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_coord_test_runner_toolchain.py +0 -0
  613. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_coord_web_sse_restart_live.py +0 -0
  614. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_coordinator_machine.py +0 -0
  615. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_cross_platform_imports.py +0 -0
  616. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_dashboard.py +0 -0
  617. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_dashboard_fixture.py +0 -0
  618. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_dashboard_terminal.py +0 -0
  619. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_dashboard_terminal_live.py +0 -0
  620. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_db.py +0 -0
  621. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_dead_end.py +0 -0
  622. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_deploy_coord_db_backup.py +0 -0
  623. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_deploy_coord_web_dist.py +0 -0
  624. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_deploy_coord_web_rollback.py +0 -0
  625. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_deploy_drive_queue_unit.py +0 -0
  626. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_deploy_manifest.py +0 -0
  627. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_deploy_units_lane.py +0 -0
  628. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_deploy_web_unit.py +0 -0
  629. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_deps.py +0 -0
  630. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_diagnose.py +0 -0
  631. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_dispatch.py +0 -0
  632. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_dispatch_target_validation.py +0 -0
  633. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_dist_name.py +0 -0
  634. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_done_housekeeping.py +0 -0
  635. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_drive.py +0 -0
  636. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_drive_state.py +0 -0
  637. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_drive_tmux.py +0 -0
  638. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_epic_up_capability_detection.py +0 -0
  639. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
  640. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_epic_up_image_provenance.py +0 -0
  641. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_errors.py +0 -0
  642. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_events.py +0 -0
  643. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_failure_class.py +0 -0
  644. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_filelock.py +0 -0
  645. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
  646. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_fix_of_force_override.py +0 -0
  647. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_fleet_config_health.py +0 -0
  648. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_fleet_health_probes.py +0 -0
  649. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_fleet_health_snapshot.py +0 -0
  650. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_freshness.py +0 -0
  651. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_gate_a.py +0 -0
  652. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_gate_b.py +0 -0
  653. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_gate_snapshot_staleness.py +0 -0
  654. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_gates.py +0 -0
  655. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_gather_fleet_tmux_sessions.py +0 -0
  656. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_generated_types_fixture.py +0 -0
  657. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_github_ops.py +0 -0
  658. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_goal.py +0 -0
  659. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_graph_health.py +0 -0
  660. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_graph_selfheal_absent_2237.py +0 -0
  661. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_handoff.py +0 -0
  662. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_health_checks.py +0 -0
  663. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_health_cli.py +0 -0
  664. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_health_cli_graph.py +0 -0
  665. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_health_config.py +0 -0
  666. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_health_context.py +0 -0
  667. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_health_deploy_lane_facts.py +0 -0
  668. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_health_incident_regression.py +0 -0
  669. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_health_pypi.py +0 -0
  670. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_health_registry.py +0 -0
  671. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_health_timer_active.py +0 -0
  672. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_health_toolchain.py +0 -0
  673. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_health_unit_drift.py +0 -0
  674. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_health_unit_enablement.py +0 -0
  675. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_hooks.py +0 -0
  676. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_human_attended_437.py +0 -0
  677. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_init.py +0 -0
  678. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_integration.py +0 -0
  679. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_interactive_briefing_echo.py +0 -0
  680. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_interactive_prefill_state.py +0 -0
  681. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_interactive_session_relaunch.py +0 -0
  682. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_interactive_test_verdict_backstop.py +0 -0
  683. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_interactive_token_attribution.py +0 -0
  684. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_interactive_worktree.py +0 -0
  685. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_issue_store_seam.py +0 -0
  686. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_liveness_auditor.py +0 -0
  687. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_liveness_notify.py +0 -0
  688. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_machine_pause.py +0 -0
  689. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_merge_queue.py +0 -0
  690. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_merge_verify.py +0 -0
  691. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_milestone_chat.py +0 -0
  692. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_milestone_dispatch.py +0 -0
  693. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_milestone_gate.py +0 -0
  694. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_milestone_order.py +0 -0
  695. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_milestone_seam.py +0 -0
  696. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_mock_author.py +0 -0
  697. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_model_tiering.py +0 -0
  698. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_models.py +0 -0
  699. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_models_config_labels.py +0 -0
  700. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_needs_attention.py +0 -0
  701. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_network.py +0 -0
  702. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_new_issue_chat.py +0 -0
  703. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_next_release_tag.py +0 -0
  704. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_no_direct_gh_calls.py +0 -0
  705. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_node_shim.py +0 -0
  706. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_notifier_baseline.py +0 -0
  707. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_notifier_cli.py +0 -0
  708. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_notifier_collect.py +0 -0
  709. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_notifier_config.py +0 -0
  710. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_notifier_drive_seam.py +0 -0
  711. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_notifier_isolation.py +0 -0
  712. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_notifier_predicate.py +0 -0
  713. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_notifier_quiet_hours.py +0 -0
  714. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_notifier_service.py +0 -0
  715. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_notify.py +0 -0
  716. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_notify_drain.py +0 -0
  717. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_openapi.py +0 -0
  718. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_operational_defaults.py +0 -0
  719. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_overlap_fence.py +0 -0
  720. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_overlap_predict.py +0 -0
  721. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_packaged_deploy_units.py +0 -0
  722. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_parentage.py +0 -0
  723. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_paste_landed.py +0 -0
  724. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_pipeline.py +0 -0
  725. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_plan_followup_approve_plan_command.py +0 -0
  726. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_plan_followup_pr_command.py +0 -0
  727. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_plan_followup_review_command.py +0 -0
  728. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_plan_only.py +0 -0
  729. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_plan_parser.py +0 -0
  730. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_platform_paths.py +0 -0
  731. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_portal_bridge.py +0 -0
  732. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_portal_config.py +0 -0
  733. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_portal_sync.py +0 -0
  734. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_pr_body_lint.py +0 -0
  735. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_prereqs.py +0 -0
  736. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_production_db_guard.py +0 -0
  737. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_progress.py +0 -0
  738. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_provider_seam.py +0 -0
  739. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_providers.py +0 -0
  740. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_providers_config_labels.py +0 -0
  741. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_providers_pty.py +0 -0
  742. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_quiet_hours.py +0 -0
  743. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_quiet_hours_store_2146.py +0 -0
  744. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_reap_merged_sessions.py +0 -0
  745. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_reap_stale_interactive_tick.py +0 -0
  746. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_reconcile.py +0 -0
  747. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_reconcile_branch.py +0 -0
  748. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_reconcile_completions.py +0 -0
  749. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_reconcile_merges.py +0 -0
  750. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_reconcile_no_agent_record.py +0 -0
  751. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_reconcile_usage_limit_done.py +0 -0
  752. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_refine_chat.py +0 -0
  753. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_release_cordon_2101.py +0 -0
  754. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
  755. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_release_cordon_deadlock_2240.py +0 -0
  756. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_release_propagate.py +0 -0
  757. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_release_unified_1242.py +0 -0
  758. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_release_verify.py +0 -0
  759. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_release_window.py +0 -0
  760. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_remote_auto_prune.py +0 -0
  761. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_remote_interactive_reaper.py +0 -0
  762. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_repo_edit_2220.py +0 -0
  763. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_repo_graph_fleet_2237.py +0 -0
  764. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_repo_onboard_2220.py +0 -0
  765. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_report_result_push.py +0 -0
  766. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_reports.py +0 -0
  767. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_retry.py +0 -0
  768. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_retry_advisory_1606.py +0 -0
  769. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_retry_type_1636.py +0 -0
  770. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_revalidate.py +0 -0
  771. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_review.py +0 -0
  772. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_review_end_review_without_verdict.py +0 -0
  773. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_review_parse_failure_diagnostic.py +0 -0
  774. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_review_reaffirm.py +0 -0
  775. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_review_state.py +0 -0
  776. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_review_verdict_backstop.py +0 -0
  777. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_review_verdict_override_audit.py +0 -0
  778. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_review_verdict_relay.py +0 -0
  779. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_review_zero_commits.py +0 -0
  780. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_scoped_review_wiring.py +0 -0
  781. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_scorecard.py +0 -0
  782. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_serve.py +0 -0
  783. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_serve_app_board_trim.py +0 -0
  784. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_session.py +0 -0
  785. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_slice_issue_attribution.py +0 -0
  786. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_smoke.py +0 -0
  787. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_smoke_live_checkout_restore.py +0 -0
  788. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_smoke_workflow.py +0 -0
  789. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_spend_ceiling.py +0 -0
  790. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_spend_ceiling_coordinator.py +0 -0
  791. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_split.py +0 -0
  792. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_split_work.py +0 -0
  793. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_stage_projection.py +0 -0
  794. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_stalled_pipeline.py +0 -0
  795. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_state.py +0 -0
  796. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_state_review_findings_daemon.py +0 -0
  797. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_status_fleet_footer.py +0 -0
  798. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_stop_1567.py +0 -0
  799. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_stuck.py +0 -0
  800. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_terminal_command.py +0 -0
  801. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_test_author.py +0 -0
  802. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_test_chat.py +0 -0
  803. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_test_orchestrator.py +0 -0
  804. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_test_report.py +0 -0
  805. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_test_verdict_parsing.py +0 -0
  806. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_test_verdict_transcript_floor.py +0 -0
  807. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_thin_client_board_audit.py +0 -0
  808. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_thin_client_config_load_1080.py +0 -0
  809. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_thin_client_daemon_routing_906.py +0 -0
  810. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_tmux_host.py +0 -0
  811. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_tmux_session.py +0 -0
  812. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_transcript_floor.py +0 -0
  813. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_usage.py +0 -0
  814. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_usage_limits.py +0 -0
  815. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_usage_rollup.py +0 -0
  816. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_venv_live_install_2121.py +0 -0
  817. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_version_single_source.py +0 -0
  818. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_watch.py +0 -0
  819. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
  820. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_worker_events.py +0 -0
  821. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_worker_image_pin_sync.py +0 -0
  822. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_worker_safety.py +0 -0
  823. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_worker_test_scoping.py +0 -0
  824. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_worktree.py +0 -0
  825. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tests/test_worktree_rmtree_chokepoint.py +0 -0
  826. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/Cargo.lock +0 -0
  827. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/Cargo.toml +0 -0
  828. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/cargo-config-local-quadraui.toml.example +0 -0
  829. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/src/app/audit.rs +0 -0
  830. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/src/app/chat.rs +0 -0
  831. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/src/app/data.rs +0 -0
  832. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/src/app/dialogs.rs +0 -0
  833. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/src/app/doc_tabs.rs +0 -0
  834. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/src/app/drive.rs +0 -0
  835. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/src/app/drive_queue.rs +0 -0
  836. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/src/app/escalation.rs +0 -0
  837. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/src/app/events.rs +0 -0
  838. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/src/app/fixtures.rs +0 -0
  839. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/src/app/fleet_health.rs +0 -0
  840. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/src/app/fleet_sessions.rs +0 -0
  841. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/src/app/fleet_terminals.rs +0 -0
  842. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/src/app/format.rs +0 -0
  843. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/src/app/milestone_dag.rs +0 -0
  844. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/src/app/mod.rs +0 -0
  845. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/src/app/msv.rs +0 -0
  846. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/src/app/pipeline.rs +0 -0
  847. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/src/app/plans.rs +0 -0
  848. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/src/app/render.rs +0 -0
  849. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/src/app/reports.rs +0 -0
  850. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/src/app/sessions.rs +0 -0
  851. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/src/app/settings_ui.rs +0 -0
  852. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/src/app/sidebar.rs +0 -0
  853. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/src/app/terminal.rs +0 -0
  854. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/src/app/tests.rs +0 -0
  855. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/src/app/types.rs +0 -0
  856. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/src/app/workspace.rs +0 -0
  857. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/src/bin/gtk.rs +0 -0
  858. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/src/commands.rs +0 -0
  859. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/src/lib.rs +0 -0
  860. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/src/main.rs +0 -0
  861. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/src/settings.rs +0 -0
  862. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/tests/acceptance.rs +0 -0
  863. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/tests/cli.rs +0 -0
  864. {code_coordinator-0.5.131 → code_coordinator-0.5.133}/tui/tests/fixtures/board_sample.json +0 -0
@@ -0,0 +1,512 @@
1
+ Metadata-Version: 2.4
2
+ Name: code-coordinator
3
+ Version: 0.5.133
4
+ Summary: Coordinate Claude Code workers across multiple machines and repos.
5
+ Author-email: John Donaghy <johnfdonaghy@gmail.com>
6
+ License-Expression: LicenseRef-FSL-1.1-MIT
7
+ Project-URL: Homepage, https://github.com/JDonaghy/claude-coordinator
8
+ Project-URL: Repository, https://github.com/JDonaghy/claude-coordinator
9
+ Project-URL: Issues, https://github.com/JDonaghy/claude-coordinator/issues
10
+ Keywords: claude,claude-code,multi-agent,coordinator,automation
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Environment :: Console
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Topic :: Software Development :: Build Tools
16
+ Requires-Python: >=3.12
17
+ Description-Content-Type: text/markdown
18
+ License-File: LICENSE
19
+ Requires-Dist: click>=8.1
20
+ Requires-Dist: pyyaml>=6.0
21
+ Requires-Dist: httpx>=0.27
22
+ Requires-Dist: platformdirs>=4.0
23
+ Requires-Dist: tzdata; sys_platform == "win32"
24
+ Provides-Extra: server
25
+ Requires-Dist: starlette>=0.37; extra == "server"
26
+ Requires-Dist: uvicorn>=0.30; extra == "server"
27
+ Requires-Dist: websockets>=12.0; extra == "server"
28
+ Requires-Dist: psutil>=5.9; extra == "server"
29
+ Provides-Extra: all
30
+ Requires-Dist: code-coordinator[server]; extra == "all"
31
+ Provides-Extra: dev
32
+ Requires-Dist: code-coordinator[server]; extra == "dev"
33
+ Requires-Dist: pytest>=8.0; extra == "dev"
34
+ Requires-Dist: pytest-asyncio>=0.23; extra == "dev"
35
+ Requires-Dist: pytest-xdist>=3.5; extra == "dev"
36
+ Requires-Dist: setuptools>=68; extra == "dev"
37
+ Requires-Dist: setuptools-scm>=8; extra == "dev"
38
+ Requires-Dist: wheel; extra == "dev"
39
+ Dynamic: license-file
40
+
41
+ # code-coordinator
42
+
43
+ [![PyPI](https://img.shields.io/pypi/v/code-coordinator)](https://pypi.org/project/code-coordinator/)
44
+ [![Python](https://img.shields.io/pypi/pyversions/code-coordinator)](https://pypi.org/project/code-coordinator/)
45
+ [![Tests](https://github.com/JDonaghy/code-coordinator/actions/workflows/test.yml/badge.svg)](https://github.com/JDonaghy/code-coordinator/actions/workflows/test.yml)
46
+ [![License: FSL-1.1-MIT](https://img.shields.io/badge/license-FSL--1.1--MIT-blue)](LICENSE)
47
+
48
+ Coordinate a fleet of Claude Code workers — and human-attended interactive `claude` sessions —
49
+ across multiple repos and machines, from a single board.
50
+
51
+ Claude Code is excellent at one task at a time. Real projects have dozens of issues in flight,
52
+ spread across repos, each wanting its own session, its own scoping, and its own review.
53
+ `code-coordinator` runs many workers in parallel — one machine with worktrees, or several over
54
+ Tailscale — behind a coordinator that picks the model, avoids file conflicts, routes by
55
+ capability, and drives every issue through a gated **Work → Test → Review → Merge** pipeline.
56
+ Every stage can run as a cheap headless `claude -p` worker *or* a human-attended interactive
57
+ session you launch and steer from the board.
58
+
59
+ No Anthropic API key: it drives the `claude` CLI itself, billed on your existing Max/Pro
60
+ subscription. There's no orchestration daemon deciding what to do — a human approves every
61
+ dispatch — but once approved, a single command can carry one issue unattended from a GitHub
62
+ issue to a merged, reviewed, tested PR.
63
+
64
+ ## This repo builds itself
65
+
66
+ `code-coordinator` is developed largely *by* code-coordinator. Every commit below is a worker's
67
+ own diff, produced through the Work → Test → Review → Merge pipeline this tool implements:
68
+
69
+ ```
70
+ $ git log --oneline -5
71
+ 14a2d930 fix(#2356 review): make the already-on-origin test actually exercise the fix
72
+ 0b685d1c fix(#2356): don't FAIL an assignment whose commit already reached origin
73
+ 35ed648c fix(#2335): route coord milestone dispatch bulk mode through the drive-queue
74
+ db3e5a50 fix(#2352): serialize coord acceptance record per (repo, issue)
75
+ e4ff1986 docs: propose a WSL2 Windows worker for quadraui/vimcode Win-GUI ports
76
+ ```
77
+
78
+ ~1,800 commits since the repo opened three months ago — roughly 164k lines of Python and 66k
79
+ lines of Rust (plus a 48k-line in-crate acceptance suite for the terminal UI), backed by over
80
+ 10,000 test functions across 336 test files, with GitHub Actions cutting a new PyPI + binary
81
+ release on most merges to `main`. It's also used day to day to coordinate work across several
82
+ *other* repos — a Rust TUI framework, a couple of application codebases, and this one.
83
+
84
+ ## The problem
85
+
86
+ Running one Claude Code session at a time is a bottleneck. You context-switch between issues,
87
+ lose session state, and can't parallelize. A complex issue gets one shot; if the session dies
88
+ mid-flight, you start over. There's no audit trail, no conflict detection, and no way to see
89
+ what happened last Thursday.
90
+
91
+ ## The solution
92
+
93
+ One config file describes your repos and machines. Workers run in isolated git worktrees so
94
+ they never step on each other. The coordinator tracks what's in flight, prevents conflicts,
95
+ sequences PRs, and moves each issue through a gated pipeline. You approve the decisions; the
96
+ workers do the work.
97
+
98
+ Works on **one machine** with multiple worktrees. Add more machines over Tailscale for true
99
+ parallelism, capability routing (a GTK box, a browser box), or independent review.
100
+
101
+ ## How it works
102
+
103
+ ```
104
+ ~/.coord/coord.db (SQLite) · coordinator.yml · GitHub (issues / PRs / comments)
105
+
106
+ ┌─────────────────────────┼─────────────────────────┐
107
+ │ │ │
108
+ coord CLI coord-tui coord web
109
+ (Python) (Rust board) (phone PWA + REST)
110
+ │ │ │
111
+ └──────────── coord serve ─┴─ (optional daemon, port 7435) ──┘
112
+ │ canonical board for thin clients
113
+
114
+ │ HTTP (port 7433)
115
+
116
+ ┌────────────────┐
117
+ │ coord agent │ one per machine
118
+ │ (HTTP server) │
119
+ └───────┬────────┘
120
+ │ spawns
121
+ ┌───────────────┴───────────────┐
122
+ ▼ ▼
123
+ claude -p worker interactive claude session
124
+ (headless, isolated worktree) (human-attended, tmux)
125
+ ```
126
+
127
+ Three kinds of process:
128
+
129
+ 1. **Coordinator clients** — the CLI (`coord`), the terminal board (`coord-tui`), and the web
130
+ dashboard / phone PWA (`coord web`). They read shared state and dispatch work. All three are
131
+ **peers** of the same state, not layers — use whichever fits the task.
132
+ 2. **Agent servers** — one `coord agent` per worker machine (port 7433). A dumb dispatcher: it
133
+ spawns and tracks worker processes and owns the worktrees and logs. All the intelligence
134
+ lives in the coordinator.
135
+ 3. **Workers** — either a headless `claude -p` subprocess in an isolated worktree, or a
136
+ human-attended interactive `claude` session in a named tmux session driven from the board.
137
+ Both report their result through the same board seam.
138
+
139
+ State lives in SQLite (`~/.coord/`) plus GitHub issue comments — the durable message bus, where
140
+ every briefing, completion, failure, and review verdict is a comment carrying a
141
+ `<!-- coord:event=... -->` marker. Either can reconstruct the other. An optional control-center
142
+ daemon (`coord serve`) fronts one canonical DB so every client on the tailnet renders and drives
143
+ the same board.
144
+
145
+ ## The pipeline: Work → Test → Review → Merge
146
+
147
+ Every issue moves through four gated stages, each runnable headless or interactively:
148
+
149
+ | Stage | What happens | Automated path | Interactive path |
150
+ |-------|--------------|----------------|-------------------|
151
+ | **Work** | Read the issue, write code, push a branch | `claude -p` worker | `coord assign --interactive` |
152
+ | **Test** | Build + run tests on capability-matched hardware; record a verdict | headless smoke assignment | `--smoke-of` testing agent |
153
+ | **Review** | A fresh, zero-context session reviews the diff against the repo's rules | `type="review"` worker on a *different* machine | `--review-of` reviewer |
154
+ | **Merge** | Rebase onto the base branch, resolve conflicts, run tests, merge | merge queue + auto-rebase | `--merge-of` merge agent |
155
+
156
+ Two things make the gate real rather than decorative:
157
+
158
+ - **Test precedes Review**, and Review is *held* until Test reports a `passed`/`skipped`
159
+ verdict — a work item stuck at Pending Test gets no review and never merges. A green verdict
160
+ is only as trustworthy as the suite behind it, so the Test stage prefers a repo's declared
161
+ `ci_command` over a narrower default, to keep "Test passed" meaning what CI would say.
162
+ - **A failed test routes exactly like a request-changes review** — both drop back to a fix on
163
+ the *same* branch, capped at a configurable retry count before escalating to a human, never
164
+ to an orphaned branch.
165
+
166
+ `coord notify` drives the automated legs (review-on-completion, fix-on-request-changes,
167
+ re-review-on-fix) — or `coord drive` (below) does the whole thing as one durable, resumable
168
+ run.
169
+
170
+ ## Quick demo
171
+
172
+ The fastest path — drive one issue unattended, end to end:
173
+
174
+ ```bash
175
+ pip install code-coordinator
176
+ coord init # detects repos, writes coordinator.yml
177
+ coord agent & # start the local worker dispatcher (port 7433)
178
+
179
+ coord drive myrepo 42 --model sonnet
180
+ # → dispatches Work, waits for the branch
181
+ # → runs Test on capability-matched hardware, records the verdict
182
+ # → dispatches an independent Review; on request-changes, loops a fix back through Work
183
+ # → rebases, resolves mechanical conflicts, and merges once Test + Review are both green
184
+ # exit 0: merged and verified against the remote default branch
185
+ ```
186
+
187
+ `coord drive` is a resumable state machine over the board — re-running it on the same issue
188
+ picks up wherever the board actually is, so a killed terminal or a crashed daemon loses no
189
+ progress. For visibility into (or control over) each step, drive it by hand instead:
190
+
191
+ ```bash
192
+ coord assign laptop myrepo 42 --model sonnet --briefing "Fix the auth middleware timeout"
193
+ coord watch <id> # live filtered output (stream-json events)
194
+ coord test <id> --passed # record the Test-gate verdict
195
+ coord pr <id> # open the PR + auto-dispatch an adversarial review
196
+ coord merge # once the review approves and CI is green
197
+ ```
198
+
199
+ Prefer a terminal UI over raw commands? `coord-tui` launches every stage — automated or
200
+ interactive — from a pipeline row's right-click menu; see
201
+ [Driving from coord-tui](#driving-from-coord-tui).
202
+
203
+ ## Quick start
204
+
205
+ ### 1. Install
206
+
207
+ ```bash
208
+ pip install code-coordinator
209
+ ```
210
+
211
+ The `coord` CLI is now on your PATH. The same package provides the agent server
212
+ (`coord agent`), so the coordinator side and the worker side share one install.
213
+
214
+ > **Developing the coordinator itself?** Clone the repo and `pip install -e .`. Reserve
215
+ > editable installs for development machines — agent machines should stay on PyPI installs (see
216
+ > [`docs/AGENT_OPERATIONS.md`](docs/AGENT_OPERATIONS.md)).
217
+
218
+ The terminal board, `coord-tui`, is a separate Rust binary — install a prebuilt release with
219
+ `coord tui update` (see [Driving from coord-tui](#driving-from-coord-tui)).
220
+
221
+ ### 2. Configure
222
+
223
+ ```bash
224
+ coord init # interactive wizard: detects repos in cwd and ~/src/, writes coordinator.yml
225
+ coord config # verify it parsed cleanly (prints the resolved config path)
226
+ ```
227
+
228
+ Or copy `coordinator.example.yml` and edit by hand. `coordinator.yml` is gitignored — keep
229
+ secrets out of version control. Its canonical home is `~/.coord/coordinator.yml`, so the tool
230
+ runs on a machine with no repo checkout.
231
+
232
+ ### 3. Start the agent server
233
+
234
+ ```bash
235
+ coord agent & # port 7433; auto-detects the machine from hostname
236
+ ```
237
+
238
+ For anything beyond a quick trial, install it as a systemd user service (auto-restart, survives
239
+ reboots, separate worker logs) with `install-agent.sh` — see [Scaling up](#scaling-up), which
240
+ uses the same script for additional machines.
241
+
242
+ ### 4. Coordinate
243
+
244
+ Three peer clients drive the same board — pick per task, they don't conflict:
245
+
246
+ **`coord-tui`** — a terminal board with a live pipeline, right-click actions, and one-key
247
+ stage-to-stage handoffs. See [Driving from coord-tui](#driving-from-coord-tui).
248
+
249
+ **The `coord` CLI directly:**
250
+
251
+ ```bash
252
+ coord status # machines, assignments, connectivity
253
+ coord drive myrepo 42 # or, step by step:
254
+ coord assign laptop myrepo 42 --model sonnet --briefing "Fix the auth bug"
255
+ coord watch <id> # live filtered output
256
+ coord test <id> --passed # record the Test-gate verdict
257
+ coord pr <id> # open the PR + adversarial review
258
+ coord notify # drive the auto-loop (run periodically)
259
+ coord merge # open + merge PRs in sequence
260
+ ```
261
+
262
+ **The `/coordinator` slash command in Claude Code** — open Claude Code in the repo and type
263
+ `/coordinator` for guided setup, triage, dispatch, monitoring, and PR creation.
264
+
265
+ To share one board across every Tailscale host, run the control-center daemon (`coord serve`,
266
+ port 7435) on an always-on machine; the CLI and TUI then read from it as thin clients. See
267
+ [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md).
268
+
269
+ ## Driving from coord-tui
270
+
271
+ `coord-tui` is the rich terminal board: a live pipeline view, a machines panel, an embedded
272
+ terminal for interactive sessions, SSE log tailing, and a per-issue usage view. Interaction is
273
+ **right-click-first** — right-click a pipeline row for its context menu; `?` opens a help
274
+ overlay and command palette.
275
+
276
+ Install or update it with the coordinator itself — no Rust toolchain needed:
277
+
278
+ ```bash
279
+ coord tui update # downloads the release binary matching `coord --version`
280
+ coord tui status # check the installed version against the coordinator's
281
+ ```
282
+
283
+ (Building from source is only for developing the TUI itself: `cd tui && cargo build`.)
284
+
285
+ The whole lifecycle can also be driven as **human-attended interactive sessions** launched from
286
+ a pipeline row's right-click menu — a testing agent, a reviewer, a merge agent, or a fix worker,
287
+ each recording its verdict through the same board seam as the headless path. Every stage also
288
+ has a `claude -p` automation peer, so attended and headless stages mix freely, and review/fix
289
+ can run on a remote machine over ssh+tmux for reviewer independence or capability routing.
290
+
291
+ Full keyboard reference, right-click menus, and stage-handoff details: press `?` in the TUI, or
292
+ see [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md).
293
+
294
+ ## Milestones & epics
295
+
296
+ For work bigger than one issue, group issues under an **epic** — a GitHub tracking issue whose
297
+ body holds a `## Work order` block: a DAG of child issues (`- #762 {group: A, after: #761}`)
298
+ backed by GitHub's native sub-issues API. The issue pipeline above nests inside a **milestone
299
+ pipeline** so expensive gates are paid once per milestone, not once per issue:
300
+
301
+ | Gate | What it checks |
302
+ |------|-----------------|
303
+ | **A — contract** | A mock-first, black-box acceptance contract exists before any issue dispatches |
304
+ | **B — architecture** | An independent review confirms the *assembled* milestone matches the Gate-A contract |
305
+ | **C — acceptance** | The full accumulated acceptance suite is green (catches integration gaps between issues) |
306
+ | **D — ship** | Merges the milestone's feature branch to `develop`, gated on B (approved) and C (re-run live) |
307
+
308
+ ```bash
309
+ coord milestone chat myrepo --new # steward session: draft the milestone + Work order DAG
310
+ coord milestone dispatch myrepo <epic> # dispatch the ready frontier; drain as deps clear
311
+ coord milestone drive myrepo <epic> # walk all four gates as one durable, resumable run
312
+ ```
313
+
314
+ `coord milestone drive` is the milestone-scale analogue of `coord drive` — a board-backed gate
315
+ record tracks which gate a milestone is in and what it's waiting on, so a restarted daemon
316
+ resumes exactly where it left off rather than re-running a gate it already cleared.
317
+
318
+ In an **oracle-loop** milestone, acceptance tests are no longer worker-authored: an independent
319
+ agent writes them from the Gate-A contract before any code exists, delivers them to the worker
320
+ **read-only**, and the worker iterates against them until green — the sealed suite is then the
321
+ external trust gate, not a test the worker could have written to pass itself. See
322
+ [`docs/PIPELINE_V2.md`](docs/PIPELINE_V2.md) and [`docs/ORACLE_LOOP.md`](docs/ORACLE_LOOP.md).
323
+
324
+ ## Features
325
+
326
+ - **No API key** — drives `claude -p` on your Max/Pro subscription; billing stays per-seat.
327
+ - **Two ways to run every stage** — cheap headless `claude -p` workers *or* human-attended
328
+ interactive sessions launched and steered from the board.
329
+ - **Single-machine first** — one agent server, many workers in isolated git worktrees; no
330
+ Tailscale needed. Add machines for parallelism, capability routing, or remote review.
331
+ - **Gated pipeline** — Work → Test → Review → Merge, with Test gating Review and CI/review/smoke
332
+ gating Merge.
333
+ - **One-command drive** — `coord drive` (one issue) and `coord milestone drive` (a whole
334
+ milestone) walk the full pipeline unattended as durable, resumable state machines.
335
+ - **Model tiering** — haiku for docs, sonnet for standard work, opus for architecture; `coord
336
+ fix` auto-escalates on failure.
337
+ - **Adversarial review** — a fresh, zero-context session reviews the diff against the repo's
338
+ own rules; request-changes dispatches a fix on the same branch, then re-reviews, capped before
339
+ escalating to a human.
340
+ - **Milestones & epics** — group issues under an epic with a `## Work order` DAG; amortize
341
+ architecture and acceptance gates across the milestone; ship as one unit.
342
+ - **Merge queue** — dependency-aware sequencing, CI gating, auto-rebase of mechanical conflicts,
343
+ and escalation of semantic ones.
344
+ - **Capability-aware testing** — routes platform-specific suites to capable hardware (a GTK box,
345
+ a browser box) via declared machine capabilities.
346
+ - **Observability** — per-issue/repo/window cost and token usage, a durable audit trail, named
347
+ reports folded out of it, stream-json log tailing, and live `STATUS:`/`STUCK:` progress lines.
348
+ - **Crash recovery** — board state reconciles against live agent and git state; interactive
349
+ tmux sessions survive a TUI crash and are reattachable.
350
+ - **Web dashboard + phone PWA** — a board view and a React/Vite phone control-center, served
351
+ over Tailscale.
352
+ - **~88 CLI subcommands** (100+ counting subcommand groups) covering the full surface above,
353
+ each documented via `coord <cmd> --help`.
354
+
355
+ ## Why this works (even with one machine)
356
+
357
+ The tool encodes a pattern from real multi-agent sessions: **separate the tech lead from the
358
+ IC.** The coordinator thinks about *what to do next* — priority, dependencies, conflicts, which
359
+ machine is idle. Workers think about *how to do this one thing*. Neither is distracted by the
360
+ other's concern.
361
+
362
+ - **Forced scoping.** One issue per worker session. No "while I'm here, let me also refactor
363
+ this."
364
+ - **Structured handoffs.** Every assignment is a briefing posted as a GitHub comment. If a
365
+ session dies, a new one resumes from the comment — zero context loss.
366
+ - **Persistent record.** Every decision, briefing, verdict, and result lives on GitHub. Review
367
+ what happened a week later; terminal scrollback is gone when the window closes.
368
+ - **Fresh eyes.** Each worker starts with no prior context. Adversarial review takes it
369
+ further: a separate session reviews with zero shared context — even on the same machine.
370
+ - **Human stays strategic.** You approve assignments and make judgment calls; you don't ferry
371
+ messages between terminals or track who's touching which file.
372
+ - **Cost discipline.** Model tiering means no opus prices for a docs fix; auto-escalation
373
+ starts cheap and pays more only when needed.
374
+
375
+ ## Command reference
376
+
377
+ `coord <cmd> --help` documents every command and flag; `coord --help` lists all ~88. This is
378
+ the core workflow — see [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) for the rest (recovery,
379
+ observability, interactive-session flags, setup and diagnostics).
380
+
381
+ ### Core workflow
382
+
383
+ | Command | Description |
384
+ |---------|-------------|
385
+ | `coord drive <repo> <issue>` | Drive one issue Work → Test → Review → Merge, unattended |
386
+ | `coord plan [--dry-run]` | Brain proposes assignments for idle machines |
387
+ | `coord approve <IDs>` | Dispatch approved proposals (comma-separated) |
388
+ | `coord assign <machine> <repo> <issue> [--model haiku\|sonnet\|opus] [--briefing TEXT]` | Direct dispatch, bypasses the brain |
389
+ | `coord status [--freshness]` | Machines, assignments, connectivity |
390
+ | `coord watch <id>` | Filtered live log (stream-json events) |
391
+
392
+ ### Post-completion & merge
393
+
394
+ | Command | Description |
395
+ |---------|-------------|
396
+ | `coord test <id> [--passed\|--skipped\|--fail]` | Run, or record the verdict for, the Test gate |
397
+ | `coord pr <id> [--no-review]` | Open a PR (auto-dispatches an adversarial review) |
398
+ | `coord fix <id>` | Dispatch a fix-up worker for a failed test (auto-escalates model) |
399
+ | `coord notify` | Poll agents, post GitHub comments, drive the auto-loop |
400
+ | `coord merge [--dry-run] [--method rebase\|squash\|merge]` | Process the merge queue |
401
+
402
+ ### Milestones & fleet ops
403
+
404
+ | Command | Description |
405
+ |---------|-------------|
406
+ | `coord milestone chat\|dispatch\|gate-b\|gate-c\|ship\|drive` | Draft, dispatch, gate, and ship a milestone |
407
+ | `coord drive-queue add\|list\|tick` | Durable, board-backed queue for `coord drive` |
408
+ | `coord usage` / `coord audit` / `coord report` | Cost + token usage, the durable event log, named reports over it |
409
+ | `coord doctor` / `coord repo doctor` | Fleet-wide prereq report — is a machine (or repo, per machine) fit to run work |
410
+ | `coord resume` / `coord diagnose` | Reconcile board state after a crash; diagnose a stuck stage |
411
+
412
+ ### Model tiers
413
+
414
+ | Flag | Use for |
415
+ |------|---------|
416
+ | `--model haiku` | Docs, config, trivial single-file changes |
417
+ | `--model sonnet` | Standard features, bug fixes (default) |
418
+ | `--model opus` | Complex multi-file or architectural work |
419
+
420
+ `coord fix` escalates to the next tier on failure. Configure the ladder in `models.escalation`
421
+ and pin exact model ids per alias with `models.versions`.
422
+
423
+ ### Ports
424
+
425
+ | Port | Service |
426
+ |------|---------|
427
+ | 7433 | `coord agent` — per-machine worker dispatcher |
428
+ | 7434 | `coord web` — web dashboard + phone PWA |
429
+ | 7435 | `coord serve` — control-center board daemon |
430
+
431
+ ## Configuration
432
+
433
+ Minimal single-machine `coordinator.yml`:
434
+
435
+ ```yaml
436
+ repos:
437
+ - name: my-project
438
+ github: owner/my-project
439
+ default_branch: main
440
+ build_command: "pytest"
441
+ test_command: "pytest"
442
+
443
+ machines:
444
+ - name: laptop
445
+ host: localhost # single machine: localhost works fine
446
+ capabilities: [python]
447
+ repos: [my-project]
448
+ repo_paths:
449
+ my-project: ~/src/my-project
450
+
451
+ concurrency:
452
+ max_workers: 3 # how many worker sessions run at once
453
+ stagger_seconds: 30 # delay between dispatches (avoids rate limits)
454
+
455
+ models:
456
+ default: sonnet
457
+ escalation: [haiku, sonnet, opus]
458
+ labels: # assign model by GitHub issue label
459
+ documentation: haiku
460
+ architecture: opus
461
+ ```
462
+
463
+ `coordinator.example.yml` in the repo is the full annotated reference — multi-machine setups,
464
+ review checklists, smoke-test capability routing, CI gating, and the milestone feature-branch
465
+ model. `coordinator.yml` is gitignored; config resolves `$COORD_CONFIG` →
466
+ `~/.coord/coordinator.yml` (canonical) → `./coordinator.yml` (dev fallback). `coord config` and
467
+ `coord serve` print the resolved path so it's never ambiguous which file loaded.
468
+
469
+ ## Scaling up
470
+
471
+ 1. On the new machine, run the installer (venv + systemd service in one shot):
472
+ ```bash
473
+ curl -sSL https://raw.githubusercontent.com/JDonaghy/code-coordinator/main/install-agent.sh | bash -s -- --machine <name>
474
+ ```
475
+ No git clone needed — it pulls from PyPI.
476
+ 2. Add the machine to `coordinator.yml` under `machines:` with its Tailscale hostname and
477
+ capabilities.
478
+ 3. `coord status` from the coordinator machine shows all machines and their connectivity.
479
+
480
+ For Tailscale setup, see [tailscale.com/kb](https://tailscale.com/kb/). The agent server only
481
+ needs port 7433 reachable on the tailnet — there's no authentication beyond the tailnet ACL, so
482
+ treat that ACL as the security boundary.
483
+
484
+ ## Requirements
485
+
486
+ - Python 3.12+
487
+ - Claude Code CLI with a Max or Pro subscription
488
+ - `gh` CLI (authenticated, for coordinator-side GitHub operations — workers never touch `gh`)
489
+ - Tailscale — optional, only for multi-machine setups
490
+
491
+ ## License
492
+
493
+ [FSL-1.1-MIT](LICENSE) (Functional Source License). Free to use, modify, and self-host for
494
+ internal use, non-commercial work, or in the professional services you provide to your own
495
+ clients using it. The one thing it restricts is re-packaging the software itself into a
496
+ competing product or service. Each release automatically relicenses to plain MIT two years
497
+ after publication.
498
+
499
+ ## Documentation
500
+
501
+ - [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) — how the clients, agents, daemon, and workers
502
+ fit together; the agent HTTP API; the auto-loop end to end; the merge-gate checklist.
503
+ - [`docs/PIPELINE_V2.md`](docs/PIPELINE_V2.md) / [`docs/ORACLE_LOOP.md`](docs/ORACLE_LOOP.md) —
504
+ the two-tier milestone pipeline and the sealed-acceptance oracle loop.
505
+ - [`docs/DRIVE_QUEUE.md`](docs/DRIVE_QUEUE.md) — queuing multiple issues for unattended
506
+ overnight drives.
507
+ - [`docs/PHONE_WEBAPP.md`](docs/PHONE_WEBAPP.md) — build and serve the phone control-center PWA
508
+ over Tailscale.
509
+ - [`docs/AGENT_OPERATIONS.md`](docs/AGENT_OPERATIONS.md) — agent install, upgrade, and
510
+ releasing to PyPI.
511
+ - [`docs/OPERATING_GOTCHAS.md`](docs/OPERATING_GOTCHAS.md) — traps that cost a real dispatch or
512
+ real money and aren't visible from the code.