code-coordinator 0.5.244__tar.gz → 0.5.245__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 (861) hide show
  1. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/CLAUDE.md +3 -4
  2. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/PKG-INFO +1 -1
  3. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/code_coordinator.egg-info/PKG-INFO +1 -1
  4. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/code_coordinator.egg-info/SOURCES.txt +4 -0
  5. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/code_coordinator.egg-info/scm_file_list.json +4 -0
  6. code_coordinator-0.5.245/code_coordinator.egg-info/scm_version.json +8 -0
  7. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/acceptance_drivers.py +14 -0
  8. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/agent.py +135 -30
  9. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/audit.py +7 -3
  10. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/client.py +75 -0
  11. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/_common.py +162 -37
  12. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/acceptance.py +64 -1
  13. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/chat.py +3 -1
  14. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/dispatch.py +3 -1
  15. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/dispatch_workers.py +3 -1
  16. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/drive_queue.py +15 -7
  17. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/merge.py +2 -3
  18. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/portal.py +694 -27
  19. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/release.py +26 -13
  20. code_coordinator-0.5.245/coord/commands/repo.py +1259 -0
  21. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/sessions.py +78 -54
  22. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/test_gate.py +13 -5
  23. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/dao.py +58 -31
  24. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/db.py +340 -100
  25. code_coordinator-0.5.245/coord/decomposition_chat.py +536 -0
  26. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/drive.py +11 -4
  27. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/drive_queue.py +59 -14
  28. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/drive_state.py +74 -8
  29. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/forge_availability.py +3 -1
  30. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/gates.py +3 -1
  31. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/github_ops.py +191 -0
  32. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/housekeeping.py +16 -13
  33. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/interactive.py +14 -4
  34. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/issue_store.py +35 -16
  35. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/merge_queue.py +9 -9
  36. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/notify.py +3 -1
  37. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/platform_paths.py +23 -3
  38. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/portal_store.py +805 -94
  39. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/portal_sync.py +268 -13
  40. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/release_cordon.py +228 -20
  41. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/release_propagate.py +10 -4
  42. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/repo_edit.py +94 -0
  43. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/repo_onboard.py +224 -10
  44. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/reports.py +13 -8
  45. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/serve_app.py +317 -2
  46. code_coordinator-0.5.245/coord/sql.py +509 -0
  47. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/state.py +264 -188
  48. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/test_chat.py +3 -1
  49. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/test_orchestrator.py +3 -1
  50. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/worker_events.py +41 -8
  51. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/fleet_watchdog.py +12 -1
  52. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/conftest.py +186 -4
  53. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_acceptance_drivers.py +22 -0
  54. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent.py +118 -70
  55. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_app.py +44 -14
  56. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_branch_capture.py +12 -10
  57. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_reap.py +48 -2
  58. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_zero_commit.py +53 -47
  59. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_audit_log.py +28 -2
  60. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cargo_cache.py +52 -23
  61. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_acceptance.py +84 -0
  62. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_portal.py +502 -3
  63. code_coordinator-0.5.245/tests/test_commands_common.py +449 -0
  64. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_coord_test_runner_populated_home.py +31 -15
  65. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_dao.py +34 -0
  66. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_dashboard_terminal.py +22 -0
  67. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_db.py +268 -1
  68. code_coordinator-0.5.245/tests/test_decomposition_chat.py +787 -0
  69. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_drive.py +9 -5
  70. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_drive_queue.py +107 -11
  71. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_drive_state.py +74 -8
  72. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_filelock.py +10 -0
  73. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_fleet_watchdog.py +41 -0
  74. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_human_attended_437.py +7 -3
  75. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_issue_store_seam.py +72 -0
  76. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_model_tiering.py +71 -44
  77. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_plan_only.py +9 -3
  78. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_platform_paths.py +92 -0
  79. code_coordinator-0.5.245/tests/test_portal_store.py +1184 -0
  80. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_portal_sync.py +232 -0
  81. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_progress.py +22 -14
  82. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_release_cordon_deadlock_2240.py +385 -0
  83. code_coordinator-0.5.245/tests/test_repo_add.py +540 -0
  84. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_repo_edit_2220.py +120 -0
  85. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_repo_onboard_2220.py +192 -0
  86. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_serve.py +16 -1
  87. code_coordinator-0.5.245/tests/test_sql_dialect.py +768 -0
  88. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_state.py +198 -2
  89. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_worker_events.py +58 -0
  90. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_worktree.py +52 -20
  91. code_coordinator-0.5.244/code_coordinator.egg-info/scm_version.json +0 -8
  92. code_coordinator-0.5.244/coord/commands/repo.py +0 -497
  93. code_coordinator-0.5.244/coord/decomposition_chat.py +0 -286
  94. code_coordinator-0.5.244/tests/test_decomposition_chat.py +0 -272
  95. code_coordinator-0.5.244/tests/test_portal_store.py +0 -465
  96. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/.claude/commands/board.md +0 -0
  97. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/.claude/commands/complete-session.md +0 -0
  98. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/.claude/commands/coordinator.md +0 -0
  99. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/.githooks/_lib.sh +0 -0
  100. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/.githooks/post-checkout +0 -0
  101. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/.githooks/post-commit +0 -0
  102. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/.githooks/post-merge +0 -0
  103. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  104. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/.github/coord-ci-acceptance.yml +0 -0
  105. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/.github/workflows/auto-release.yml +0 -0
  106. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/.github/workflows/cargo-test.yml +0 -0
  107. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/.github/workflows/publish.yml +0 -0
  108. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/.github/workflows/release-tui.yml +0 -0
  109. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/.github/workflows/test.yml +0 -0
  110. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/.gitignore +0 -0
  111. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/GOAL.md +0 -0
  112. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/LICENSE +0 -0
  113. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/MANIFEST.in +0 -0
  114. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/README.md +0 -0
  115. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/code_coordinator.egg-info/dependency_links.txt +0 -0
  116. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/code_coordinator.egg-info/entry_points.txt +0 -0
  117. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/code_coordinator.egg-info/requires.txt +0 -0
  118. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/code_coordinator.egg-info/top_level.txt +0 -0
  119. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/__init__.py +0 -0
  120. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/_board_mapping.py +0 -0
  121. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/acceptance.py +0 -0
  122. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/agent_app.py +0 -0
  123. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/agent_update.py +0 -0
  124. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/agents/opencode/.gitignore +0 -0
  125. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/agents/opencode/agents/work.md +0 -0
  126. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/agents/opencode/routing.jsonc +0 -0
  127. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/approved_work.py +0 -0
  128. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/auto_loop.py +0 -0
  129. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/block_log.py +0 -0
  130. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/board_bool_guard.py +0 -0
  131. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/board_schema.py +0 -0
  132. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/board_service.py +0 -0
  133. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/board_wire.py +0 -0
  134. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/brain.py +0 -0
  135. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/branch_model.py +0 -0
  136. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/bug_intake.py +0 -0
  137. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/cargo_cache.py +0 -0
  138. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/ci_fix.py +0 -0
  139. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/ci_github.py +0 -0
  140. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/ci_gitlab.py +0 -0
  141. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/ci_store.py +0 -0
  142. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/claim.py +0 -0
  143. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/cli.py +0 -0
  144. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/__init__.py +0 -0
  145. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/agent_ops.py +0 -0
  146. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/audit.py +0 -0
  147. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/drive.py +0 -0
  148. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/gate_a.py +0 -0
  149. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/gates.py +0 -0
  150. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/issues.py +0 -0
  151. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/lifecycle.py +0 -0
  152. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/milestone.py +0 -0
  153. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/plan_followup.py +0 -0
  154. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/plans.py +0 -0
  155. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/report.py +0 -0
  156. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/review.py +0 -0
  157. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/scorecard.py +0 -0
  158. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/setup.py +0 -0
  159. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/status.py +0 -0
  160. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/terminal.py +0 -0
  161. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/tui.py +0 -0
  162. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/comments.py +0 -0
  163. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/config.py +0 -0
  164. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/config_reload.py +0 -0
  165. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/confirm_test.py +0 -0
  166. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/conflict_fix.py +0 -0
  167. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/dashboard/__init__.py +0 -0
  168. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/dashboard/fixture.py +0 -0
  169. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/dashboard/index.html +0 -0
  170. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/dashboard/server.py +0 -0
  171. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/dashboard/terminal.py +0 -0
  172. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/dead_end.py +0 -0
  173. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/README.md +0 -0
  174. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-agent.service +0 -0
  175. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-db-backup.service +0 -0
  176. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-db-backup.sh +0 -0
  177. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-db-backup.timer +0 -0
  178. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-drive-queue.service +0 -0
  179. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-drive-queue.timer +0 -0
  180. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-failure-notify.service +0 -0
  181. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-fleet-watchdog.service +0 -0
  182. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-fleet-watchdog.timer +0 -0
  183. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-notify.service +0 -0
  184. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-notify.timer +0 -0
  185. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-release-propagate.service +0 -0
  186. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-release-propagate.timer +0 -0
  187. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-release-window.service +0 -0
  188. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-release-window.timer +0 -0
  189. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-serve.service +0 -0
  190. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-web-dist-build.service +0 -0
  191. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-web-dist-build.timer +0 -0
  192. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-web.service +0 -0
  193. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy_manifest.py +0 -0
  194. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy_units.py +0 -0
  195. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deps.py +0 -0
  196. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/diagnose.py +0 -0
  197. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/dispatch.py +0 -0
  198. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/dist_name.py +0 -0
  199. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/events.py +0 -0
  200. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/failure_class.py +0 -0
  201. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/filelock.py +0 -0
  202. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/fleet_config_health.py +0 -0
  203. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/freshness.py +0 -0
  204. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/gate_a.py +0 -0
  205. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/gate_b.py +0 -0
  206. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/gate_snapshot.py +0 -0
  207. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/goal.py +0 -0
  208. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/graph_health.py +0 -0
  209. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/__init__.py +0 -0
  210. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/aggregate.py +0 -0
  211. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/__init__.py +0 -0
  212. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/agent_install.py +0 -0
  213. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/cargo_targets.py +0 -0
  214. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/claude_binary.py +0 -0
  215. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/coord_web_ci_pin.py +0 -0
  216. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/deploy_lane_facts.py +0 -0
  217. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/disk.py +0 -0
  218. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/fleet_board.py +0 -0
  219. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/fleet_deploy_lanes.py +0 -0
  220. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/fleet_phantom.py +0 -0
  221. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/fleet_unit_drift.py +0 -0
  222. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/graph.py +0 -0
  223. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/graphify_cli.py +0 -0
  224. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/index_lock.py +0 -0
  225. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/plan_usage.py +0 -0
  226. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/release_cordon.py +0 -0
  227. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/repo_state.py +0 -0
  228. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/spawned_coord.py +0 -0
  229. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/stalled_pipeline.py +0 -0
  230. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/timer_active.py +0 -0
  231. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/toolchain.py +0 -0
  232. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/unit_drift.py +0 -0
  233. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/unit_enablement.py +0 -0
  234. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/worktrees.py +0 -0
  235. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/cli.py +0 -0
  236. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/context.py +0 -0
  237. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/fleet_snapshot.py +0 -0
  238. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/models.py +0 -0
  239. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/pypi.py +0 -0
  240. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/registry.py +0 -0
  241. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/render.py +0 -0
  242. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/units.py +0 -0
  243. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/hooks.py +0 -0
  244. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/liveness_auditor.py +0 -0
  245. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/machine_pause.py +0 -0
  246. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/milestone_chat.py +0 -0
  247. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/milestone_dispatch.py +0 -0
  248. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/milestone_gate.py +0 -0
  249. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/milestone_order.py +0 -0
  250. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/mock_author.py +0 -0
  251. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/models.py +0 -0
  252. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/network.py +0 -0
  253. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/new_issue_chat.py +0 -0
  254. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/notifier/__init__.py +0 -0
  255. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/notifier/baseline.py +0 -0
  256. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/notifier/cli.py +0 -0
  257. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/notifier/collect.py +0 -0
  258. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/notifier/digest.py +0 -0
  259. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/notifier/models.py +0 -0
  260. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/notifier/predicate.py +0 -0
  261. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/notifier/service.py +0 -0
  262. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/notifier/store.py +0 -0
  263. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/notifier/transport.py +0 -0
  264. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/openapi.py +0 -0
  265. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/overlap_fence.py +0 -0
  266. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/overlap_predict.py +0 -0
  267. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/parentage.py +0 -0
  268. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/parentage_github.py +0 -0
  269. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/pipeline.py +0 -0
  270. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/plan_parser.py +0 -0
  271. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/plans.py +0 -0
  272. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/portal_bridge.py +0 -0
  273. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/pr_body_lint.py +0 -0
  274. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/prereqs.py +0 -0
  275. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/progress.py +0 -0
  276. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/providers/__init__.py +0 -0
  277. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/providers/base.py +0 -0
  278. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/providers/claude.py +0 -0
  279. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/providers/claude_pty.py +0 -0
  280. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/providers/opencode.py +0 -0
  281. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/queue_diagnose.py +0 -0
  282. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/reconcile.py +0 -0
  283. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/reconcile_tick.py +0 -0
  284. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/refine_chat.py +0 -0
  285. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/release_verify.py +0 -0
  286. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/release_window.py +0 -0
  287. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/revalidate.py +0 -0
  288. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/review.py +0 -0
  289. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/scorecard.py +0 -0
  290. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/self_health.py +0 -0
  291. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/skills/coord-dispatch-verbs/SKILL.md +0 -0
  292. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/skills/drive-queue-preflight/SKILL.md +0 -0
  293. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/skills/fleet-restart-safety/SKILL.md +0 -0
  294. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/skills/merge-stuck-triage/SKILL.md +0 -0
  295. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/skills/pipeline-limbo-triage/SKILL.md +0 -0
  296. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/skills/portal-followup/SKILL.md +0 -0
  297. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/skills/review-verdict-recovery/SKILL.md +0 -0
  298. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/skills/tui-quadraui-workflow/SKILL.md +0 -0
  299. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/skills/update-issue/SKILL.md +0 -0
  300. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/smoke.py +0 -0
  301. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/spend_ceiling.py +0 -0
  302. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/split_work.py +0 -0
  303. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/stage_projection.py +0 -0
  304. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/test_author.py +0 -0
  305. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/test_report.py +0 -0
  306. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/tui_release.py +0 -0
  307. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/usage.py +0 -0
  308. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/usage_limits.py +0 -0
  309. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/usage_rollup.py +0 -0
  310. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coordinator.example.yml +0 -0
  311. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-agent.service +0 -0
  312. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-db-backup.service +0 -0
  313. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-db-backup.sh +0 -0
  314. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-db-backup.timer +0 -0
  315. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-drive-queue.service +0 -0
  316. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-drive-queue.timer +0 -0
  317. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-failure-notify.service +0 -0
  318. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-failure-notify.sh +0 -0
  319. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-fleet-watchdog.service +0 -0
  320. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-fleet-watchdog.timer +0 -0
  321. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-notify.service +0 -0
  322. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-notify.timer +0 -0
  323. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-release-propagate.service +0 -0
  324. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-release-propagate.timer +0 -0
  325. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-release-window.service +0 -0
  326. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-release-window.timer +0 -0
  327. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-serve.service +0 -0
  328. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-web-dist-build.service +0 -0
  329. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-web-dist-build.sh +0 -0
  330. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-web-dist-build.timer +0 -0
  331. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-web-rollback.sh +0 -0
  332. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-web.service +0 -0
  333. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/node-shim.sh +0 -0
  334. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/ADR_COORD_WEB_ACCEPTANCE_SUITE.md +0 -0
  335. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/ADR_COORD_WEB_CI.md +0 -0
  336. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/ADR_COORD_WEB_DIST.md +0 -0
  337. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/AGENT_OPERATIONS.md +0 -0
  338. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/ARCHITECTURE.md +0 -0
  339. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/ARCH_SECURITY_GATES.md +0 -0
  340. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/COCKPIT.md +0 -0
  341. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/CONTROL_CENTER.md +0 -0
  342. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/COST_DISCIPLINE.md +0 -0
  343. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/CROSS_PLATFORM.md +0 -0
  344. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/CUSTOMER_FACING_APPS.md +0 -0
  345. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/CUSTOMER_PORTAL.md +0 -0
  346. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/DRIVE_QUEUE.md +0 -0
  347. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/EPHEMERAL_WORKERS.md +0 -0
  348. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/FORGE_MIGRATION.md +0 -0
  349. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/GRAPHIFY_SETUP.md +0 -0
  350. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/ISSUE_GUIDANCE.md +0 -0
  351. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/MAC_MINI.md +0 -0
  352. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
  353. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/NOTIFIER.md +0 -0
  354. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/OPENCODE_VERIFICATION.md +0 -0
  355. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/OPERATING_GOTCHAS.md +0 -0
  356. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/ORACLE_LOOP.md +0 -0
  357. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/PHONE_WEBAPP.md +0 -0
  358. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/PIPELINE_V2.md +0 -0
  359. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/PLATFORM_EVOLUTION.md +0 -0
  360. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/SECOND_BACKEND.md +0 -0
  361. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/STORE_SERVICE.md +0 -0
  362. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/TEST_FIRST_BUG_LANE.md +0 -0
  363. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/WEB_CONTROL_CENTER.md +0 -0
  364. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/WSL_WINDOWS_WORKER.md +0 -0
  365. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/mocks/web/README.md +0 -0
  366. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/mocks/web/_tokens.css +0 -0
  367. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/mocks/web/issue-detail.html +0 -0
  368. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/mocks/web/pipeline-narrow.html +0 -0
  369. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/mocks/web/pipeline-wide.html +0 -0
  370. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/graphify-out/.gitignore +0 -0
  371. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/install-agent.sh +0 -0
  372. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/pyproject.toml +0 -0
  373. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/audit_review_verdict_overrides.py +0 -0
  374. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/azure-workers/bootstrap-shared.sh +0 -0
  375. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/azure-workers/build-worker-image.sh +0 -0
  376. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/azure-workers/coordinator-machine.py +0 -0
  377. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/azure-workers/epic-down.sh +0 -0
  378. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/azure-workers/epic-up.sh +0 -0
  379. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/azure-workers/preflight.sh +0 -0
  380. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/azure-workers/provision-worker.sh +0 -0
  381. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
  382. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/azure-workers/tailnet-acl.hujson +0 -0
  383. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/azure-workers/verify-github-token.sh +0 -0
  384. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/check_gh_argv_containment.py +0 -0
  385. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/codegen.py +0 -0
  386. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/coord-test-runner.sh +0 -0
  387. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/coord-venv-rollback.sh +0 -0
  388. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/drive-batch.sh +0 -0
  389. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/gen_board_fixture.py +0 -0
  390. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/gen_mock_index.py +0 -0
  391. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/next_release_tag.py +0 -0
  392. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/run_tests_in_populated_home.sh +0 -0
  393. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/run_tests_without_gh.sh +0 -0
  394. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/smoke_437_interactive.py +0 -0
  395. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/verify_878_review_capture.py +0 -0
  396. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/verify_release_published.py +0 -0
  397. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/verify_release_wheel.py +0 -0
  398. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/setup.cfg +0 -0
  399. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/SMOKE_SET.md +0 -0
  400. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/__init__.py +0 -0
  401. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-33/audit_1039.rs +0 -0
  402. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-33/contract.md +0 -0
  403. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-33/manifest.yml +0 -0
  404. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-33/mocks/audit-panel-detail.screen +0 -0
  405. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-33/mocks/audit-panel-empty.screen +0 -0
  406. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-33/mocks/audit-panel-filters.screen +0 -0
  407. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-33/mocks/audit-panel-populated.screen +0 -0
  408. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-37/conftest.py +0 -0
  409. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-37/contract.md +0 -0
  410. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-37/manifest.yml +0 -0
  411. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
  412. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
  413. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-38/contract.md +0 -0
  414. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-38/manifest.yml +0 -0
  415. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-38/mocks/plans-base.screen +0 -0
  416. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-38/mocks/plans-detail-pane.screen +0 -0
  417. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-38/mocks/plans-help-overlay.screen +0 -0
  418. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-38/mocks/plans-palette.screen +0 -0
  419. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-38/mocks/plans-rightclick-epic.screen +0 -0
  420. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-38/mocks/plans-rightclick-header.screen +0 -0
  421. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-38/mocks/plans-rightclick-stub.screen +0 -0
  422. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-38/plans_detail_1122.rs +0 -0
  423. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-38/plans_help_1124.rs +0 -0
  424. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-38/plans_rightclick_1123.rs +0 -0
  425. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-51/contract.md +0 -0
  426. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
  427. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
  428. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-51/manifest.yml +0 -0
  429. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
  430. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-51/tsconfig.json +0 -0
  431. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-65/board_split_2288.rs +0 -0
  432. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-65/board_tabs_2282.rs +0 -0
  433. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-65/board_tabs_close_2283.rs +0 -0
  434. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-65/contract.md +0 -0
  435. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-65/detail_substate_2285.rs +0 -0
  436. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-65/manifest.yml +0 -0
  437. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-65/mocks/board-baseline-no-tabs.screen +0 -0
  438. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-65/mocks/board-pinned-3-tabs.screen +0 -0
  439. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-65/mocks/board-preview-tab.screen +0 -0
  440. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-65/mocks/board-split-side-by-side.screen +0 -0
  441. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-65/mocks/board-tab-context-menu.screen +0 -0
  442. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-65/mocks/board-tabs-help-overlay.screen +0 -0
  443. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-65/mocks/board-tabs-overflow.screen +0 -0
  444. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-65/mocks/pipeline-tabs-independent.screen +0 -0
  445. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-65/pipeline_tabs_2284.rs +0 -0
  446. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-65/tabs_discoverability_2287.rs +0 -0
  447. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-65/tabs_persistence_2286.rs +0 -0
  448. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-67/approved_items_2532.rs +0 -0
  449. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-67/contract.md +0 -0
  450. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-67/manifest.d/2533.yml +0 -0
  451. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-67/manifest.yml +0 -0
  452. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-67/mocks/approved-items-chat-opened.screen +0 -0
  453. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-67/mocks/approved-items-context-menu.screen +0 -0
  454. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-67/mocks/approved-items-detail.screen +0 -0
  455. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-67/mocks/approved-items-empty.screen +0 -0
  456. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-67/mocks/approved-items-populated.screen +0 -0
  457. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-67/pull_decomposition_2533.rs +0 -0
  458. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
  459. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/board-pipeline-basic.json +0 -0
  460. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
  461. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
  462. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
  463. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/opencode_run_sample.jsonl +0 -0
  464. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/playwright/all_pass.json +0 -0
  465. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/playwright/global_setup_crash.json +0 -0
  466. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/playwright/mixed_fail.json +0 -0
  467. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/playwright/retry_then_pass.json +0 -0
  468. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
  469. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/playwright/skip.json +0 -0
  470. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/playwright/truncated.json +0 -0
  471. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
  472. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
  473. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
  474. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
  475. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
  476. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
  477. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
  478. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
  479. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_acceptance.py +0 -0
  480. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_api_error.py +0 -0
  481. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_branch_base.py +0 -0
  482. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_config_free_1712.py +0 -0
  483. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_deploy_units_endpoint.py +0 -0
  484. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_dirty_worktree.py +0 -0
  485. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_drive_queue_reconcile_2373.py +0 -0
  486. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_graph_self_heal.py +0 -0
  487. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_health_h3.py +0 -0
  488. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_idle_restart.py +0 -0
  489. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_push_failure.py +0 -0
  490. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_repos_and_pull.py +0 -0
  491. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_restart_services_endpoint.py +0 -0
  492. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_skills_self_heal.py +0 -0
  493. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_startup_diagnostics.py +0 -0
  494. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_update.py +0 -0
  495. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_update_bluegreen.py +0 -0
  496. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_usage_limit.py +0 -0
  497. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_ambient_home_isolation.py +0 -0
  498. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_approve_reject_plan.py +0 -0
  499. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_approve_usage_gate.py +0 -0
  500. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_approved_work_2532.py +0 -0
  501. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_assignment_already_recorded_daemon.py +0 -0
  502. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_audit_outcome.py +0 -0
  503. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_audit_query.py +0 -0
  504. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_auto_loop.py +0 -0
  505. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_auto_release_publish_2035.py +0 -0
  506. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_base_checkout_restore.py +0 -0
  507. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_block_log.py +0 -0
  508. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_board_cap_762.py +0 -0
  509. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_board_fixture.py +0 -0
  510. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_board_read_path.py +0 -0
  511. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_board_schema.py +0 -0
  512. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_board_service.py +0 -0
  513. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_board_state.py +0 -0
  514. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_board_wire.py +0 -0
  515. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_brain.py +0 -0
  516. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_branch_model.py +0 -0
  517. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_bug_intake.py +0 -0
  518. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_build_worker_image_env_update.py +0 -0
  519. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_check_gh_argv_containment.py +0 -0
  520. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_ci_acceptance_gate_1950.py +0 -0
  521. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_ci_fix.py +0 -0
  522. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_ci_gitlab.py +0 -0
  523. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_ci_parity_2091.py +0 -0
  524. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_ci_store.py +0 -0
  525. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_claim.py +0 -0
  526. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_assign.py +0 -0
  527. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
  528. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_assign_interactive_remote.py +0 -0
  529. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_assign_provider.py +0 -0
  530. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_assign_repo_drift_2219.py +0 -0
  531. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_audit.py +0 -0
  532. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_chat_continue.py +0 -0
  533. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_decide.py +0 -0
  534. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_diagnose_config_provenance.py +0 -0
  535. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_diagnose_forge_availability.py +0 -0
  536. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_diagnose_graph.py +0 -0
  537. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_diagnose_self.py +0 -0
  538. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_doctor.py +0 -0
  539. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_doctor_config_free_1801.py +0 -0
  540. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
  541. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_drive.py +0 -0
  542. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_drive_queue.py +0 -0
  543. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_escalate.py +0 -0
  544. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_fix_headless_review.py +0 -0
  545. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_gate_a.py +0 -0
  546. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_install_drift.py +0 -0
  547. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_install_skills.py +0 -0
  548. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_issue_comment.py +0 -0
  549. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_issue_create_label.py +0 -0
  550. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_issue_reopen.py +0 -0
  551. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_issue_view_list.py +0 -0
  552. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_merge.py +0 -0
  553. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_milestone_assign.py +0 -0
  554. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_milestone_capture.py +0 -0
  555. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_milestone_chat_add_child.py +0 -0
  556. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_milestone_dispatch.py +0 -0
  557. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_milestone_gate_b.py +0 -0
  558. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_milestone_gate_c.py +0 -0
  559. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_milestone_order.py +0 -0
  560. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
  561. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_milestone_ship.py +0 -0
  562. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_network.py +0 -0
  563. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_new_issue_chat.py +0 -0
  564. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_plans.py +0 -0
  565. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_pull_artifact.py +0 -0
  566. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_queue.py +0 -0
  567. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_reattach_sessions.py +0 -0
  568. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_refine_board.py +0 -0
  569. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_release_preflight.py +0 -0
  570. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_release_propagate.py +0 -0
  571. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_release_window.py +0 -0
  572. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_repo_2220.py +0 -0
  573. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_review_test_author_tracking_epic_2639.py +0 -0
  574. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_scorecard.py +0 -0
  575. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_set_review_findings.py +0 -0
  576. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_status_advisory_terminal.py +0 -0
  577. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_status_contested_tag.py +0 -0
  578. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_status_merge_queue.py +0 -0
  579. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_status_provider.py +0 -0
  580. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_status_review_finalizing.py +0 -0
  581. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_status_test_failed_tag.py +0 -0
  582. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_status_usage_limit.py +0 -0
  583. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_sync_comments_873.py +0 -0
  584. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_test_plan.py +0 -0
  585. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_track.py +0 -0
  586. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_tui_update.py +0 -0
  587. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_wait.py +0 -0
  588. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_client_base_install.py +0 -0
  589. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_comments.py +0 -0
  590. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_completion_summary.py +0 -0
  591. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_config.py +0 -0
  592. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_config_acceptance.py +0 -0
  593. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_config_audit.py +0 -0
  594. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_config_pricing.py +0 -0
  595. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
  596. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_config_usage_gate.py +0 -0
  597. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_confirm_test.py +0 -0
  598. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_conflict_fix.py +0 -0
  599. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_conflict_fix_semantic.py +0 -0
  600. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_coord_log_daemon_fallback_2547.py +0 -0
  601. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_coord_test.py +0 -0
  602. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_coord_test_runner_baseline.py +0 -0
  603. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_coord_test_runner_routing.py +0 -0
  604. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_coord_test_runner_toolchain.py +0 -0
  605. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_coord_uat.py +0 -0
  606. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_coord_web_sse_restart_live.py +0 -0
  607. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_coordinator_machine.py +0 -0
  608. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cross_platform_imports.py +0 -0
  609. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_dashboard.py +0 -0
  610. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_dashboard_fixture.py +0 -0
  611. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_dashboard_terminal_live.py +0 -0
  612. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_dead_end.py +0 -0
  613. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_deploy_coord_db_backup.py +0 -0
  614. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_deploy_coord_web_dist.py +0 -0
  615. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_deploy_coord_web_rollback.py +0 -0
  616. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_deploy_drive_queue_unit.py +0 -0
  617. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_deploy_failure_notify_unit.py +0 -0
  618. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_deploy_manifest.py +0 -0
  619. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_deploy_notify_unit.py +0 -0
  620. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_deploy_units_lane.py +0 -0
  621. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_deploy_web_unit.py +0 -0
  622. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_deps.py +0 -0
  623. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_diagnose.py +0 -0
  624. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_dispatch.py +0 -0
  625. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_dispatch_target_validation.py +0 -0
  626. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_dist_name.py +0 -0
  627. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_done_housekeeping.py +0 -0
  628. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_drive_queue_blocked_rendering.py +0 -0
  629. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_drive_queue_launch_argv.py +0 -0
  630. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_drive_queue_max_parallel_per_repo_config.py +0 -0
  631. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_drive_queue_roll_pending.py +0 -0
  632. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_drive_queue_self_cordon_escalation.py +0 -0
  633. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_drive_tmux.py +0 -0
  634. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_epic_up_capability_detection.py +0 -0
  635. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
  636. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_epic_up_image_provenance.py +0 -0
  637. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_errors.py +0 -0
  638. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_events.py +0 -0
  639. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_failure_class.py +0 -0
  640. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
  641. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_fix_of_force_override.py +0 -0
  642. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_fleet_config_health.py +0 -0
  643. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_fleet_health_probes.py +0 -0
  644. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_fleet_health_snapshot.py +0 -0
  645. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_forge_availability.py +0 -0
  646. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_freshness.py +0 -0
  647. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_gate_a.py +0 -0
  648. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_gate_b.py +0 -0
  649. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_gate_snapshot_staleness.py +0 -0
  650. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_gates.py +0 -0
  651. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_gather_fleet_tmux_sessions.py +0 -0
  652. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_gen_mock_index.py +0 -0
  653. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_generated_types_fixture.py +0 -0
  654. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_github_ops.py +0 -0
  655. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_goal.py +0 -0
  656. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_graph_health.py +0 -0
  657. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_graph_selfheal_absent_2237.py +0 -0
  658. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_handoff.py +0 -0
  659. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_health_checks.py +0 -0
  660. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_health_cli.py +0 -0
  661. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_health_cli_graph.py +0 -0
  662. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_health_config.py +0 -0
  663. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_health_context.py +0 -0
  664. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_health_coord_web_ci_pin.py +0 -0
  665. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_health_deploy_lane_facts.py +0 -0
  666. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_health_fix.py +0 -0
  667. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_health_incident_regression.py +0 -0
  668. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_health_pypi.py +0 -0
  669. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_health_registry.py +0 -0
  670. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_health_release_cordon_probe.py +0 -0
  671. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_health_timer_active.py +0 -0
  672. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_health_toolchain.py +0 -0
  673. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_health_unit_drift.py +0 -0
  674. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_health_unit_enablement.py +0 -0
  675. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_hooks.py +0 -0
  676. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_init.py +0 -0
  677. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_integration.py +0 -0
  678. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_interactive_briefing_echo.py +0 -0
  679. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_interactive_pane_log_2541.py +0 -0
  680. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_interactive_prefill_state.py +0 -0
  681. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_interactive_session_relaunch.py +0 -0
  682. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_interactive_test_verdict_backstop.py +0 -0
  683. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_interactive_token_attribution.py +0 -0
  684. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_interactive_worktree.py +0 -0
  685. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_liveness_auditor.py +0 -0
  686. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_liveness_notify.py +0 -0
  687. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_machine_pause.py +0 -0
  688. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_merge_queue.py +0 -0
  689. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_merge_verify.py +0 -0
  690. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_milestone_chat.py +0 -0
  691. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_milestone_dispatch.py +0 -0
  692. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_milestone_gate.py +0 -0
  693. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_milestone_order.py +0 -0
  694. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_milestone_seam.py +0 -0
  695. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_mock_author.py +0 -0
  696. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_models.py +0 -0
  697. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_models_config_labels.py +0 -0
  698. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_needs_attention.py +0 -0
  699. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_network.py +0 -0
  700. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_new_issue_chat.py +0 -0
  701. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_next_release_tag.py +0 -0
  702. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_node_shim.py +0 -0
  703. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_notifier_baseline.py +0 -0
  704. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_notifier_cli.py +0 -0
  705. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_notifier_collect.py +0 -0
  706. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_notifier_config.py +0 -0
  707. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_notifier_drive_seam.py +0 -0
  708. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_notifier_isolation.py +0 -0
  709. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_notifier_predicate.py +0 -0
  710. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_notifier_quiet_hours.py +0 -0
  711. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_notifier_service.py +0 -0
  712. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_notify.py +0 -0
  713. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_notify_drain.py +0 -0
  714. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_openapi.py +0 -0
  715. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_operational_defaults.py +0 -0
  716. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_overlap_fence.py +0 -0
  717. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_overlap_predict.py +0 -0
  718. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_packaged_deploy_units.py +0 -0
  719. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_parentage.py +0 -0
  720. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_paste_landed.py +0 -0
  721. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_phantom_heal_venv_independence_2570.py +0 -0
  722. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_pipeline.py +0 -0
  723. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_plan_followup_approve_plan_command.py +0 -0
  724. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_plan_followup_pr_command.py +0 -0
  725. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_plan_followup_review_command.py +0 -0
  726. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_plan_parser.py +0 -0
  727. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_portal_bridge.py +0 -0
  728. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_portal_config.py +0 -0
  729. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_pr_body_lint.py +0 -0
  730. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_prereqs.py +0 -0
  731. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_production_db_guard.py +0 -0
  732. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_provider_seam.py +0 -0
  733. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_providers.py +0 -0
  734. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_providers_config_labels.py +0 -0
  735. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_providers_pty.py +0 -0
  736. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_quiet_hours.py +0 -0
  737. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_quiet_hours_store_2146.py +0 -0
  738. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_reap_merged_sessions.py +0 -0
  739. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_reap_stale_interactive_tick.py +0 -0
  740. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_reconcile.py +0 -0
  741. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_reconcile_branch.py +0 -0
  742. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_reconcile_completions.py +0 -0
  743. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_reconcile_late_agent_reports_2547.py +0 -0
  744. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_reconcile_merges.py +0 -0
  745. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_reconcile_no_agent_record.py +0 -0
  746. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_reconcile_tick.py +0 -0
  747. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_reconcile_usage_limit_done.py +0 -0
  748. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_refine_chat.py +0 -0
  749. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_release_cordon_2101.py +0 -0
  750. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
  751. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_release_cordon_stuck_2490.py +0 -0
  752. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_release_propagate.py +0 -0
  753. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_release_propagate_threshold.py +0 -0
  754. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_release_roll_window_handoff.py +0 -0
  755. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_release_unified_1242.py +0 -0
  756. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_release_verify.py +0 -0
  757. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_release_window.py +0 -0
  758. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_remote_auto_prune.py +0 -0
  759. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_remote_interactive_reaper.py +0 -0
  760. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_repo_graph_fleet_2237.py +0 -0
  761. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_report_result_push.py +0 -0
  762. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_reports.py +0 -0
  763. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_retry.py +0 -0
  764. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_retry_advisory_1606.py +0 -0
  765. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_retry_type_1636.py +0 -0
  766. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_revalidate.py +0 -0
  767. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_review.py +0 -0
  768. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_review_end_review_without_verdict.py +0 -0
  769. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_review_parse_failure_diagnostic.py +0 -0
  770. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_review_reaffirm.py +0 -0
  771. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_review_state.py +0 -0
  772. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_review_verdict_backstop.py +0 -0
  773. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_review_verdict_override_audit.py +0 -0
  774. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_review_verdict_relay.py +0 -0
  775. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_review_zero_commits.py +0 -0
  776. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_scoped_review_wiring.py +0 -0
  777. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_scorecard.py +0 -0
  778. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_self_health.py +0 -0
  779. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_serve_app_board_trim.py +0 -0
  780. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_session.py +0 -0
  781. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_slice_issue_attribution.py +0 -0
  782. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_smoke.py +0 -0
  783. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_smoke_live_checkout_restore.py +0 -0
  784. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_smoke_workflow.py +0 -0
  785. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_spend_ceiling.py +0 -0
  786. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_spend_ceiling_coordinator.py +0 -0
  787. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_split.py +0 -0
  788. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_split_work.py +0 -0
  789. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_stage_projection.py +0 -0
  790. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_stalled_pipeline.py +0 -0
  791. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_state_review_findings_daemon.py +0 -0
  792. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_status_fleet_footer.py +0 -0
  793. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_stop_1567.py +0 -0
  794. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_store_contract.py +0 -0
  795. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_stuck.py +0 -0
  796. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_terminal_command.py +0 -0
  797. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_test_author.py +0 -0
  798. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_test_chat.py +0 -0
  799. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_test_orchestrator.py +0 -0
  800. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_test_report.py +0 -0
  801. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_test_verdict_parsing.py +0 -0
  802. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_test_verdict_transcript_floor.py +0 -0
  803. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_text_io_encoding_audit.py +0 -0
  804. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_thin_client_board_audit.py +0 -0
  805. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_thin_client_config_load_1080.py +0 -0
  806. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_thin_client_daemon_routing_906.py +0 -0
  807. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_tmux_host.py +0 -0
  808. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_tmux_session.py +0 -0
  809. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_transcript_floor.py +0 -0
  810. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_usage.py +0 -0
  811. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_usage_limits.py +0 -0
  812. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_usage_rollup.py +0 -0
  813. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_venv_live_install_2121.py +0 -0
  814. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_version_single_source.py +0 -0
  815. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_watch.py +0 -0
  816. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
  817. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_worker_env_venv_isolation.py +0 -0
  818. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_worker_image_pin_sync.py +0 -0
  819. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_worker_safety.py +0 -0
  820. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_worker_test_scoping.py +0 -0
  821. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_worktree_rmtree_chokepoint.py +0 -0
  822. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/Cargo.lock +0 -0
  823. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/Cargo.toml +0 -0
  824. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/cargo-config-local-quadraui.toml.example +0 -0
  825. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/approved.rs +0 -0
  826. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/audit.rs +0 -0
  827. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/chat.rs +0 -0
  828. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/data.rs +0 -0
  829. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/dialogs.rs +0 -0
  830. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/doc_tabs.rs +0 -0
  831. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/drive.rs +0 -0
  832. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/drive_queue.rs +0 -0
  833. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/escalation.rs +0 -0
  834. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/events.rs +0 -0
  835. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/fixtures.rs +0 -0
  836. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/fleet_health.rs +0 -0
  837. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/fleet_sessions.rs +0 -0
  838. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/fleet_terminals.rs +0 -0
  839. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/format.rs +0 -0
  840. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/milestone_dag.rs +0 -0
  841. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/mod.rs +0 -0
  842. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/msv.rs +0 -0
  843. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/pipeline.rs +0 -0
  844. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/plans.rs +0 -0
  845. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/render.rs +0 -0
  846. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/reports.rs +0 -0
  847. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/sessions.rs +0 -0
  848. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/settings_ui.rs +0 -0
  849. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/sidebar.rs +0 -0
  850. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/terminal.rs +0 -0
  851. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/tests.rs +0 -0
  852. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/types.rs +0 -0
  853. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/workspace.rs +0 -0
  854. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/bin/gtk.rs +0 -0
  855. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/commands.rs +0 -0
  856. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/lib.rs +0 -0
  857. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/main.rs +0 -0
  858. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/settings.rs +0 -0
  859. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/tests/acceptance.rs +0 -0
  860. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/tests/cli.rs +0 -0
  861. {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/tests/fixtures/board_sample.json +0 -0
@@ -223,10 +223,9 @@ versus keep in the coordinator session) are in
223
223
  bypassed by the one class of session most likely to reach for `gh` out of habit. Reads are
224
224
  covered too — `coord issue list` and `coord issue view` shipped in #2484, so a plain issue
225
225
  listing/search or an issue-plus-comments lookup has no excuse to reach for `gh`. Where no
226
- `coord` subcommand covers what's needed — still a real gap in places as of 2026-08 (e.g. #2643:
227
- `coord issue` can create/edit/label/close but cannot post a plain comment on an issue that stays
228
- open) — falling back to `gh` for that one call is fine, but say so and treat it as a gap to flag
229
- or file, not a silent workaround.
226
+ `coord` subcommand covers what's needed — the seam is wide but not total, so check
227
+ `coord <group> --help` before concluding either way — falling back to `gh` for that one call is
228
+ fine, but say so and treat it as a gap to flag or file, not a silent workaround.
230
229
 
231
230
  ## Testing — black-box coverage is the acceptance bar
232
231
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-coordinator
3
- Version: 0.5.244
3
+ Version: 0.5.245
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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-coordinator
3
- Version: 0.5.244
3
+ Version: 0.5.245
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
@@ -136,6 +136,7 @@ coord/serve_app.py
136
136
  coord/smoke.py
137
137
  coord/spend_ceiling.py
138
138
  coord/split_work.py
139
+ coord/sql.py
139
140
  coord/stage_projection.py
140
141
  coord/state.py
141
142
  coord/test_author.py
@@ -472,6 +473,7 @@ tests/test_cli_track.py
472
473
  tests/test_cli_tui_update.py
473
474
  tests/test_cli_wait.py
474
475
  tests/test_client_base_install.py
476
+ tests/test_commands_common.py
475
477
  tests/test_comments.py
476
478
  tests/test_completion_summary.py
477
479
  tests/test_config.py
@@ -662,6 +664,7 @@ tests/test_release_verify.py
662
664
  tests/test_release_window.py
663
665
  tests/test_remote_auto_prune.py
664
666
  tests/test_remote_interactive_reaper.py
667
+ tests/test_repo_add.py
665
668
  tests/test_repo_edit_2220.py
666
669
  tests/test_repo_graph_fleet_2237.py
667
670
  tests/test_repo_onboard_2220.py
@@ -694,6 +697,7 @@ tests/test_spend_ceiling.py
694
697
  tests/test_spend_ceiling_coordinator.py
695
698
  tests/test_split.py
696
699
  tests/test_split_work.py
700
+ tests/test_sql_dialect.py
697
701
  tests/test_stage_projection.py
698
702
  tests/test_stalled_pipeline.py
699
703
  tests/test_state.py
@@ -243,6 +243,7 @@
243
243
  "coord/smoke.py",
244
244
  "coord/spend_ceiling.py",
245
245
  "coord/split_work.py",
246
+ "coord/sql.py",
246
247
  "coord/stage_projection.py",
247
248
  "coord/state.py",
248
249
  "coord/test_author.py",
@@ -544,6 +545,7 @@
544
545
  "tests/test_cli_tui_update.py",
545
546
  "tests/test_cli_wait.py",
546
547
  "tests/test_client_base_install.py",
548
+ "tests/test_commands_common.py",
547
549
  "tests/test_comments.py",
548
550
  "tests/test_completion_summary.py",
549
551
  "tests/test_config.py",
@@ -734,6 +736,7 @@
734
736
  "tests/test_release_window.py",
735
737
  "tests/test_remote_auto_prune.py",
736
738
  "tests/test_remote_interactive_reaper.py",
739
+ "tests/test_repo_add.py",
737
740
  "tests/test_repo_edit_2220.py",
738
741
  "tests/test_repo_graph_fleet_2237.py",
739
742
  "tests/test_repo_onboard_2220.py",
@@ -766,6 +769,7 @@
766
769
  "tests/test_spend_ceiling_coordinator.py",
767
770
  "tests/test_split.py",
768
771
  "tests/test_split_work.py",
772
+ "tests/test_sql_dialect.py",
769
773
  "tests/test_stage_projection.py",
770
774
  "tests/test_stalled_pipeline.py",
771
775
  "tests/test_state.py",
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "0.5.245",
3
+ "distance": 0,
4
+ "node": "g8f3ba2ceb3a5edd25c795a8fe295601edef37db5",
5
+ "dirty": false,
6
+ "branch": "HEAD",
7
+ "node_date": "2026-08-26"
8
+ }
@@ -49,6 +49,20 @@ from pathlib import Path
49
49
  # adapter landing, but running it must fail loudly rather than silently no-op.
50
50
  SUPPORTED_KINDS = ("tui-tuidriver", "cli-pytest", "web-playwright")
51
51
 
52
+ # #2748 (IL-2): driver kinds whose `run` produces a real pass/fail verdict
53
+ # but NOT yet a deterministic one, because an input they depend on hasn't
54
+ # shipped. `web-playwright` is the one case today — the driver itself
55
+ # landed (#1539), but the seeded-board fixture server it needs to run
56
+ # against a fixed, known state (#1538) has not, so a run against a live
57
+ # fleet observes whatever that fleet happens to be doing rather than a
58
+ # pinned fixture (CLAUDE.md's web-playwright section: "a smoke net, not a
59
+ # deterministic oracle"). `coord.repo_onboard`'s oracle-readiness layer
60
+ # reads this to report the gap explicitly instead of a driver-present repo
61
+ # silently reading as fully oracle-ready. Kept here (not in coord.config)
62
+ # because it is exactly the kind of "which medium behaves how" fact this
63
+ # module already owns — see the module docstring.
64
+ FIXTURE_SERVER_DEPENDENT_KINDS = frozenset({"web-playwright"})
65
+
52
66
  # libtest's ``--format json`` per-line test-event stream (`cargo test -- -Z
53
67
  # unstable-options --format json`) event -> our normalized status.
54
68
  _LIBTEST_EVENT_STATUS = {"ok": "pass", "failed": "fail", "ignored": "skip"}
@@ -3945,25 +3945,44 @@ MILESTONE_CHAT_DENY_COMMANDS: list[str] = [
3945
3945
 
3946
3946
  DECOMPOSITION_CHAT_SYSTEM_PROMPT = """\
3947
3947
  You are a decomposition steward for a customer's APPROVED portal submission \
3948
- that an operator just pulled into this session from the TUI's "Approved \
3949
- work items" panel (#2533, ms-67 contract §4). Unlike `milestone-chat` above \
3950
- (which proposes and waits for confirmation before writing anything), this \
3951
- session's WHOLE JOB is to actually decompose the submission into real \
3952
- coordinator work — there is no separate confirm-then-write step here \
3953
- because pulling the row into this session already IS the operator's \
3954
- confirmation.
3955
-
3956
- The first user message carries: the submission's OUTCOME, AUDIENCE, DONE \
3957
- DEFINITION, and CONSTRAINTS (the four fields the customer described); its \
3958
- mapped repo(s); and `coordinator.yml` topology context for those repo(s) \
3959
- (depends_on, which machines claim each repo).
3960
-
3961
- Your job, in order:
3948
+ that an operator just pulled into this session (#2533, ms-67 contract §4; \
3949
+ #2750, IL-4 — "the intake session"). This is ONE ITERATION of a possibly \
3950
+ multi-day, multi-session intake — a client round-trip takes days, so no \
3951
+ single session can sit and wait for one. Every iteration is disposable; the \
3952
+ `coord portal` ledger (Q&A, decisions, narrative) is what's durable, and it \
3953
+ is what makes it safe for a LATER iteration on a DIFFERENT machine to pick \
3954
+ up exactly where this one left off with no memory of this conversation.
3955
+
3956
+ The first user message carries, in order: a MODE line (`MODE: FILE` or \
3957
+ `MODE: DISCUSS`) naming which posture this iteration runs in and WHY it was \
3958
+ picked — say so yourself, verbatim, as the first line of your own final \
3959
+ response (a session that silently chose to file instead of asking is \
3960
+ exactly the failure this design exists to prevent); the submission's \
3961
+ OUTCOME, AUDIENCE, DONE DEFINITION, and CONSTRAINTS; its mapped repo(s); \
3962
+ `coordinator.yml` topology context for those repo(s) (depends_on, which \
3963
+ machines claim each repo); and a RUNNING CONTEXT section rendering the \
3964
+ submission's full ledger so far — every question asked and (if answered) \
3965
+ its answer, every decision on record (current and archived, archived ones \
3966
+ carrying WHY they were ruled out), and the current narrative. Read \
3967
+ RUNNING CONTEXT before doing anything else: never re-ask a question already \
3968
+ answered there, and never re-propose a decision already archived there \
3969
+ without new information that changes the calculus — cite the existing \
3970
+ entry's seq/reason if the operator or a re-briefed fact brings it up again.
3971
+
3972
+ You can always re-fetch the live ledger mid-session with:
3973
+
3974
+ coord portal ledger <submission_id>
3975
+
3976
+ (add `--json` for the raw structured form) — useful in a long-running \
3977
+ `--interactive` conversation where the operator may answer something out of \
3978
+ band while you're mid-thought.
3979
+
3980
+ ── Filing a decomposition (MODE: FILE, or MODE: DISCUSS's "Decompose" exit) ──
3981
+
3962
3982
  1. Decide whether this is ORACLE-LOOP-SHAPED work (docs/ORACLE_LOOP.md) — \
3963
3983
  big or cross-cutting enough to warrant a Gate-A contract + independent \
3964
- test-author, or small enough to skip straight to normal dispatch. Discuss \
3965
- this with the operator if it's not obvious; you don't need to wait for \
3966
- explicit confirmation before filing, but flag your reasoning.
3984
+ test-author, or small enough to skip straight to normal dispatch. Flag your \
3985
+ reasoning even when it's obvious.
3967
3986
  2. Produce one or more GitHub issues describing the work, using:
3968
3987
 
3969
3988
  coord issue create <repo> --title '<title>' --body '<body>'
@@ -3997,31 +4016,116 @@ silently. Say so explicitly in your final summary to the operator (e.g. \
3997
4016
  "this submission has no recorded portal link — coord portal link only \
3998
4017
  covers milestones, and #2533's own dispatcher found no equivalent for a \
3999
4018
  one-off issue"), so the gap is visible rather than silently lost.
4019
+ 5. Archive the decision trail onto the epic (#2750 — "every iteration must \
4020
+ record its rejections with reasons", surfaced where the next human to read \
4021
+ the epic will actually see it, not just in `coord portal ledger`). When a \
4022
+ milestone/epic was filed in step 2: run `coord portal ledger <submission_id>` \
4023
+ (read-only), take its "## Decisions" and "## Archive (superseded / \
4024
+ rejected)" sections verbatim, and splice them onto the epic's body under a \
4025
+ `## Decisions` heading — read the epic's current body (e.g. `gh issue view \
4026
+ <epic> --json body -q .body`), append the section (or replace a pre-existing \
4027
+ `## Decisions` heading in place — do not duplicate it), and write it back \
4028
+ with `coord issue edit <repo> <epic> --body-file <tmpfile>` (never raw `gh \
4029
+ issue edit`). Skip this step only when the ledger has no decisions at all \
4030
+ (a submission that never went through a MODE: DISCUSS iteration) — say so \
4031
+ rather than writing an empty section.
4032
+
4033
+ ── MODE: DISCUSS — ask / propose / decompose ──
4034
+
4035
+ Your first user message said `MODE: DISCUSS` because the submission is \
4036
+ under-specified or the mapped repo is greenfield (#2750's own mechanical \
4037
+ triggers — missing done-definition/audience, or no commits/no CLAUDE.md on \
4038
+ the mapped repo yet). Filing straight through here means inventing an \
4039
+ architecture or a done-definition on the client's behalf and queuing real \
4040
+ work against the guess. Instead, THIS iteration ends in EXACTLY ONE of \
4041
+ three terminal moves — never zero, never more than one:
4042
+
4043
+ 1. ASK — when what's missing can only come from the CLIENT (not from the \
4044
+ operator, not from repo history, not from a reasonable judgment call you \
4045
+ could make yourself). Prefer ONE well-formed question: the portal's \
4046
+ composer on the client's side pauses on the most recent question only, so \
4047
+ a scattershot list gets a partial answer at best. Then:
4048
+
4049
+ coord portal enqueue-question <submission_id> "<question>"
4050
+ coord portal enqueue-status <submission_id> needs-input
4051
+
4052
+ and STOP — end your final turn summarizing the question and why, and run \
4053
+ nothing else this iteration (no filing, no decisions). IL-3's consumer \
4054
+ wakes the next iteration once the client answers.
4055
+
4056
+ 2. PROPOSE — when you CAN make a reasonable judgment call on the client's \
4057
+ behalf (an architecture/stack/framework choice, a scope cut, anything a \
4058
+ competent operator could just decide) but it deserves OPERATOR sign-off \
4059
+ before it becomes load-bearing — this is OPERATOR-facing, never portal-\
4060
+ facing; the client is never asked to adjudicate a framework choice. Record \
4061
+ your recommendation:
4062
+
4063
+ coord portal decision propose <submission_id> "<decision text>"
4064
+
4065
+ Then, in the SAME iteration, record every alternative you seriously \
4066
+ considered and ruled OUT — with a reason — so a later iteration doesn't \
4067
+ re-litigate it (#2750: "without recorded rejections you re-litigate"):
4068
+
4069
+ coord portal decision propose <submission_id> "<alternative text>"
4070
+ coord portal decision reject <submission_id> <alt_seq> "<why ruled out>"
4071
+
4072
+ If you're REVISING a decision an earlier iteration already proposed or \
4073
+ confirmed (not a same-iteration alternative), use supersede instead of \
4074
+ reject so the earlier text stays on record rather than reading as an \
4075
+ outright mistake:
4076
+
4077
+ coord portal decision supersede <submission_id> <old_seq> <new_seq>
4078
+
4079
+ Then STOP — summarize every proposal and rejection for the operator and \
4080
+ run nothing else. Do NOT confirm your own proposal (`coord portal decision \
4081
+ confirm` is the operator's move, taken outside this session) and do NOT \
4082
+ file or queue anything until a later iteration is briefed with a confirmed \
4083
+ decision. Confirmation is what starts that next iteration.
4084
+
4085
+ 3. DECOMPOSE — when done_definition/audience are captured (directly, or \
4086
+ settled via decisions now CONFIRMED in RUNNING CONTEXT) and every mapped \
4087
+ repo has something to decompose against. Follow "Filing a decomposition" \
4088
+ above in full, including step 5's decision archive.
4089
+
4090
+ If genuinely nothing has changed since the last iteration (re-briefed with \
4091
+ no new answer and no new information), say so explicitly and re-Ask or \
4092
+ re-Propose rather than inventing new work to look productive.
4000
4093
 
4001
4094
  Rules:
4002
4095
  - Do NOT run raw `gh issue create`/`gh issue edit`/`gh pr *`/`gh api -X \
4003
4096
  POST|PATCH|DELETE` or any other mutating `gh` command — the write paths \
4004
- above (`coord issue create`, `coord milestone create/add-child`, `coord \
4005
- drive-queue add`, `coord portal link`) are the only ones you may use.
4097
+ above (`coord issue create`, `coord issue edit --body-file`, `coord \
4098
+ milestone create/add-child`, `coord drive-queue add`, `coord portal link`, \
4099
+ `coord portal enqueue-question`, `coord portal enqueue-status`, `coord \
4100
+ portal decision propose/reject/supersede`) are the only ones you may use. \
4101
+ `gh issue view` and other read-only `gh`/`coord` lookups are fine.
4006
4102
  - Do NOT run `coord assign <machine> <repo> <issue>` or `coord drive \
4007
4103
  --tmux` — always `coord drive-queue add`.
4008
4104
  - Do NOT run `coord approve` or `coord merge` — outside this session's job.
4105
+ - Do NOT run `coord portal decision confirm` — that is the OPERATOR's move, \
4106
+ never this session's own.
4009
4107
  - Do NOT run `git push`, `git commit`, or any command that writes to a repo \
4010
4108
  checkout — this session files issues and queues work, it does not touch code.
4011
- - Keep the operator informed: summarize your decomposition plan before \
4012
- filing, and report back what you filed/queued/linked (and any link gap) \
4109
+ - If an `enqueue-question`/`enqueue-status`/`decision` command refuses with \
4110
+ a thin-client error (this machine isn't the daemon host and isn't routed \
4111
+ yet — #2751), say so explicitly to the operator rather than silently \
4112
+ dropping the Ask/Propose; do not retry it as some other command.
4113
+ - Keep the operator informed: summarize your plan before writing anything, \
4114
+ and report back what you asked/proposed/filed/queued/linked (and any gap) \
4013
4115
  when done.\
4014
4116
  """
4015
4117
 
4016
- # Deny list applied to decomposition-chat workers (#2533). Unlike
4017
- # milestone-chat, this type's WHOLE job is to write (issue create /
4018
- # milestone create+add-child / drive-queue add / portal link), so this list
4019
- # is deliberately narrow — it blocks raw `gh` mutations, repo-write git
4020
- # commands, destructive git ops, and the three unrelated `coord` write
4021
- # commands (approve/merge/assign) explicitly out of scope, while every write
4022
- # path this session actually needs (`coord issue create`, `coord milestone
4023
- # create`/`add-child`, `coord drive-queue add`, `coord portal link`) is
4024
- # allowed by omission.
4118
+ # Deny list applied to decomposition-chat workers (#2533; extended #2750
4119
+ # IL-4 for the ask/propose/decompose intake loop). Unlike milestone-chat,
4120
+ # this type's WHOLE job is to write (issue create / issue edit / milestone
4121
+ # create+add-child / drive-queue add / portal link / enqueue-question /
4122
+ # enqueue-status / decision propose|reject|supersede), so this list is
4123
+ # deliberately narrow — it blocks raw `gh` mutations, repo-write git
4124
+ # commands, destructive git ops, the three unrelated `coord` write commands
4125
+ # (approve/merge/assign) explicitly out of scope, and `coord portal decision
4126
+ # confirm` (the OPERATOR's move, never this session's own — #2750's "Propose"
4127
+ # terminal move must not self-confirm), while every write path this session
4128
+ # actually needs is allowed by omission.
4025
4129
  DECOMPOSITION_CHAT_DENY_COMMANDS: list[str] = [
4026
4130
  "Bash(gh issue edit *)",
4027
4131
  "Bash(gh issue create *)",
@@ -4047,6 +4151,7 @@ DECOMPOSITION_CHAT_DENY_COMMANDS: list[str] = [
4047
4151
  "Bash(coord approve *)",
4048
4152
  "Bash(coord merge *)",
4049
4153
  "Bash(coord assign *)",
4154
+ "Bash(coord portal decision confirm *)",
4050
4155
  ]
4051
4156
 
4052
4157
  MOCK_AUTHOR_SYSTEM_PROMPT = """\
@@ -31,6 +31,7 @@ import threading
31
31
  import time
32
32
  from typing import Any
33
33
 
34
+ from coord import sql
34
35
  from coord.db import get_connection, is_lock_contention_error, retry_on_locked
35
36
 
36
37
  _log = logging.getLogger(__name__)
@@ -138,7 +139,8 @@ def _record_audit_unsafe(
138
139
  conn = get_connection()
139
140
 
140
141
  def _write() -> None:
141
- conn.execute(
142
+ sql.execute(
143
+ conn,
142
144
  """INSERT INTO audit_log (
143
145
  ts, tier, category, event_type, actor,
144
146
  repo, issue, assignment_id, machine, summary, details_json
@@ -282,7 +284,8 @@ def _maybe_trim(conn) -> None:
282
284
  max_rows = _resolve_max_rows()
283
285
  if max_rows <= 0:
284
286
  return
285
- conn.execute(
287
+ sql.execute(
288
+ conn,
286
289
  "DELETE FROM audit_log WHERE id NOT IN "
287
290
  "(SELECT id FROM audit_log ORDER BY id DESC LIMIT ?)",
288
291
  (max_rows,),
@@ -465,7 +468,8 @@ def query_audit_log(
465
468
  where = f"WHERE {' AND '.join(clauses)}" if clauses else ""
466
469
  conn = get_connection()
467
470
  # Fetch one extra row to detect has_more without a second COUNT query.
468
- rows = conn.execute(
471
+ rows = sql.execute(
472
+ conn,
469
473
  f"SELECT {', '.join(_AUDIT_COLUMNS)} FROM audit_log {where} "
470
474
  "ORDER BY ts DESC, id DESC LIMIT ?",
471
475
  (*params, limit + 1),
@@ -576,6 +576,81 @@ def fetch_gate_a_approval(
576
576
  return None
577
577
 
578
578
 
579
+ def fetch_portal_link(
580
+ svc: ServiceConfig,
581
+ repo_name: str,
582
+ *,
583
+ milestone_number: int | None = None,
584
+ issue_number: int | None = None,
585
+ timeout: float = _DEFAULT_TIMEOUT,
586
+ ) -> dict | None:
587
+ """GET one milestone's (or, with ``issue_number``, one issue's) portal
588
+ ``submission_id`` link (#2751). Pass exactly one of ``milestone_number``
589
+ / ``issue_number`` — same contract as :func:`coord.state.get_portal_link`.
590
+
591
+ Fail-soft to ``None`` on any transport/HTTP/decode error, mirroring
592
+ :func:`fetch_gate_a_approval`. "Couldn't ask" collapsing to "not linked"
593
+ matches the CLI's own pre-existing read for a genuinely unlinked
594
+ milestone/issue, so a daemon hiccup degrades to the same message an
595
+ operator would already see rather than a traceback.
596
+ """
597
+ params: dict[str, str | int] = {"repo_name": repo_name}
598
+ if milestone_number is not None:
599
+ params["milestone_number"] = milestone_number
600
+ if issue_number is not None:
601
+ params["issue_number"] = issue_number
602
+ try:
603
+ resp = httpx.get(
604
+ f"{svc.url}/portal-link",
605
+ params=params,
606
+ headers=_headers(svc),
607
+ timeout=timeout,
608
+ )
609
+ resp.raise_for_status()
610
+ data = resp.json()
611
+ except (httpx.HTTPError, ValueError):
612
+ return None
613
+ link = data.get("link") if isinstance(data, dict) else None
614
+ return link if isinstance(link, dict) else None
615
+
616
+
617
+ def fetch_portal_ledger(
618
+ svc: ServiceConfig, submission_id: str, *, timeout: float = _DEFAULT_TIMEOUT
619
+ ) -> dict:
620
+ """GET ``/portal-ledger`` from the daemon *svc* points at — the running-
621
+ context payload :func:`coord.portal_store.render_ledger_payload` builds
622
+ locally, routed through the daemon for a thin client (#2751).
623
+
624
+ Factored out of two independent near-verbatim copies (#2750 fix round):
625
+ `coord.commands.portal._fetch_ledger_payload_remote` (the ``coord
626
+ portal ledger`` CLI render) and `coord.decomposition_chat.
627
+ _fetch_ledger_payload_remote` (the intake session's own briefing
628
+ builder, `fetch_running_context`) agreed on the same GET/params/
629
+ header/timeout/``resp.json()["payload"]`` wire shape but maintained it
630
+ in two places — exactly the split-brain-waiting-to-happen this repo's
631
+ own rule warns about ("if two surfaces answer the same question, they
632
+ must call the same function"). Both already reach into this module for
633
+ other daemon calls, so this is the natural shared home.
634
+
635
+ Deliberately does **not** follow the fail-soft-to-``None`` convention
636
+ most of this module's other ``fetch_*`` helpers use (mirroring
637
+ :func:`fetch_milestone_gate`'s reasoning): a briefing that silently
638
+ rendered as "empty" on a daemon hiccup would be indistinguishable from
639
+ "genuinely nothing on file yet", which is actively misleading rather
640
+ than merely unavailable. Raises ``httpx.HTTPError`` on a transport/HTTP
641
+ failure and ``KeyError``/``ValueError`` on a malformed body; callers
642
+ let the failure surface rather than swallowing it.
643
+ """
644
+ resp = httpx.get(
645
+ f"{svc.url}/portal-ledger",
646
+ params={"submission_id": submission_id},
647
+ headers=_headers(svc),
648
+ timeout=timeout,
649
+ )
650
+ resp.raise_for_status()
651
+ return resp.json()["payload"]
652
+
653
+
579
654
  def fetch_milestone_gate(
580
655
  svc: ServiceConfig,
581
656
  repo_name: str,