code-coordinator 0.5.294__tar.gz → 0.5.296__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 (898) hide show
  1. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/.github/coord-ci-acceptance.yml +8 -18
  2. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/.github/workflows/test.yml +22 -27
  3. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/.gitignore +0 -10
  4. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/CLAUDE.md +16 -20
  5. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/PKG-INFO +3 -2
  6. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/README.md +2 -1
  7. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/code_coordinator.egg-info/PKG-INFO +3 -2
  8. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/code_coordinator.egg-info/SOURCES.txt +6 -43
  9. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/code_coordinator.egg-info/scm_file_list.json +6 -43
  10. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/code_coordinator.egg-info/scm_version.json +2 -2
  11. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/commands/tui.py +4 -3
  12. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/config.py +13 -3
  13. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/drive_queue.py +69 -6
  14. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/health/checks/deploy_lane_facts.py +72 -13
  15. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/health/checks/fleet_deploy_lanes.py +5 -5
  16. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/health/checks/toolchain.py +10 -2
  17. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/prereqs.py +1 -1
  18. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/skills/tui-quadraui-workflow/SKILL.md +18 -18
  19. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/tui_release.py +2 -1
  20. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coordinator.example.yml +81 -36
  21. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/scripts/azure-workers/provision-worker.sh +12 -5
  22. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/scripts/codegen.py +23 -22
  23. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/scripts/coord-test-runner.sh +82 -230
  24. code_coordinator-0.5.296/scripts/coord-tui-scaffold/.github/coord-ci-acceptance.yml +55 -0
  25. code_coordinator-0.5.296/scripts/coord-tui-scaffold/.github/workflows/cargo-test.yml +75 -0
  26. code_coordinator-0.5.296/scripts/coord-tui-scaffold/.github/workflows/codegen-drift.yml +113 -0
  27. code_coordinator-0.5.296/scripts/coord-tui-scaffold/CLAUDE.md +102 -0
  28. code_coordinator-0.5.296/scripts/extract-coord-tui.sh +240 -0
  29. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/scripts/gen_board_fixture.py +79 -16
  30. code_coordinator-0.5.296/tests/test_board_fixture.py +103 -0
  31. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_board_schema.py +19 -11
  32. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_ci_acceptance_gate_1950.py +160 -36
  33. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_coord_test_runner_populated_home.py +3 -3
  34. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_coord_test_runner_routing.py +63 -4
  35. code_coordinator-0.5.296/tests/test_coord_test_runner_toolchain.py +314 -0
  36. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_drive.py +19 -32
  37. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_drive_queue.py +99 -0
  38. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_health_deploy_lane_facts.py +96 -2
  39. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_openapi.py +12 -8
  40. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_release_unified_1242.py +131 -105
  41. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_review.py +147 -0
  42. code_coordinator-0.5.294/.github/workflows/cargo-test.yml +0 -122
  43. code_coordinator-0.5.294/tests/test_board_fixture.py +0 -82
  44. code_coordinator-0.5.294/tests/test_coord_test_runner_toolchain.py +0 -336
  45. code_coordinator-0.5.294/tui/.github/workflows/release-tui.yml +0 -327
  46. code_coordinator-0.5.294/tui/Cargo.lock +0 -3198
  47. code_coordinator-0.5.294/tui/Cargo.toml +0 -62
  48. code_coordinator-0.5.294/tui/cargo-config-local-quadraui.toml.example +0 -21
  49. code_coordinator-0.5.294/tui/src/app/approved.rs +0 -1243
  50. code_coordinator-0.5.294/tui/src/app/audit.rs +0 -583
  51. code_coordinator-0.5.294/tui/src/app/chat.rs +0 -273
  52. code_coordinator-0.5.294/tui/src/app/data.rs +0 -3543
  53. code_coordinator-0.5.294/tui/src/app/dialogs.rs +0 -8501
  54. code_coordinator-0.5.294/tui/src/app/doc_tabs.rs +0 -3000
  55. code_coordinator-0.5.294/tui/src/app/drive.rs +0 -1655
  56. code_coordinator-0.5.294/tui/src/app/drive_queue.rs +0 -4238
  57. code_coordinator-0.5.294/tui/src/app/escalation.rs +0 -887
  58. code_coordinator-0.5.294/tui/src/app/events.rs +0 -7762
  59. code_coordinator-0.5.294/tui/src/app/fixtures.rs +0 -1226
  60. code_coordinator-0.5.294/tui/src/app/fleet_health.rs +0 -351
  61. code_coordinator-0.5.294/tui/src/app/fleet_sessions.rs +0 -474
  62. code_coordinator-0.5.294/tui/src/app/fleet_terminals.rs +0 -566
  63. code_coordinator-0.5.294/tui/src/app/format.rs +0 -438
  64. code_coordinator-0.5.294/tui/src/app/milestone_dag.rs +0 -1757
  65. code_coordinator-0.5.294/tui/src/app/mod.rs +0 -9930
  66. code_coordinator-0.5.294/tui/src/app/msv.rs +0 -140
  67. code_coordinator-0.5.294/tui/src/app/pipeline.rs +0 -10324
  68. code_coordinator-0.5.294/tui/src/app/plans.rs +0 -2262
  69. code_coordinator-0.5.294/tui/src/app/render.rs +0 -4349
  70. code_coordinator-0.5.294/tui/src/app/reports.rs +0 -2978
  71. code_coordinator-0.5.294/tui/src/app/sessions.rs +0 -3481
  72. code_coordinator-0.5.294/tui/src/app/settings_ui.rs +0 -2077
  73. code_coordinator-0.5.294/tui/src/app/sidebar.rs +0 -696
  74. code_coordinator-0.5.294/tui/src/app/terminal.rs +0 -1264
  75. code_coordinator-0.5.294/tui/src/app/tests.rs +0 -57678
  76. code_coordinator-0.5.294/tui/src/app/types/generated.rs +0 -747
  77. code_coordinator-0.5.294/tui/src/app/types.rs +0 -2316
  78. code_coordinator-0.5.294/tui/src/app/workspace.rs +0 -585
  79. code_coordinator-0.5.294/tui/src/bin/gtk.rs +0 -13
  80. code_coordinator-0.5.294/tui/src/commands.rs +0 -1446
  81. code_coordinator-0.5.294/tui/src/lib.rs +0 -20
  82. code_coordinator-0.5.294/tui/src/main.rs +0 -186
  83. code_coordinator-0.5.294/tui/src/settings.rs +0 -850
  84. code_coordinator-0.5.294/tui/tests/cli.rs +0 -58
  85. code_coordinator-0.5.294/tui/tests/fixtures/board_sample.json +0 -382
  86. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/.claude/commands/board.md +0 -0
  87. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/.claude/commands/complete-session.md +0 -0
  88. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/.claude/commands/coordinator.md +0 -0
  89. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/.githooks/_lib.sh +0 -0
  90. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/.githooks/post-checkout +0 -0
  91. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/.githooks/post-commit +0 -0
  92. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/.githooks/post-merge +0 -0
  93. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  94. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/.github/workflows/auto-release.yml +0 -0
  95. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/.github/workflows/publish.yml +0 -0
  96. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/GOAL.md +0 -0
  97. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/LICENSE +0 -0
  98. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/MANIFEST.in +0 -0
  99. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/code_coordinator.egg-info/dependency_links.txt +0 -0
  100. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/code_coordinator.egg-info/entry_points.txt +0 -0
  101. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/code_coordinator.egg-info/requires.txt +0 -0
  102. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/code_coordinator.egg-info/top_level.txt +0 -0
  103. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/__init__.py +0 -0
  104. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/_board_mapping.py +0 -0
  105. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/acceptance.py +0 -0
  106. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/acceptance_drivers.py +0 -0
  107. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/agent.py +0 -0
  108. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/agent_app.py +0 -0
  109. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/agent_update.py +0 -0
  110. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/agents/opencode/.gitignore +0 -0
  111. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/agents/opencode/agents/work.md +0 -0
  112. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/agents/opencode/routing.jsonc +0 -0
  113. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/approved_work.py +0 -0
  114. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/audit.py +0 -0
  115. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/auto_loop.py +0 -0
  116. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/block_log.py +0 -0
  117. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/board_schema.py +0 -0
  118. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/board_service.py +0 -0
  119. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/board_wire.py +0 -0
  120. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/brain.py +0 -0
  121. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/branch_model.py +0 -0
  122. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/bug_intake.py +0 -0
  123. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/cargo_cache.py +0 -0
  124. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/ci_fix.py +0 -0
  125. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/ci_github.py +0 -0
  126. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/ci_gitlab.py +0 -0
  127. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/ci_store.py +0 -0
  128. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/claim.py +0 -0
  129. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/cli.py +0 -0
  130. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/client.py +0 -0
  131. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/commands/__init__.py +0 -0
  132. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/commands/_common.py +0 -0
  133. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/commands/acceptance.py +0 -0
  134. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/commands/agent_ops.py +0 -0
  135. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/commands/audit.py +0 -0
  136. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/commands/chat.py +0 -0
  137. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/commands/dispatch.py +0 -0
  138. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/commands/dispatch_workers.py +0 -0
  139. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/commands/drive.py +0 -0
  140. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/commands/drive_queue.py +0 -0
  141. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/commands/gate_a.py +0 -0
  142. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/commands/gates.py +0 -0
  143. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/commands/issues.py +0 -0
  144. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/commands/lifecycle.py +0 -0
  145. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/commands/machine.py +0 -0
  146. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/commands/merge.py +0 -0
  147. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/commands/milestone.py +0 -0
  148. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/commands/plan_followup.py +0 -0
  149. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/commands/plans.py +0 -0
  150. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/commands/portal.py +0 -0
  151. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/commands/pr.py +0 -0
  152. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/commands/release.py +0 -0
  153. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/commands/repo.py +0 -0
  154. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/commands/report.py +0 -0
  155. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/commands/review.py +0 -0
  156. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/commands/scorecard.py +0 -0
  157. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/commands/sessions.py +0 -0
  158. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/commands/setup.py +0 -0
  159. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/commands/status.py +0 -0
  160. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/commands/store_migrate.py +0 -0
  161. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/commands/terminal.py +0 -0
  162. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/commands/test_gate.py +0 -0
  163. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/comments.py +0 -0
  164. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/config_reload.py +0 -0
  165. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/confirm_test.py +0 -0
  166. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/conflict_fix.py +0 -0
  167. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/dao.py +0 -0
  168. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/dashboard/__init__.py +0 -0
  169. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/dashboard/fixture.py +0 -0
  170. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/dashboard/index.html +0 -0
  171. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/dashboard/server.py +0 -0
  172. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/dashboard/terminal.py +0 -0
  173. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/db.py +0 -0
  174. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/dead_end.py +0 -0
  175. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/decomposition_chat.py +0 -0
  176. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/deploy/README.md +0 -0
  177. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/deploy/coord-agent.service +0 -0
  178. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/deploy/coord-db-backup.service +0 -0
  179. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/deploy/coord-db-backup.sh +0 -0
  180. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/deploy/coord-db-backup.timer +0 -0
  181. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/deploy/coord-drive-queue.service +0 -0
  182. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/deploy/coord-drive-queue.timer +0 -0
  183. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/deploy/coord-failure-notify.service +0 -0
  184. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/deploy/coord-fleet-watchdog.service +0 -0
  185. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/deploy/coord-fleet-watchdog.timer +0 -0
  186. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/deploy/coord-notify.service +0 -0
  187. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/deploy/coord-notify.timer +0 -0
  188. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/deploy/coord-release-propagate.service +0 -0
  189. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/deploy/coord-release-propagate.timer +0 -0
  190. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/deploy/coord-release-window.service +0 -0
  191. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/deploy/coord-release-window.timer +0 -0
  192. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/deploy/coord-serve.service +0 -0
  193. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/deploy/coord-web-dist-build.service +0 -0
  194. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/deploy/coord-web-dist-build.timer +0 -0
  195. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/deploy/coord-web.service +0 -0
  196. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/deploy_manifest.py +0 -0
  197. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/deploy_units.py +0 -0
  198. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/deprecation_telemetry.py +0 -0
  199. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/deps.py +0 -0
  200. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/diagnose.py +0 -0
  201. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/dispatch.py +0 -0
  202. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/dist_name.py +0 -0
  203. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/drive.py +0 -0
  204. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/drive_state.py +0 -0
  205. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/events.py +0 -0
  206. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/failure_class.py +0 -0
  207. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/filelock.py +0 -0
  208. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/fleet_config_health.py +0 -0
  209. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/forge_availability.py +0 -0
  210. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/freshness.py +0 -0
  211. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/gate_a.py +0 -0
  212. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/gate_b.py +0 -0
  213. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/gate_snapshot.py +0 -0
  214. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/gates.py +0 -0
  215. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/github_ops.py +0 -0
  216. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/github_throttle.py +0 -0
  217. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/goal.py +0 -0
  218. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/graph_health.py +0 -0
  219. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/health/__init__.py +0 -0
  220. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/health/aggregate.py +0 -0
  221. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/health/checks/__init__.py +0 -0
  222. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/health/checks/agent_install.py +0 -0
  223. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/health/checks/cargo_targets.py +0 -0
  224. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/health/checks/claude_binary.py +0 -0
  225. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/health/checks/coord_web_ci_pin.py +0 -0
  226. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/health/checks/disk.py +0 -0
  227. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/health/checks/fleet_board.py +0 -0
  228. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/health/checks/fleet_phantom.py +0 -0
  229. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/health/checks/fleet_unit_drift.py +0 -0
  230. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/health/checks/graph.py +0 -0
  231. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/health/checks/graphify_cli.py +0 -0
  232. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/health/checks/index_lock.py +0 -0
  233. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/health/checks/issues_sync_staleness.py +0 -0
  234. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/health/checks/plan_usage.py +0 -0
  235. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/health/checks/release_cordon.py +0 -0
  236. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/health/checks/repo_state.py +0 -0
  237. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/health/checks/spawned_coord.py +0 -0
  238. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/health/checks/stalled_pipeline.py +0 -0
  239. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/health/checks/timer_active.py +0 -0
  240. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/health/checks/unit_drift.py +0 -0
  241. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/health/checks/unit_enablement.py +0 -0
  242. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/health/checks/worktrees.py +0 -0
  243. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/health/cli.py +0 -0
  244. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/health/context.py +0 -0
  245. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/health/fleet_snapshot.py +0 -0
  246. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/health/models.py +0 -0
  247. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/health/pypi.py +0 -0
  248. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/health/registry.py +0 -0
  249. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/health/render.py +0 -0
  250. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/health/units.py +0 -0
  251. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/hooks.py +0 -0
  252. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/housekeeping.py +0 -0
  253. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/interactive.py +0 -0
  254. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/issue_store.py +0 -0
  255. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/issues_sync_status.py +0 -0
  256. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/liveness_auditor.py +0 -0
  257. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/machine_onboard.py +0 -0
  258. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/machine_pause.py +0 -0
  259. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/merge_queue.py +0 -0
  260. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/milestone_chat.py +0 -0
  261. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/milestone_dispatch.py +0 -0
  262. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/milestone_gate.py +0 -0
  263. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/milestone_order.py +0 -0
  264. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/mock_author.py +0 -0
  265. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/models.py +0 -0
  266. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/network.py +0 -0
  267. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/new_issue_chat.py +0 -0
  268. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/notifier/__init__.py +0 -0
  269. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/notifier/baseline.py +0 -0
  270. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/notifier/cli.py +0 -0
  271. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/notifier/collect.py +0 -0
  272. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/notifier/digest.py +0 -0
  273. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/notifier/models.py +0 -0
  274. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/notifier/predicate.py +0 -0
  275. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/notifier/service.py +0 -0
  276. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/notifier/store.py +0 -0
  277. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/notifier/transport.py +0 -0
  278. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/notify.py +0 -0
  279. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/openapi.py +0 -0
  280. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/overlap_fence.py +0 -0
  281. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/overlap_predict.py +0 -0
  282. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/parentage.py +0 -0
  283. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/parentage_github.py +0 -0
  284. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/pipeline.py +0 -0
  285. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/plan_parser.py +0 -0
  286. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/plans.py +0 -0
  287. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/platform_paths.py +0 -0
  288. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/portal_bridge.py +0 -0
  289. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/portal_store.py +0 -0
  290. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/portal_sync.py +0 -0
  291. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/pr_body_lint.py +0 -0
  292. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/progress.py +0 -0
  293. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/providers/__init__.py +0 -0
  294. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/providers/base.py +0 -0
  295. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/providers/claude.py +0 -0
  296. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/providers/claude_pty.py +0 -0
  297. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/providers/opencode.py +0 -0
  298. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/queue_diagnose.py +0 -0
  299. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/reconcile.py +0 -0
  300. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/reconcile_tick.py +0 -0
  301. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/refine_chat.py +0 -0
  302. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/release_cordon.py +0 -0
  303. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/release_propagate.py +0 -0
  304. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/release_verify.py +0 -0
  305. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/release_window.py +0 -0
  306. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/repo_edit.py +0 -0
  307. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/repo_onboard.py +0 -0
  308. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/reports.py +0 -0
  309. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/rest_schema.py +0 -0
  310. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/revalidate.py +0 -0
  311. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/review.py +0 -0
  312. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/scorecard.py +0 -0
  313. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/self_health.py +0 -0
  314. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/serve_app.py +0 -0
  315. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/skills/coord-dispatch-verbs/SKILL.md +0 -0
  316. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/skills/drive-queue-preflight/SKILL.md +0 -0
  317. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/skills/fleet-restart-safety/SKILL.md +0 -0
  318. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/skills/merge-stuck-triage/SKILL.md +0 -0
  319. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/skills/pipeline-limbo-triage/SKILL.md +0 -0
  320. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/skills/portal-followup/SKILL.md +0 -0
  321. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/skills/release-now/SKILL.md +0 -0
  322. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/skills/review-verdict-recovery/SKILL.md +0 -0
  323. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/skills/update-issue/SKILL.md +0 -0
  324. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/smoke.py +0 -0
  325. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/spend_ceiling.py +0 -0
  326. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/split_work.py +0 -0
  327. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/sql.py +0 -0
  328. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/stage_projection.py +0 -0
  329. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/state.py +0 -0
  330. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/store_migrate.py +0 -0
  331. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/test_author.py +0 -0
  332. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/test_chat.py +0 -0
  333. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/test_orchestrator.py +0 -0
  334. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/test_report.py +0 -0
  335. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/usage.py +0 -0
  336. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/usage_limits.py +0 -0
  337. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/usage_rollup.py +0 -0
  338. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/coord/worker_events.py +0 -0
  339. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/deploy/coord-agent.service +0 -0
  340. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/deploy/coord-db-backup.service +0 -0
  341. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/deploy/coord-db-backup.sh +0 -0
  342. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/deploy/coord-db-backup.timer +0 -0
  343. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/deploy/coord-drive-queue.service +0 -0
  344. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/deploy/coord-drive-queue.timer +0 -0
  345. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/deploy/coord-failure-notify.service +0 -0
  346. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/deploy/coord-failure-notify.sh +0 -0
  347. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/deploy/coord-fleet-watchdog.service +0 -0
  348. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/deploy/coord-fleet-watchdog.timer +0 -0
  349. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/deploy/coord-notify.service +0 -0
  350. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/deploy/coord-notify.timer +0 -0
  351. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/deploy/coord-release-propagate.service +0 -0
  352. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/deploy/coord-release-propagate.timer +0 -0
  353. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/deploy/coord-release-window.service +0 -0
  354. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/deploy/coord-release-window.timer +0 -0
  355. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/deploy/coord-serve.service +0 -0
  356. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/deploy/coord-web-dist-build.service +0 -0
  357. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/deploy/coord-web-dist-build.sh +0 -0
  358. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/deploy/coord-web-dist-build.timer +0 -0
  359. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/deploy/coord-web-rollback.sh +0 -0
  360. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/deploy/coord-web.service +0 -0
  361. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/deploy/node-shim.sh +0 -0
  362. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/ADR_COORD_TUI_CI.md +0 -0
  363. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/ADR_COORD_WEB_ACCEPTANCE_SUITE.md +0 -0
  364. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/ADR_COORD_WEB_CI.md +0 -0
  365. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/ADR_COORD_WEB_DIST.md +0 -0
  366. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/AGENT_OPERATIONS.md +0 -0
  367. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/ARCHITECTURE.md +0 -0
  368. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/ARCH_SECURITY_GATES.md +0 -0
  369. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/COCKPIT.md +0 -0
  370. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/CONTROL_CENTER.md +0 -0
  371. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/COST_DISCIPLINE.md +0 -0
  372. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/CROSS_PLATFORM.md +0 -0
  373. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/CUSTOMER_FACING_APPS.md +0 -0
  374. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/CUSTOMER_PORTAL.md +0 -0
  375. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/DRIVE_QUEUE.md +0 -0
  376. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/EPHEMERAL_WORKERS.md +0 -0
  377. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/FORGE_MIGRATION.md +0 -0
  378. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/GRAPHIFY_SETUP.md +0 -0
  379. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/ISSUE_GUIDANCE.md +0 -0
  380. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/MAC_MINI.md +0 -0
  381. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
  382. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/NOTIFIER.md +0 -0
  383. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/OPENCODE_VERIFICATION.md +0 -0
  384. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/OPERATING_GOTCHAS.md +0 -0
  385. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/OPERATOR_GUIDES.md +0 -0
  386. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/ORACLE_LOOP.md +0 -0
  387. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/PHONE_WEBAPP.md +0 -0
  388. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/PIPELINE_V2.md +0 -0
  389. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/PLATFORM_EVOLUTION.md +0 -0
  390. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/SECOND_BACKEND.md +0 -0
  391. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/STORE_SERVICE.md +0 -0
  392. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/TEST_FIRST_BUG_LANE.md +0 -0
  393. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/WEB_CONTROL_CENTER.md +0 -0
  394. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/WSL_WINDOWS_WORKER.md +0 -0
  395. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/mocks/web/README.md +0 -0
  396. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/mocks/web/_tokens.css +0 -0
  397. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/mocks/web/issue-detail.html +0 -0
  398. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/mocks/web/pipeline-narrow.html +0 -0
  399. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/docs/mocks/web/pipeline-wide.html +0 -0
  400. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/graphify-out/.gitignore +0 -0
  401. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/install-agent.sh +0 -0
  402. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/pyproject.toml +0 -0
  403. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/scripts/audit_review_verdict_overrides.py +0 -0
  404. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/scripts/azure-workers/bootstrap-shared.sh +0 -0
  405. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/scripts/azure-workers/build-worker-image.sh +0 -0
  406. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/scripts/azure-workers/coordinator-machine.py +0 -0
  407. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/scripts/azure-workers/epic-down.sh +0 -0
  408. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/scripts/azure-workers/epic-up.sh +0 -0
  409. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/scripts/azure-workers/preflight.sh +0 -0
  410. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
  411. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/scripts/azure-workers/tailnet-acl.hujson +0 -0
  412. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/scripts/azure-workers/verify-github-token.sh +0 -0
  413. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/scripts/check_gh_argv_containment.py +0 -0
  414. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/scripts/coord-venv-rollback.sh +0 -0
  415. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/scripts/drive-batch.sh +0 -0
  416. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/scripts/fleet_watchdog.py +0 -0
  417. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/scripts/gen_mock_index.py +0 -0
  418. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/scripts/next_release_tag.py +0 -0
  419. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/scripts/run_tests_in_populated_home.sh +0 -0
  420. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/scripts/run_tests_without_gh.sh +0 -0
  421. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/scripts/smoke_437_interactive.py +0 -0
  422. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/scripts/verify_878_review_capture.py +0 -0
  423. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/scripts/verify_release_published.py +0 -0
  424. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/scripts/verify_release_wheel.py +0 -0
  425. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/setup.cfg +0 -0
  426. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/SMOKE_SET.md +0 -0
  427. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/__init__.py +0 -0
  428. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/acceptance/ms-37/conftest.py +0 -0
  429. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/acceptance/ms-37/contract.md +0 -0
  430. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/acceptance/ms-37/manifest.yml +0 -0
  431. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
  432. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
  433. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/acceptance/ms-51/contract.md +0 -0
  434. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
  435. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
  436. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/acceptance/ms-51/manifest.yml +0 -0
  437. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
  438. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/acceptance/ms-51/tsconfig.json +0 -0
  439. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
  440. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/backends.py +0 -0
  441. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/conftest.py +0 -0
  442. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/fixtures/board-pipeline-basic.json +0 -0
  443. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
  444. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
  445. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
  446. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/fixtures/opencode_run_sample.jsonl +0 -0
  447. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/fixtures/playwright/all_pass.json +0 -0
  448. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/fixtures/playwright/global_setup_crash.json +0 -0
  449. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/fixtures/playwright/mixed_fail.json +0 -0
  450. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/fixtures/playwright/retry_then_pass.json +0 -0
  451. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
  452. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/fixtures/playwright/skip.json +0 -0
  453. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/fixtures/playwright/truncated.json +0 -0
  454. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
  455. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
  456. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
  457. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
  458. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
  459. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
  460. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
  461. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
  462. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_acceptance.py +0 -0
  463. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_acceptance_drivers.py +0 -0
  464. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_agent.py +0 -0
  465. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_agent_api_error.py +0 -0
  466. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_agent_app.py +0 -0
  467. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_agent_branch_base.py +0 -0
  468. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_agent_branch_capture.py +0 -0
  469. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_agent_config_free_1712.py +0 -0
  470. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_agent_deploy_units_endpoint.py +0 -0
  471. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_agent_dirty_worktree.py +0 -0
  472. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_agent_drive_queue_reconcile_2373.py +0 -0
  473. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_agent_graph_self_heal.py +0 -0
  474. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_agent_health_h3.py +0 -0
  475. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_agent_idle_restart.py +0 -0
  476. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_agent_push_failure.py +0 -0
  477. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_agent_reap.py +0 -0
  478. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_agent_repos_and_pull.py +0 -0
  479. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_agent_restart_services_endpoint.py +0 -0
  480. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_agent_skills_self_heal.py +0 -0
  481. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_agent_startup_diagnostics.py +0 -0
  482. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_agent_update.py +0 -0
  483. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_agent_update_bluegreen.py +0 -0
  484. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_agent_usage_limit.py +0 -0
  485. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_agent_zero_commit.py +0 -0
  486. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_ambient_home_isolation.py +0 -0
  487. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_approve_dependency_busy_2804.py +0 -0
  488. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_approve_reject_plan.py +0 -0
  489. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_approve_usage_gate.py +0 -0
  490. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_approved_work_2532.py +0 -0
  491. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_assignment_already_recorded_daemon.py +0 -0
  492. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_audit_log.py +0 -0
  493. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_audit_outcome.py +0 -0
  494. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_audit_query.py +0 -0
  495. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_auto_loop.py +0 -0
  496. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_auto_release_publish_2035.py +0 -0
  497. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_backend_selection.py +0 -0
  498. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_base_checkout_restore.py +0 -0
  499. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_block_log.py +0 -0
  500. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_board_cap_762.py +0 -0
  501. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_board_read_path.py +0 -0
  502. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_board_service.py +0 -0
  503. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_board_state.py +0 -0
  504. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_board_wire.py +0 -0
  505. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_brain.py +0 -0
  506. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_branch_model.py +0 -0
  507. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_bug_intake.py +0 -0
  508. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_build_worker_image_env_update.py +0 -0
  509. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cargo_cache.py +0 -0
  510. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_check_gh_argv_containment.py +0 -0
  511. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_ci_fix.py +0 -0
  512. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_ci_gitlab.py +0 -0
  513. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_ci_parity_2091.py +0 -0
  514. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_ci_store.py +0 -0
  515. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_claim.py +0 -0
  516. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_claude_md_budget.py +0 -0
  517. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_acceptance.py +0 -0
  518. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_assign.py +0 -0
  519. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
  520. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_assign_interactive_remote.py +0 -0
  521. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_assign_provider.py +0 -0
  522. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_assign_repo_drift_2219.py +0 -0
  523. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_audit.py +0 -0
  524. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_chat_continue.py +0 -0
  525. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_decide.py +0 -0
  526. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_diagnose_config_provenance.py +0 -0
  527. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_diagnose_forge_availability.py +0 -0
  528. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_diagnose_graph.py +0 -0
  529. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_diagnose_self.py +0 -0
  530. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_doctor.py +0 -0
  531. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_doctor_config_free_1801.py +0 -0
  532. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
  533. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_drive.py +0 -0
  534. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_drive_queue.py +0 -0
  535. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_escalate.py +0 -0
  536. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_fix_headless_review.py +0 -0
  537. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_gate_a.py +0 -0
  538. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_install_drift.py +0 -0
  539. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_install_skills.py +0 -0
  540. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_issue_comment.py +0 -0
  541. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_issue_create_label.py +0 -0
  542. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_issue_reopen.py +0 -0
  543. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_issue_view_list.py +0 -0
  544. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_merge.py +0 -0
  545. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_milestone_assign.py +0 -0
  546. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_milestone_capture.py +0 -0
  547. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_milestone_chat_add_child.py +0 -0
  548. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_milestone_dispatch.py +0 -0
  549. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_milestone_gate_b.py +0 -0
  550. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_milestone_gate_c.py +0 -0
  551. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_milestone_order.py +0 -0
  552. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
  553. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_milestone_ship.py +0 -0
  554. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_network.py +0 -0
  555. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_new_issue_chat.py +0 -0
  556. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_plans.py +0 -0
  557. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_portal.py +0 -0
  558. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_pr.py +0 -0
  559. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_pull_artifact.py +0 -0
  560. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_queue.py +0 -0
  561. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_reattach_sessions.py +0 -0
  562. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_refine_board.py +0 -0
  563. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_release_preflight.py +0 -0
  564. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_release_propagate.py +0 -0
  565. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_release_window.py +0 -0
  566. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_repo_2220.py +0 -0
  567. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_review_test_author_tracking_epic_2639.py +0 -0
  568. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_scorecard.py +0 -0
  569. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_set_review_findings.py +0 -0
  570. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_status_advisory_terminal.py +0 -0
  571. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_status_contested_tag.py +0 -0
  572. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_status_merge_queue.py +0 -0
  573. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_status_provider.py +0 -0
  574. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_status_review_finalizing.py +0 -0
  575. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_status_test_failed_tag.py +0 -0
  576. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_status_usage_limit.py +0 -0
  577. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_sync_comments_873.py +0 -0
  578. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_test_plan.py +0 -0
  579. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_track.py +0 -0
  580. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_tui_update.py +0 -0
  581. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cli_wait.py +0 -0
  582. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_client_base_install.py +0 -0
  583. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_client_resource_migration_1946.py +0 -0
  584. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_commands_common.py +0 -0
  585. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_comments.py +0 -0
  586. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_completion_summary.py +0 -0
  587. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_config.py +0 -0
  588. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_config_acceptance.py +0 -0
  589. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_config_audit.py +0 -0
  590. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_config_pricing.py +0 -0
  591. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
  592. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_config_usage_gate.py +0 -0
  593. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_confirm_test.py +0 -0
  594. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_conflict_fix.py +0 -0
  595. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_conflict_fix_semantic.py +0 -0
  596. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_coord_log_daemon_fallback_2547.py +0 -0
  597. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_coord_test.py +0 -0
  598. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_coord_test_runner_baseline.py +0 -0
  599. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_coord_uat.py +0 -0
  600. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_coord_web_sse_restart_live.py +0 -0
  601. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_coordinator_machine.py +0 -0
  602. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_cross_platform_imports.py +0 -0
  603. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_dao.py +0 -0
  604. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_dashboard.py +0 -0
  605. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_dashboard_fixture.py +0 -0
  606. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_dashboard_terminal.py +0 -0
  607. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_dashboard_terminal_live.py +0 -0
  608. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_db.py +0 -0
  609. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_dead_end.py +0 -0
  610. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_decomposition_chat.py +0 -0
  611. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_deploy_coord_db_backup.py +0 -0
  612. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_deploy_coord_web_dist.py +0 -0
  613. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_deploy_coord_web_rollback.py +0 -0
  614. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_deploy_drive_queue_unit.py +0 -0
  615. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_deploy_failure_notify_unit.py +0 -0
  616. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_deploy_manifest.py +0 -0
  617. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_deploy_notify_unit.py +0 -0
  618. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_deploy_units_lane.py +0 -0
  619. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_deploy_web_unit.py +0 -0
  620. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_deprecation_telemetry.py +0 -0
  621. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_deps.py +0 -0
  622. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_diagnose.py +0 -0
  623. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_dispatch.py +0 -0
  624. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_dispatch_target_validation.py +0 -0
  625. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_dist_name.py +0 -0
  626. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_done_housekeeping.py +0 -0
  627. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_drive_queue_blocked_rendering.py +0 -0
  628. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_drive_queue_launch_argv.py +0 -0
  629. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_drive_queue_max_parallel_per_repo_config.py +0 -0
  630. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_drive_queue_roll_pending.py +0 -0
  631. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_drive_queue_self_cordon_escalation.py +0 -0
  632. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_drive_state.py +0 -0
  633. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_drive_tmux.py +0 -0
  634. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_epic_up_capability_detection.py +0 -0
  635. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
  636. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_epic_up_image_provenance.py +0 -0
  637. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_errors.py +0 -0
  638. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_events.py +0 -0
  639. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_failure_class.py +0 -0
  640. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_filelock.py +0 -0
  641. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
  642. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_fix_of_force_override.py +0 -0
  643. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_fleet_config_health.py +0 -0
  644. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_fleet_health_probes.py +0 -0
  645. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_fleet_health_snapshot.py +0 -0
  646. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_fleet_watchdog.py +0 -0
  647. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_forge_availability.py +0 -0
  648. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_freshness.py +0 -0
  649. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_gate_a.py +0 -0
  650. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_gate_b.py +0 -0
  651. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_gate_snapshot_staleness.py +0 -0
  652. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_gates.py +0 -0
  653. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_gather_fleet_tmux_sessions.py +0 -0
  654. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_gen_mock_index.py +0 -0
  655. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_generated_rust_fixture.py +0 -0
  656. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_generated_types_fixture.py +0 -0
  657. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_github_ops.py +0 -0
  658. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_github_throttle.py +0 -0
  659. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_goal.py +0 -0
  660. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_graph_health.py +0 -0
  661. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_graph_selfheal_absent_2237.py +0 -0
  662. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_handoff.py +0 -0
  663. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_health_checks.py +0 -0
  664. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_health_cli.py +0 -0
  665. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_health_cli_graph.py +0 -0
  666. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_health_config.py +0 -0
  667. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_health_context.py +0 -0
  668. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_health_coord_web_ci_pin.py +0 -0
  669. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_health_fix.py +0 -0
  670. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_health_incident_regression.py +0 -0
  671. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_health_issues_sync_staleness.py +0 -0
  672. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_health_pypi.py +0 -0
  673. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_health_registry.py +0 -0
  674. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_health_release_cordon_probe.py +0 -0
  675. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_health_timer_active.py +0 -0
  676. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_health_toolchain.py +0 -0
  677. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_health_unit_drift.py +0 -0
  678. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_health_unit_enablement.py +0 -0
  679. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_hooks.py +0 -0
  680. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_human_attended_437.py +0 -0
  681. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_init.py +0 -0
  682. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_install_agent_venv_2911.py +0 -0
  683. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_integration.py +0 -0
  684. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_interactive_briefing_echo.py +0 -0
  685. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_interactive_pane_log_2541.py +0 -0
  686. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_interactive_prefill_state.py +0 -0
  687. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_interactive_session_relaunch.py +0 -0
  688. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_interactive_test_verdict_backstop.py +0 -0
  689. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_interactive_token_attribution.py +0 -0
  690. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_interactive_worktree.py +0 -0
  691. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_issue_store_seam.py +0 -0
  692. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_issues_sync_status.py +0 -0
  693. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_liveness_auditor.py +0 -0
  694. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_liveness_notify.py +0 -0
  695. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_lock_contention_ratchet.py +0 -0
  696. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_machine_onboard.py +0 -0
  697. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_machine_pause.py +0 -0
  698. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_merge_queue.py +0 -0
  699. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_merge_verify.py +0 -0
  700. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_milestone_chat.py +0 -0
  701. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_milestone_dispatch.py +0 -0
  702. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_milestone_gate.py +0 -0
  703. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_milestone_order.py +0 -0
  704. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_milestone_seam.py +0 -0
  705. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_mock_author.py +0 -0
  706. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_model_tiering.py +0 -0
  707. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_models.py +0 -0
  708. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_models_config_labels.py +0 -0
  709. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_needs_attention.py +0 -0
  710. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_network.py +0 -0
  711. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_new_issue_chat.py +0 -0
  712. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_next_release_tag.py +0 -0
  713. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_node_shim.py +0 -0
  714. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_notifier_baseline.py +0 -0
  715. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_notifier_cli.py +0 -0
  716. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_notifier_collect.py +0 -0
  717. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_notifier_config.py +0 -0
  718. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_notifier_drive_seam.py +0 -0
  719. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_notifier_isolation.py +0 -0
  720. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_notifier_predicate.py +0 -0
  721. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_notifier_quiet_hours.py +0 -0
  722. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_notifier_service.py +0 -0
  723. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_notify.py +0 -0
  724. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_notify_drain.py +0 -0
  725. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_operational_defaults.py +0 -0
  726. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_overlap_fence.py +0 -0
  727. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_overlap_predict.py +0 -0
  728. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_packaged_deploy_units.py +0 -0
  729. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_parentage.py +0 -0
  730. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_paste_landed.py +0 -0
  731. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_phantom_heal_venv_independence_2570.py +0 -0
  732. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_pipeline.py +0 -0
  733. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_plan_followup_approve_plan_command.py +0 -0
  734. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_plan_followup_pr_command.py +0 -0
  735. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_plan_followup_review_command.py +0 -0
  736. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_plan_only.py +0 -0
  737. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_plan_parser.py +0 -0
  738. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_platform_paths.py +0 -0
  739. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_portal_bridge.py +0 -0
  740. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_portal_config.py +0 -0
  741. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_portal_store.py +0 -0
  742. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_portal_sync.py +0 -0
  743. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_pr_body_lint.py +0 -0
  744. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_prereqs.py +0 -0
  745. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_production_db_guard.py +0 -0
  746. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_progress.py +0 -0
  747. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_provider_seam.py +0 -0
  748. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_providers.py +0 -0
  749. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_providers_config_labels.py +0 -0
  750. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_providers_pty.py +0 -0
  751. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_quiet_hours.py +0 -0
  752. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_quiet_hours_store_2146.py +0 -0
  753. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_reap_merged_sessions.py +0 -0
  754. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_reap_stale_interactive_tick.py +0 -0
  755. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_reconcile.py +0 -0
  756. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_reconcile_branch.py +0 -0
  757. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_reconcile_completions.py +0 -0
  758. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_reconcile_late_agent_reports_2547.py +0 -0
  759. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_reconcile_merges.py +0 -0
  760. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_reconcile_no_agent_record.py +0 -0
  761. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_reconcile_tick.py +0 -0
  762. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_reconcile_usage_limit_done.py +0 -0
  763. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_refine_chat.py +0 -0
  764. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_release_cordon_2101.py +0 -0
  765. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
  766. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_release_cordon_deadlock_2240.py +0 -0
  767. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_release_cordon_stuck_2490.py +0 -0
  768. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_release_propagate.py +0 -0
  769. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_release_propagate_threshold.py +0 -0
  770. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_release_roll_between_legs_2854.py +0 -0
  771. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_release_roll_window_handoff.py +0 -0
  772. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_release_verify.py +0 -0
  773. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_release_window.py +0 -0
  774. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_remote_auto_prune.py +0 -0
  775. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_remote_interactive_reaper.py +0 -0
  776. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_repo_add.py +0 -0
  777. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_repo_edit_2220.py +0 -0
  778. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_repo_graph_fleet_2237.py +0 -0
  779. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_repo_onboard_2220.py +0 -0
  780. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_report_result_push.py +0 -0
  781. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_reports.py +0 -0
  782. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_retry.py +0 -0
  783. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_retry_advisory_1606.py +0 -0
  784. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_retry_type_1636.py +0 -0
  785. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_revalidate.py +0 -0
  786. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_review_end_review_without_verdict.py +0 -0
  787. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_review_parse_failure_diagnostic.py +0 -0
  788. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_review_reaffirm.py +0 -0
  789. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_review_state.py +0 -0
  790. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_review_verdict_backstop.py +0 -0
  791. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_review_verdict_override_audit.py +0 -0
  792. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_review_verdict_relay.py +0 -0
  793. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_review_zero_commits.py +0 -0
  794. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_scoped_review_wiring.py +0 -0
  795. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_scorecard.py +0 -0
  796. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_self_health.py +0 -0
  797. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_serve.py +0 -0
  798. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_serve_app_board_trim.py +0 -0
  799. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_serve_rest_routes.py +0 -0
  800. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_session.py +0 -0
  801. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_slice_issue_attribution.py +0 -0
  802. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_smoke.py +0 -0
  803. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_smoke_live_checkout_restore.py +0 -0
  804. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_smoke_workflow.py +0 -0
  805. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_spend_ceiling.py +0 -0
  806. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_spend_ceiling_coordinator.py +0 -0
  807. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_split.py +0 -0
  808. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_split_work.py +0 -0
  809. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_sql_dialect.py +0 -0
  810. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_sqlite_connect_ratchet.py +0 -0
  811. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_stage_projection.py +0 -0
  812. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_stale_busy_reviewer_697.py +0 -0
  813. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_stalled_pipeline.py +0 -0
  814. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_state.py +0 -0
  815. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_state_review_findings_daemon.py +0 -0
  816. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_status_fleet_footer.py +0 -0
  817. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_stop_1567.py +0 -0
  818. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_store_contract.py +0 -0
  819. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_store_migrate.py +0 -0
  820. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_stuck.py +0 -0
  821. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_stuck_test_state_watchdog_2803.py +0 -0
  822. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_terminal_command.py +0 -0
  823. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_test_author.py +0 -0
  824. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_test_chat.py +0 -0
  825. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_test_orchestrator.py +0 -0
  826. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_test_report.py +0 -0
  827. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_test_verdict_parsing.py +0 -0
  828. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_test_verdict_transcript_floor.py +0 -0
  829. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_text_io_encoding_audit.py +0 -0
  830. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_thin_client_board_audit.py +0 -0
  831. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_thin_client_config_load_1080.py +0 -0
  832. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_thin_client_daemon_routing_906.py +0 -0
  833. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_tmux_host.py +0 -0
  834. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_tmux_session.py +0 -0
  835. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_transcript_floor.py +0 -0
  836. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_usage.py +0 -0
  837. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_usage_limits.py +0 -0
  838. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_usage_rollup.py +0 -0
  839. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_venv_live_install_2121.py +0 -0
  840. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_version_single_source.py +0 -0
  841. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_watch.py +0 -0
  842. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
  843. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_worker_env_venv_isolation.py +0 -0
  844. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_worker_events.py +0 -0
  845. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_worker_image_pin_sync.py +0 -0
  846. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_worker_safety.py +0 -0
  847. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_worker_test_scoping.py +0 -0
  848. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_worktree.py +0 -0
  849. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_worktree_rmtree_chokepoint.py +0 -0
  850. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/test_write_parity.py +0 -0
  851. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tests/write_parity.py +0 -0
  852. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-33/audit_1039.rs +0 -0
  853. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-33/contract.md +0 -0
  854. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-33/manifest.yml +0 -0
  855. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-33/mocks/audit-panel-detail.screen +0 -0
  856. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-33/mocks/audit-panel-empty.screen +0 -0
  857. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-33/mocks/audit-panel-filters.screen +0 -0
  858. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-33/mocks/audit-panel-populated.screen +0 -0
  859. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-38/contract.md +0 -0
  860. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-38/manifest.yml +0 -0
  861. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-38/mocks/plans-base.screen +0 -0
  862. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-38/mocks/plans-detail-pane.screen +0 -0
  863. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-38/mocks/plans-help-overlay.screen +0 -0
  864. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-38/mocks/plans-palette.screen +0 -0
  865. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-38/mocks/plans-rightclick-epic.screen +0 -0
  866. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-38/mocks/plans-rightclick-header.screen +0 -0
  867. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-38/mocks/plans-rightclick-stub.screen +0 -0
  868. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-38/plans_detail_1122.rs +0 -0
  869. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-38/plans_help_1124.rs +0 -0
  870. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-38/plans_rightclick_1123.rs +0 -0
  871. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-65/board_split_2288.rs +0 -0
  872. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-65/board_tabs_2282.rs +0 -0
  873. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-65/board_tabs_close_2283.rs +0 -0
  874. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-65/contract.md +0 -0
  875. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-65/detail_substate_2285.rs +0 -0
  876. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-65/manifest.yml +0 -0
  877. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-65/mocks/board-baseline-no-tabs.screen +0 -0
  878. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-65/mocks/board-pinned-3-tabs.screen +0 -0
  879. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-65/mocks/board-preview-tab.screen +0 -0
  880. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-65/mocks/board-split-side-by-side.screen +0 -0
  881. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-65/mocks/board-tab-context-menu.screen +0 -0
  882. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-65/mocks/board-tabs-help-overlay.screen +0 -0
  883. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-65/mocks/board-tabs-overflow.screen +0 -0
  884. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-65/mocks/pipeline-tabs-independent.screen +0 -0
  885. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-65/pipeline_tabs_2284.rs +0 -0
  886. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-65/tabs_discoverability_2287.rs +0 -0
  887. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-65/tabs_persistence_2286.rs +0 -0
  888. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-67/approved_items_2532.rs +0 -0
  889. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-67/contract.md +0 -0
  890. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-67/manifest.d/2533.yml +0 -0
  891. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-67/manifest.yml +0 -0
  892. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-67/mocks/approved-items-chat-opened.screen +0 -0
  893. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-67/mocks/approved-items-context-menu.screen +0 -0
  894. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-67/mocks/approved-items-detail.screen +0 -0
  895. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-67/mocks/approved-items-empty.screen +0 -0
  896. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-67/mocks/approved-items-populated.screen +0 -0
  897. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance/ms-67/pull_decomposition_2533.rs +0 -0
  898. {code_coordinator-0.5.294 → code_coordinator-0.5.296}/tui/tests/acceptance.rs +0 -0
@@ -73,21 +73,11 @@ acceptance:
73
73
  run: "pytest tests/acceptance"
74
74
  mock: "*.out"
75
75
  capability: python
76
- - match: tui/**
77
- kind: tui-tuidriver
78
- # Unlike the two routes above, this one is identical to the
79
- # fleet's real route: it never referenced `{ms}` even for
80
- # `--issue` scoping, since `cargo test --test acceptance` always
81
- # runs the whole tui/tests/acceptance.rs entrypoint (which
82
- # `include!`s every ms-NN/*.rs slice) regardless of `{ms}`.
83
- # RUSTC_BOOTSTRAP=1 + -Z unstable-options: --format json is
84
- # nightly-gated; verified working on stable rustc (#1042).
85
- # --features test-support: tui/Cargo.toml's `acceptance` test
86
- # target has `required-features = ["test-support"]`, so a plain
87
- # `cargo test` (no flag) silently skips building/running it
88
- # altogether -- that gap is exactly what made this route
89
- # unreachable from CI before #2180.
90
- run: "cd tui && RUSTC_BOOTSTRAP=1 cargo test --test acceptance --features test-support -- -Z unstable-options --format json"
91
- mock: "*.screen"
92
- capability: rust
93
- entrypoint: tui/tests/acceptance.rs
76
+ # #2899: the `tui/**` -> tui-tuidriver route is GONE from this file.
77
+ # The crate moved to the standalone `coord-tui` repo, taking its
78
+ # sealed entrypoint (`tui/tests/acceptance.rs` -> `tests/acceptance.rs`)
79
+ # and the `tui/tests/acceptance/ms-NN/` slices with it. coord-tui
80
+ # carries its own copy of this CI stand-in, keyed on its own repo
81
+ # name, so the route did not disappear -- it changed repos. This
82
+ # file is now single-route, and this repo's sealed set is exactly
83
+ # `tests/acceptance/**` again.
@@ -31,17 +31,15 @@ jobs:
31
31
  # testpaths=["tests"]) was the one accidental gap. (ms-51 — Playwright,
32
32
  # never .py either — left this repo entirely with the webapp, #2009.)
33
33
  - run: pytest --ignore=tests/acceptance
34
- # #2897: the Rust drift gate `tests/test_generated_rust_fixture.py`
35
- # no longer byte-compares the committed `tui/src/app/types/generated.rs`
36
- # (see docs/ADR_COORD_TUI_CI.md and the header comment further down
37
- # this file) — this explicit step stands in for that comparison while
38
- # `tui/` still lives here. `$COORD_TUI_SRC=.` names this checkout as
39
- # the coord-tui root (`RUST_OUTPUT_RELPATH` keeps the `tui/` prefix for
40
- # exactly this reason). One matrix leg only: the generator's output
41
- # depends on `coord.serve_app.openapi_spec()`, not the Python version.
42
- - name: python scripts/codegen.py --rust --check
43
- if: matrix.python-version == '3.12'
44
- run: COORD_TUI_SRC=. python scripts/codegen.py --rust --check
34
+ # #2899: the `COORD_TUI_SRC=. python scripts/codegen.py --rust --check`
35
+ # step that used to live here is GONE. It was #2897's explicit stand-in
36
+ # for the byte-comparison, held here only for as long as the crate did
37
+ # — that ADR (docs/ADR_COORD_TUI_CI.md) says in terms: "the day
38
+ # coord-tui gets its own checkout + CI, delete the step below (its
39
+ # replacement lives in that CI, installing `code-coordinator[server]`
40
+ # from PyPI exactly as `coord-web`'s does)". This is that day. There is
41
+ # no `generated.rs` in this checkout to compare against, so the step
42
+ # could only fail or — worse — pass vacuously.
45
43
  # #2180: the cli-pytest sealed route (acceptance.drivers routes
46
44
  # "coord/**" -> cli-pytest -> tests/acceptance/ms-37) run through the
47
45
  # #2164 CI wrapper instead of a raw `pytest tests/acceptance` call, so
@@ -321,24 +319,21 @@ jobs:
321
319
  # for it to run against, and a job that installs Node to build nothing is
322
320
  # how the previous `acceptance`-on-every-push waste (#2389) started.
323
321
  #
324
- # #1941/#2897: `scripts/codegen.py` also generates coord-tui's RUST wire
325
- # types (`--rust`). #2897 gave that half the SAME cross-repo shape as the
326
- # TS half above (`--out PATH` / `$COORD_TUI_SRC`, no fallback default,
327
- # docs/ADR_COORD_TUI_CI.md) — but `tui/` has not actually moved out of
328
- # this repo yet, so unlike the TS byte-comparison (which is now
329
- # exclusively `coord-web`'s CI job), the Rust byte-comparison has nowhere
330
- # else to run yet and stays HERE, as an explicit step below rather than a
331
- # pytest test:
332
- #
333
- # COORD_TUI_SRC=. python scripts/codegen.py --rust --check
322
+ # #1941/#2897/#2899: `scripts/codegen.py` also generates coord-tui's RUST
323
+ # wire types (`--rust`). #2897 gave that half the SAME cross-repo shape as
324
+ # the TS half above (`--out PATH` / `$COORD_TUI_SRC`, no fallback default,
325
+ # docs/ADR_COORD_TUI_CI.md), and #2899 moved the crate out — so the Rust
326
+ # byte-comparison is now, exactly like the TS one, EXCLUSIVELY the
327
+ # downstream repo's CI job. coord-tui's `.github/workflows/codegen-drift.yml`
328
+ # installs `code-coordinator[server]` from PyPI and runs
329
+ # `COORD_TUI_SRC=. python -m ... codegen --rust --check` against its own
330
+ # committed `src/app/types/generated.rs`.
334
331
  #
335
- # `tests/test_generated_rust_fixture.py` itself is narrowed to what one
332
+ # Nothing about that gate can run here: this checkout has no `generated.rs`
333
+ # to compare against. What stays is
334
+ # `tests/test_generated_rust_fixture.py`, narrowed by #2897 to what one
336
335
  # checkout can prove — the generator runs and covers every schema — same
337
- # as `tests/test_generated_types_fixture.py`; it no longer byte-compares
338
- # the committed `tui/src/app/types/generated.rs`. The day coord-tui gets
339
- # its own checkout + CI, delete the step below (its replacement lives in
340
- # that CI, installing `code-coordinator[server]` from PyPI exactly as
341
- # `coord-web`'s does) — no pytest file to un-narrow.
336
+ # as `tests/test_generated_types_fixture.py`.
342
337
  #
343
338
  # The consumer-side INTEGER-backed-bool text-scraping guard
344
339
  # (`coord/board_bool_guard.py`) that used to also read Rust source text
@@ -9,11 +9,6 @@ board_state.json
9
9
  agent_setup.json
10
10
  coordinator.yml
11
11
 
12
- # Rust build artifacts (coord-tui)
13
- tui/target/
14
- tui/*.err
15
- tui/*.out
16
-
17
12
  # scripts/coord-test-runner.sh scratch output, written into the worktree it
18
13
  # is pointed at. Harmless in the throwaway worktree the Test stage uses, but
19
14
  # a worker who runs the runner against its own checkout and then `git add -A`
@@ -33,11 +28,6 @@ tui/*.out
33
28
  .fallback.out
34
29
  .coord-ci-home/
35
30
 
36
- # #1973: opt-in local quadraui path override (see
37
- # tui/cargo-config-local-quadraui.toml.example) — never commit a
38
- # machine-local co-development override.
39
- tui/.cargo/config.toml
40
-
41
31
  # scratch $HOME created inside disposable worktrees by the CI-mode
42
32
  # acceptance runner (scripts/coord-test-runner.sh) — never meant to
43
33
  # leave the throwaway worktree, let alone land in git history (#2527).
@@ -111,23 +111,25 @@ activation from an earlier command carried forward.
111
111
  The full suite exceeds Claude Code's 600s Bash ceiling on this repo and
112
112
  duplicates the Test stage + CI, which both run it against your pushed SHA
113
113
  regardless. Run just the file(s) that mirror what you changed — `pytest
114
- tests/test_<module>.py` for a `coord/<module>.py` change, `cargo test` from
115
- `tui/` scoped with a test-name filter for a `tui/**` change. To see what
114
+ tests/test_<module>.py` for a `coord/<module>.py` change. To see what
116
115
  the Test stage itself would run for your diff (and confirm you're not
117
116
  missing a suite), `scripts/coord-test-runner.sh <worktree> --print-routing`
118
117
  computes the routing without actually building or testing anything.
119
118
 
120
- ## Working on `tui/` — the `quadraui` pin
121
-
122
- **`coord-tui` pins `quadraui` to a git rev in `tui/Cargo.toml`**
123
- (`quadraui = { git = "https://github.com/JDonaghy/quadraui", rev = "<sha>" }`, #1973) —
124
- never edit that `rev` as a shortcut for co-development, and never build `tui/` against
125
- whatever happens to be checked out in `~/src/quadraui`; a quadraui merge broke coord-tui's
126
- build with zero coord-tui commits and no warning once already, which is exactly what the pin
127
- prevents. Bumping the pin deliberately, and building against an unmerged quadraui branch/PR
128
- without touching the pin, are both procedures — see the `tui-quadraui-workflow` skill
129
- (`coord/skills/tui-quadraui-workflow/SKILL.md`) for the steps; install it with `coord
130
- install-skills` if it isn't already on this machine.
119
+ > **#2899: the TUI is not in this repo.** The `coord-tui` crate that used to live
120
+ > under `tui/` is now the standalone [`JDonaghy/coord-tui`](https://github.com/JDonaghy/coord-tui)
121
+ > repo, checked out at `~/src/coord-tui`. Its rules — the `quadraui` git-rev pin, the
122
+ > `TuiDriver` harness, its sealed `tests/acceptance.rs` — live in **its** CLAUDE.md,
123
+ > per this file's own scope rule above: a rule that does not change what someone
124
+ > editing *this* repo does, does not belong here. If your briefing asks you to change
125
+ > Rust, you are in the wrong checkout — say so rather than recreating `tui/`.
126
+ >
127
+ > Two seams still cross the split, and both run **from coord-tui's CI, pulling
128
+ > `code-coordinator` from PyPI** — never the other way round: `scripts/codegen.py --rust`
129
+ > (its `src/app/types/generated.rs` wire types) and `scripts/gen_board_fixture.py`
130
+ > (its `tests/fixtures/board_sample.json`). Both take `--out PATH` or `$COORD_TUI_SRC`
131
+ > and deliberately have **no fallback default**, so a missing checkout is an error
132
+ > rather than a gate that passes against nothing.
131
133
 
132
134
  ## Key Design Decisions
133
135
 
@@ -163,7 +165,7 @@ The reviewer reads the rules and enforces them against the diff. It does not hav
163
165
  ## Rules for workers
164
166
 
165
167
  - **Only the coordinator writes docs.** Workers must **not** update README, CHANGELOG, or shared documentation files — parallel doc edits cause merge conflicts. If a briefing lists docs in `files_forbidden`, respect it. An issue whose *entire* deliverable is a doc edit is coordinator work and should never have been dispatched; say so and stop rather than editing the doc.
166
- - **Never edit the sealed suite — which is `tests/acceptance/**` *plus every declared driver entrypoint*.** Those suites are delivered read-only / run-only; write your own unit and internal tests instead. **In this repo the sealed set includes `tui/tests/acceptance.rs`** — it is the `tui-tuidriver` driver's `entrypoint:`, and an entrypoint is sealed as a whole file, so it is sealed despite living nowhere near `tests/acceptance/`. Do not be reassured by its prologue calling itself "a seam smoke test": *any* `type="work"` diff touching a sealed path is an **unconditional, mandatory `request-changes`** (`coord/review.py`), and the additive-only carve-out applies only to `test-author` / `mock-author` dispatches. TuiDriver tests belong **in-crate** under `#[cfg(test)]` anyway — see the coord-tui section below. The authoritative list is `AcceptanceConfig.sealed_paths()` in `coord/config.py`; if a briefing's `## Files` names a sealed path, that briefing is wrong — say so and put the test somewhere else rather than following it.
168
+ - **Never edit the sealed suite — which is `tests/acceptance/**` *plus every declared driver entrypoint*.** Those suites are delivered read-only / run-only; write your own unit and internal tests instead. **In this repo, since #2899 moved `tui/` out, the sealed set is exactly `tests/acceptance/**`** — the `tui-tuidriver` `entrypoint:` that used to widen it (`tui/tests/acceptance.rs`, sealed as a whole file despite living nowhere near `tests/acceptance/`) went to the coord-tui repo with the crate, and is sealed *there*. The entrypoint rule itself has not changed, so do not assume a one-directory sealed set in any other repo. *Any* `type="work"` diff touching a sealed path is an **unconditional, mandatory `request-changes`** (`coord/review.py`), and the additive-only carve-out applies only to `test-author` / `mock-author` dispatches. The authoritative list is `AcceptanceConfig.sealed_paths()` in `coord/config.py` — it is derived from the configured driver `entrypoint:`, never hardcoded, which is why it followed the crate automatically; if a briefing's `## Files` names a sealed path, that briefing is wrong — say so and put the test somewhere else rather than following it.
167
169
  - **Stay in file scope.** If you must touch a file outside your briefing, note it in your final message.
168
170
  - **Commit and push before your final message** — even if the build is broken or you ran out of time. Uncommitted work is destroyed when the session ends.
169
171
  - **`gh` is on the deny-list.** The coordinator owns all GitHub interaction; use plain `git`.
@@ -189,12 +191,6 @@ versus keep in the coordinator session, and the coordinator session's own
189
191
 
190
192
  **How it runs:** black-box tests are part of the repo's normal test command, so the **Test stage** executes them on a capability-matched machine — `smoke_tests.capability_rules` route platform-specific suites to capable hardware (a GTK box; a machine with a browser). Favor the automated pre-review gate; the point is to trust the suite so manual/interactive smoke (incl. driving from a phone) is rarely needed.
191
193
 
192
- ### coord-tui — quadraui `TuiDriver` (harness shipped: #690 / #691)
193
- - Drives the whole app through the real `event → handle → render` path against ratatui's headless `TestBackend` and asserts on the screen grid. `cargo test`-native, deterministic, no TTY.
194
- - `CoordApp` implements quadraui's `ShellApp`, so use `quadraui::tui::testing::driver_with_shell(app, CoordApp::shell_config(), w, h)`. API: `find("text")` → coords, `click(x, y)`, `press`, `type_char`, `screen()`, `screen_contains(needle)`. **Locate targets with `find` — never hardcode coordinates.**
195
- - **Reuse the existing fixtures** — `make_test_app(data: BoardData) -> CoordApp` (and `make_app_with_assignments`, `make_app_with_one_completed_issue`, …) in `tui/src/app.rs` build a full app from in-memory `BoardData`, no live daemon. Put the tests **in-crate** (`#[cfg(test)]`), **not** in `tui/tests/` — the fixtures are `#[cfg(test)]`/private and an integration-test crate can't see them.
196
- - Limit: `TuiDriver` renders to `TestBackend`, so it does **not** parse real ANSI — terminal-protocol bugs (raw-mode, SGR mouse, the embedded `claude` PTY pane) are out of reach and still need a live smoke. A native pty + vt100 tier is tracked in quadraui#302 (unbuilt).
197
-
198
194
  ### coord web (Phone Control Center)
199
195
  - The phone web app lives in `coord/dashboard/webapp/` (React / Vite / TS PWA, served by `coord/dashboard/server.py`). **Build the bundle before first use** — `dist/` is gitignored: `npm install && npm run build` from `coord/dashboard/webapp/`, re-run after pulling changes to `src/`. The server falls back to the legacy `index.html` when `dist/` is absent.
200
196
  - **Vitest unit tests** live in `coord/dashboard/webapp/src/components/__tests__/` (`npm test`). **Playwright E2E** specs live in `coord/dashboard/webapp/e2e/` (`npm run test:e2e`) and are the acceptance bar — browsers headless-test more cleanly than terminals, so lean on this gate rather than interactive smoke.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-coordinator
3
- Version: 0.5.294
3
+ Version: 0.5.296
4
4
  Summary: Coordinate Claude Code workers across multiple machines and repos.
5
5
  Author-email: John Donaghy <johnfdonaghy@gmail.com>
6
6
  License-Expression: LicenseRef-FSL-1.1-MIT
@@ -282,7 +282,8 @@ coord tui update # downloads the release binary matching `coord --version`
282
282
  coord tui status # check the installed version against the coordinator's
283
283
  ```
284
284
 
285
- (Building from source is only for developing the TUI itself: `cd tui && cargo build`.)
285
+ (Building from source is only for developing the TUI itself, and it lives in its own
286
+ repo since #2899: `git clone https://github.com/JDonaghy/coord-tui && cd coord-tui && cargo build`.)
286
287
 
287
288
  The whole lifecycle can also be driven as **human-attended interactive sessions** launched from
288
289
  a pipeline row's right-click menu — a testing agent, a reviewer, a merge agent, or a fix worker,
@@ -240,7 +240,8 @@ coord tui update # downloads the release binary matching `coord --version`
240
240
  coord tui status # check the installed version against the coordinator's
241
241
  ```
242
242
 
243
- (Building from source is only for developing the TUI itself: `cd tui && cargo build`.)
243
+ (Building from source is only for developing the TUI itself, and it lives in its own
244
+ repo since #2899: `git clone https://github.com/JDonaghy/coord-tui && cd coord-tui && cargo build`.)
244
245
 
245
246
  The whole lifecycle can also be driven as **human-attended interactive sessions** launched from
246
247
  a pipeline row's right-click menu — a testing agent, a reviewer, a merge agent, or a fix worker,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-coordinator
3
- Version: 0.5.294
3
+ Version: 0.5.296
4
4
  Summary: Coordinate Claude Code workers across multiple machines and repos.
5
5
  Author-email: John Donaghy <johnfdonaghy@gmail.com>
6
6
  License-Expression: LicenseRef-FSL-1.1-MIT
@@ -282,7 +282,8 @@ coord tui update # downloads the release binary matching `coord --version`
282
282
  coord tui status # check the installed version against the coordinator's
283
283
  ```
284
284
 
285
- (Building from source is only for developing the TUI itself: `cd tui && cargo build`.)
285
+ (Building from source is only for developing the TUI itself, and it lives in its own
286
+ repo since #2899: `git clone https://github.com/JDonaghy/coord-tui && cd coord-tui && cargo build`.)
286
287
 
287
288
  The whole lifecycle can also be driven as **human-attended interactive sessions** launched from
288
289
  a pipeline row's right-click menu — a testing agent, a reviewer, a merge agent, or a fix worker,
@@ -17,7 +17,6 @@ pyproject.toml
17
17
  .github/coord-ci-acceptance.yml
18
18
  .github/ISSUE_TEMPLATE/bug_report.md
19
19
  .github/workflows/auto-release.yml
20
- .github/workflows/cargo-test.yml
21
20
  .github/workflows/publish.yml
22
21
  .github/workflows/test.yml
23
22
  code_coordinator.egg-info/PKG-INFO
@@ -341,6 +340,7 @@ scripts/codegen.py
341
340
  scripts/coord-test-runner.sh
342
341
  scripts/coord-venv-rollback.sh
343
342
  scripts/drive-batch.sh
343
+ scripts/extract-coord-tui.sh
344
344
  scripts/fleet_watchdog.py
345
345
  scripts/gen_board_fixture.py
346
346
  scripts/gen_mock_index.py
@@ -361,6 +361,10 @@ scripts/azure-workers/provision-worker.sh
361
361
  scripts/azure-workers/scrub-and-generalize.sh
362
362
  scripts/azure-workers/tailnet-acl.hujson
363
363
  scripts/azure-workers/verify-github-token.sh
364
+ scripts/coord-tui-scaffold/CLAUDE.md
365
+ scripts/coord-tui-scaffold/.github/coord-ci-acceptance.yml
366
+ scripts/coord-tui-scaffold/.github/workflows/cargo-test.yml
367
+ scripts/coord-tui-scaffold/.github/workflows/codegen-drift.yml
364
368
  tests/SMOKE_SET.md
365
369
  tests/__init__.py
366
370
  tests/backends.py
@@ -799,47 +803,7 @@ tests/fixtures/test_report/pytest_error_string_in_body.txt
799
803
  tests/fixtures/test_report/pytest_internal_error.txt
800
804
  tests/fixtures/test_report/pytest_mixed_failures.txt
801
805
  tests/fixtures/test_report/pytest_no_parseable_failures.txt
802
- tui/Cargo.lock
803
- tui/Cargo.toml
804
- tui/cargo-config-local-quadraui.toml.example
805
- tui/.github/workflows/release-tui.yml
806
- tui/src/commands.rs
807
- tui/src/lib.rs
808
- tui/src/main.rs
809
- tui/src/settings.rs
810
- tui/src/app/approved.rs
811
- tui/src/app/audit.rs
812
- tui/src/app/chat.rs
813
- tui/src/app/data.rs
814
- tui/src/app/dialogs.rs
815
- tui/src/app/doc_tabs.rs
816
- tui/src/app/drive.rs
817
- tui/src/app/drive_queue.rs
818
- tui/src/app/escalation.rs
819
- tui/src/app/events.rs
820
- tui/src/app/fixtures.rs
821
- tui/src/app/fleet_health.rs
822
- tui/src/app/fleet_sessions.rs
823
- tui/src/app/fleet_terminals.rs
824
- tui/src/app/format.rs
825
- tui/src/app/milestone_dag.rs
826
- tui/src/app/mod.rs
827
- tui/src/app/msv.rs
828
- tui/src/app/pipeline.rs
829
- tui/src/app/plans.rs
830
- tui/src/app/render.rs
831
- tui/src/app/reports.rs
832
- tui/src/app/sessions.rs
833
- tui/src/app/settings_ui.rs
834
- tui/src/app/sidebar.rs
835
- tui/src/app/terminal.rs
836
- tui/src/app/tests.rs
837
- tui/src/app/types.rs
838
- tui/src/app/workspace.rs
839
- tui/src/app/types/generated.rs
840
- tui/src/bin/gtk.rs
841
806
  tui/tests/acceptance.rs
842
- tui/tests/cli.rs
843
807
  tui/tests/acceptance/ms-33/audit_1039.rs
844
808
  tui/tests/acceptance/ms-33/contract.md
845
809
  tui/tests/acceptance/ms-33/manifest.yml
@@ -885,5 +849,4 @@ tui/tests/acceptance/ms-67/mocks/approved-items-chat-opened.screen
885
849
  tui/tests/acceptance/ms-67/mocks/approved-items-context-menu.screen
886
850
  tui/tests/acceptance/ms-67/mocks/approved-items-detail.screen
887
851
  tui/tests/acceptance/ms-67/mocks/approved-items-empty.screen
888
- tui/tests/acceptance/ms-67/mocks/approved-items-populated.screen
889
- tui/tests/fixtures/board_sample.json
852
+ tui/tests/acceptance/ms-67/mocks/approved-items-populated.screen
@@ -10,7 +10,6 @@
10
10
  ".github/ISSUE_TEMPLATE/bug_report.md",
11
11
  ".github/coord-ci-acceptance.yml",
12
12
  ".github/workflows/auto-release.yml",
13
- ".github/workflows/cargo-test.yml",
14
13
  ".github/workflows/publish.yml",
15
14
  ".github/workflows/test.yml",
16
15
  ".gitignore",
@@ -343,8 +342,13 @@
343
342
  "scripts/check_gh_argv_containment.py",
344
343
  "scripts/codegen.py",
345
344
  "scripts/coord-test-runner.sh",
345
+ "scripts/coord-tui-scaffold/.github/coord-ci-acceptance.yml",
346
+ "scripts/coord-tui-scaffold/.github/workflows/cargo-test.yml",
347
+ "scripts/coord-tui-scaffold/.github/workflows/codegen-drift.yml",
348
+ "scripts/coord-tui-scaffold/CLAUDE.md",
346
349
  "scripts/coord-venv-rollback.sh",
347
350
  "scripts/drive-batch.sh",
351
+ "scripts/extract-coord-tui.sh",
348
352
  "scripts/fleet_watchdog.py",
349
353
  "scripts/gen_board_fixture.py",
350
354
  "scripts/gen_mock_index.py",
@@ -793,45 +797,6 @@
793
797
  "tests/test_worktree_rmtree_chokepoint.py",
794
798
  "tests/test_write_parity.py",
795
799
  "tests/write_parity.py",
796
- "tui/.github/workflows/release-tui.yml",
797
- "tui/Cargo.lock",
798
- "tui/Cargo.toml",
799
- "tui/cargo-config-local-quadraui.toml.example",
800
- "tui/src/app/approved.rs",
801
- "tui/src/app/audit.rs",
802
- "tui/src/app/chat.rs",
803
- "tui/src/app/data.rs",
804
- "tui/src/app/dialogs.rs",
805
- "tui/src/app/doc_tabs.rs",
806
- "tui/src/app/drive.rs",
807
- "tui/src/app/drive_queue.rs",
808
- "tui/src/app/escalation.rs",
809
- "tui/src/app/events.rs",
810
- "tui/src/app/fixtures.rs",
811
- "tui/src/app/fleet_health.rs",
812
- "tui/src/app/fleet_sessions.rs",
813
- "tui/src/app/fleet_terminals.rs",
814
- "tui/src/app/format.rs",
815
- "tui/src/app/milestone_dag.rs",
816
- "tui/src/app/mod.rs",
817
- "tui/src/app/msv.rs",
818
- "tui/src/app/pipeline.rs",
819
- "tui/src/app/plans.rs",
820
- "tui/src/app/render.rs",
821
- "tui/src/app/reports.rs",
822
- "tui/src/app/sessions.rs",
823
- "tui/src/app/settings_ui.rs",
824
- "tui/src/app/sidebar.rs",
825
- "tui/src/app/terminal.rs",
826
- "tui/src/app/tests.rs",
827
- "tui/src/app/types.rs",
828
- "tui/src/app/types/generated.rs",
829
- "tui/src/app/workspace.rs",
830
- "tui/src/bin/gtk.rs",
831
- "tui/src/commands.rs",
832
- "tui/src/lib.rs",
833
- "tui/src/main.rs",
834
- "tui/src/settings.rs",
835
800
  "tui/tests/acceptance.rs",
836
801
  "tui/tests/acceptance/ms-33/audit_1039.rs",
837
802
  "tui/tests/acceptance/ms-33/contract.md",
@@ -878,8 +843,6 @@
878
843
  "tui/tests/acceptance/ms-67/mocks/approved-items-detail.screen",
879
844
  "tui/tests/acceptance/ms-67/mocks/approved-items-empty.screen",
880
845
  "tui/tests/acceptance/ms-67/mocks/approved-items-populated.screen",
881
- "tui/tests/acceptance/ms-67/pull_decomposition_2533.rs",
882
- "tui/tests/cli.rs",
883
- "tui/tests/fixtures/board_sample.json"
846
+ "tui/tests/acceptance/ms-67/pull_decomposition_2533.rs"
884
847
  ]
885
848
  }
@@ -1,7 +1,7 @@
1
1
  {
2
- "tag": "0.5.294",
2
+ "tag": "0.5.296",
3
3
  "distance": 0,
4
- "node": "gad3ed43a4b2310f6ef6968a7676f11e2deaca61f",
4
+ "node": "ga711fc248f5a8207d97fdc8ec5709d04beb8f505",
5
5
  "dirty": false,
6
6
  "branch": "HEAD",
7
7
  "node_date": "2026-08-29"
@@ -325,12 +325,13 @@ def tui_update(
325
325
  click.echo(
326
326
  f"refusing to overwrite {dest_path}: it reports version "
327
327
  f"{DEV_BUILD_SENTINEL_VERSION!r}, the sentinel a locally "
328
- "`cargo build`'d coord-tui always carries (tui/Cargo.toml's "
328
+ "`cargo build`'d coord-tui always carries (coord-tui's "
329
+ "Cargo.toml "
329
330
  "committed version is only stamped for real in CI release "
330
331
  "builds). This looks like a dev build someone is iterating "
331
332
  "on -- pass --force to overwrite it anyway, or keep "
332
- "building it yourself: cd tui && cargo build && cp "
333
- f"target/debug/coord-tui {dest_path}",
333
+ "building it yourself: from a coord-tui checkout, "
334
+ f"cargo build && cp target/debug/coord-tui {dest_path}",
334
335
  err=True,
335
336
  )
336
337
  sys.exit(3)
@@ -1984,14 +1984,23 @@ class HealthConfig:
1984
1984
  # exists because it was found three releases stale on 2026-07-29.
1985
1985
  cli_venv_python: str | None = None
1986
1986
  # Absolute path to the built coord-tui binary. None → ~/.local/bin/coord-tui
1987
- # (README: `cd tui && cargo build && cp target/debug/coord-tui
1987
+ # (coord-tui's README: `cargo build && cp target/debug/coord-tui
1988
1988
  # ~/.local/bin/coord-tui`).
1989
1989
  tui_binary_path: str | None = None
1990
- # Directory holding the tui/ Rust sources the binary was built from. None →
1991
- # `<checkout>/tui/src` for the first configured local checkout that has one.
1990
+ # Directory holding the coord-tui Rust sources the binary was built from
1991
+ # (#2899; before that split the crate lived at `tui/` inside THIS repo).
1992
+ # None → `<checkout>/src` for this machine's `coord-tui` checkout,
1993
+ # discovered the same way `coord_tui_checkout` is (see
1994
+ # `coord.health.checks.deploy_lane_facts.resolve_coord_tui_checkout`),
1995
+ # falling back to the pre-split `<checkout>/tui/src`.
1992
1996
  # Deliberately points at `src/`, not the crate root: rooting the mtime walk
1993
1997
  # above `target/` would sweep a multi-GB build dir on every refresh.
1994
1998
  tui_source_dir: str | None = None
1999
+ # Root of a local `coord-tui` checkout (#2899). None → discover it from
2000
+ # `repo_paths`/`ctx.checkouts` (a checkout named `coord-tui`, else one
2001
+ # carrying `src/app/data.rs`). Same convention as the lanes above: None
2002
+ # means "discover it", never "disable the lane".
2003
+ coord_tui_checkout: str | None = None
1995
2004
  # Absolute path to the live `coord web --dist` bundle (#1834 lane 5).
1996
2005
  # None → ~/coord-web-dist — the symlink `deploy/coord-web-dist-build.timer`
1997
2006
  # atomically repoints at each new release (#1543).
@@ -3601,6 +3610,7 @@ _HEALTH_OPT_STR_FIELDS: tuple[str, ...] = (
3601
3610
  "cli_venv_python",
3602
3611
  "tui_binary_path",
3603
3612
  "tui_source_dir",
3613
+ "coord_tui_checkout",
3604
3614
  "deploy_dir",
3605
3615
  "systemd_user_dir",
3606
3616
  "webapp_dist_path",
@@ -3759,18 +3759,29 @@ def _reconcile_blocked(
3759
3759
  except a CONFIRMED-clear reading OR a probe that came back unreadable
3760
3760
  (#2806), which is deliberate: a `blocked` entry this sweep cannot say
3761
3761
  anything new about must render EXACTLY as it did before #2230 existed.
3762
- Three ways to land there:
3762
+ Four ways to land there:
3763
3763
 
3764
3764
  * the block is PERMANENT (:func:`is_permanent_block_reason`) — #1844's
3765
3765
  guard refusal or #2019's dead end — neither of which any amount of
3766
3766
  re-checking can ever change;
3767
+ * the block is `_resolve_prereqs`'s own unsatisfiable ``after=`` verdict
3768
+ (:func:`_is_unsatisfiable_prereq_reason`, #2935) — a `waiting` entry
3769
+ that never reached `running` has no assignment and no branch, so
3770
+ there is categorically no merge-queue row for THIS sweep to have any
3771
+ opinion about; the entry's fate is `_reconcile_blocked_after`'s alone
3772
+ to decide, from the ``after=`` graph, on this or a later tick. Checked
3773
+ — and returned from — before :func:`_blocked_gate_reading` even runs,
3774
+ specifically so :func:`_reconcile_blocked_unreadable` never gets the
3775
+ chance to overwrite `last_reason` with a merge-gate "could not read"
3776
+ sentence and clobber the one marker `_reconcile_blocked_after` needs
3777
+ to recognise this row again next tick — see #2935 for the incident a
3778
+ missing version of this branch caused;
3767
3779
  * there is no evidence either way (:func:`_blocked_gate_reading` returns
3768
3780
  ``None``) AND :func:`_reconcile_blocked_unreadable` also has nothing
3769
- to add — an entry that never reached the merge queue at all (a
3770
- dispatch-time failure, an unsatisfiable ``after=``) has nothing this
3771
- sweep can cheaply re-check, and guessing would be exactly the "worse
3772
- than nothing" sweep the issue warns a naive "retry everything" pass
3773
- would be;
3781
+ to add — a dispatch-time failure (#2589's two per-run shapes) has
3782
+ nothing this sweep can cheaply re-check, and guessing would be
3783
+ exactly the "worse than nothing" sweep the issue warns a naive
3784
+ "retry everything" pass would be;
3774
3785
  * the gate is CONFIRMED still shut — the common, honest outcome for a
3775
3786
  `blocked` entry that has not in fact recovered yet.
3776
3787
 
@@ -3801,6 +3812,58 @@ def _reconcile_blocked(
3801
3812
  """
3802
3813
  if is_permanent_block_reason(entry.last_reason):
3803
3814
  return None
3815
+ if _is_unsatisfiable_prereq_reason(entry.last_reason):
3816
+ # #2935: this entry's ONLY `blocked` cause is `_resolve_prereqs`'s
3817
+ # own after= verdict (step 4's launch walk, or its #2362/#2756
3818
+ # sibling `_reconcile_blocked_after`, called immediately before this
3819
+ # function in the same per-tick loop) — a `waiting` entry that never
3820
+ # reached `running` at all (see `_resolve_prereqs`'s own comment:
3821
+ # "attempts is deliberately NOT incremented: nothing was ever
3822
+ # launched for this entry"). A never-dispatched entry has no
3823
+ # assignment and no branch, so there is no merge-queue row for
3824
+ # #2230's gate sweep to have ANY opinion about — a merge gate cannot
3825
+ # exist for something that was never built, and probing for one
3826
+ # anyway is a category error, not a failed probe.
3827
+ #
3828
+ # This must be checked BEFORE `_blocked_gate_reading`/
3829
+ # `_reconcile_blocked_unreadable` below, not folded into their "no
3830
+ # evidence" handling: `_reconcile_blocked_unreadable` WRITES
3831
+ # `last_reason` the instant the shell's live probe was attempted and
3832
+ # came back with no key (`live_blocked_unreadable`) — and doing that
3833
+ # here would CLOBBER this exact marker text, which is the ONLY
3834
+ # signal `_reconcile_blocked_after` uses (both here and on every
3835
+ # future tick) to recognise this row as an after=-caused block worth
3836
+ # re-diagnosing at all. The claude-coordinator#2935 incident: five
3837
+ # dependents whose prerequisite had already landed stayed `blocked`
3838
+ # for 178-207 consecutive ticks apiece, because the FIRST tick after
3839
+ # they became re-evaluable this way overwrote their own "will never
3840
+ # satisfy"/"not queued, not merged and not open" text with this
3841
+ # sweep's "no merge-queue row ... could not be read" sentence —
3842
+ # after which `_reconcile_blocked_after`'s guard could never
3843
+ # recognise the row again, even once the prerequisite genuinely
3844
+ # landed. Bailing out here, before any write, keeps the marker
3845
+ # intact for as many ticks as it takes the after= graph to actually
3846
+ # clear — the entry's fate stays entirely `_reconcile_blocked_
3847
+ # after`'s to decide, exactly as the issue's "Expected behaviour"
3848
+ # asks: answered from the after= graph, never from a merge-gate
3849
+ # probe.
3850
+ #
3851
+ # Deliberately a text match on the SAME two verdict shapes
3852
+ # `_reconcile_blocked_after` itself already trusts to gate its own
3853
+ # resume — not the #2589/#2635 per-run dispatch markers
3854
+ # (`is_dispatch_failure_reason`/`is_empty_branch_death_reason`),
3855
+ # which stay OUT of this function on purpose (see
3856
+ # `test_a_pre_dispatch_reason_text_does_not_suppress_a_real_
3857
+ # unreadable_note`): those two describe what ONE launch attempt
3858
+ # dispatched, which can go stale the moment an earlier attempt on
3859
+ # the SAME entry left real evidence behind, so only the shell's live
3860
+ # re-check (`live_blocked_unreadable`) is trusted to suppress them.
3861
+ # `_resolve_prereqs`'s unsatisfiable verdict carries no such
3862
+ # per-run ambiguity: it is only ever written for a `waiting` entry
3863
+ # that has NEVER reached `running`, so the "nothing was ever
3864
+ # dispatched" reading it encodes cannot be contradicted by an
3865
+ # earlier attempt the way a per-run marker can.
3866
+ return None
3804
3867
  reading = _blocked_gate_reading(entry, facts, live_blocked_gate)
3805
3868
  if reading is None:
3806
3869
  return _reconcile_blocked_unreadable(entry, live_blocked_unreadable)