code-coordinator 0.5.753__tar.gz → 0.5.754__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 (1005) hide show
  1. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/CLAUDE.md +3 -1
  2. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/PKG-INFO +1 -1
  3. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/code_coordinator.egg-info/PKG-INFO +1 -1
  4. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/code_coordinator.egg-info/scm_version.json +2 -2
  5. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/drive_queue.py +74 -0
  6. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/decomposition_chat.py +40 -6
  7. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/dispatch.py +12 -1
  8. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/drive_queue.py +76 -0
  9. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/notify.py +26 -0
  10. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_drive_queue.py +209 -0
  11. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_decomposition_chat.py +41 -0
  12. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_dispatch.py +26 -4
  13. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_drive_queue.py +81 -0
  14. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_notify.py +34 -0
  15. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/.claude/commands/board.md +0 -0
  16. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/.claude/commands/complete-session.md +0 -0
  17. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/.claude/commands/coordinator.md +0 -0
  18. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/.githooks/_lib.sh +0 -0
  19. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/.githooks/post-checkout +0 -0
  20. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/.githooks/post-commit +0 -0
  21. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/.githooks/post-merge +0 -0
  22. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  23. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/.github/coord-ci-acceptance.yml +0 -0
  24. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/.github/workflows/auto-release.yml +0 -0
  25. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/.github/workflows/publish.yml +0 -0
  26. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/.github/workflows/test.yml +0 -0
  27. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/.gitignore +0 -0
  28. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/GOAL.md +0 -0
  29. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/LICENSE +0 -0
  30. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/MANIFEST.in +0 -0
  31. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/README.md +0 -0
  32. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/code_coordinator.egg-info/SOURCES.txt +0 -0
  33. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/code_coordinator.egg-info/dependency_links.txt +0 -0
  34. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/code_coordinator.egg-info/entry_points.txt +0 -0
  35. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/code_coordinator.egg-info/requires.txt +0 -0
  36. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/code_coordinator.egg-info/scm_file_list.json +0 -0
  37. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/code_coordinator.egg-info/top_level.txt +0 -0
  38. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/__init__.py +0 -0
  39. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/_board_mapping.py +0 -0
  40. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/acceptance.py +0 -0
  41. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/acceptance_drivers.py +0 -0
  42. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/agent.py +0 -0
  43. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/agent_app.py +0 -0
  44. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/agent_update.py +0 -0
  45. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/agents/opencode/.gitignore +0 -0
  46. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/agents/opencode/agents/work.md +0 -0
  47. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/agents/opencode/routing.jsonc +0 -0
  48. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/app_drive.py +0 -0
  49. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/app_drive_daemon.py +0 -0
  50. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/approved_work.py +0 -0
  51. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/audit.py +0 -0
  52. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/auto_loop.py +0 -0
  53. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/backup.py +0 -0
  54. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/block_log.py +0 -0
  55. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/board_doctor.py +0 -0
  56. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/board_doctor_followthrough.py +0 -0
  57. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/board_doctor_permissions.py +0 -0
  58. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/board_doctor_policy.py +0 -0
  59. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/board_schema.py +0 -0
  60. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/board_service.py +0 -0
  61. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/board_wire.py +0 -0
  62. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/brain.py +0 -0
  63. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/branch_model.py +0 -0
  64. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/briefing_lessons.py +0 -0
  65. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/bug_intake.py +0 -0
  66. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/bugbash.py +0 -0
  67. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/cargo_cache.py +0 -0
  68. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/ci_fix.py +0 -0
  69. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/ci_github.py +0 -0
  70. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/ci_gitlab.py +0 -0
  71. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/ci_store.py +0 -0
  72. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/claim.py +0 -0
  73. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/claude_setup_token.py +0 -0
  74. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/cli.py +0 -0
  75. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/client.py +0 -0
  76. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/codegen.py +0 -0
  77. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/__init__.py +0 -0
  78. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/_common.py +0 -0
  79. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/acceptance.py +0 -0
  80. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/agent_ops.py +0 -0
  81. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/app_drive.py +0 -0
  82. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/audit.py +0 -0
  83. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/backup.py +0 -0
  84. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/bugbash.py +0 -0
  85. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/chat.py +0 -0
  86. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/ci.py +0 -0
  87. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/codegen.py +0 -0
  88. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/dispatch.py +0 -0
  89. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/dispatch_workers.py +0 -0
  90. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/dr.py +0 -0
  91. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/drive.py +0 -0
  92. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/gate_a.py +0 -0
  93. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/gates.py +0 -0
  94. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/issues.py +0 -0
  95. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/lifecycle.py +0 -0
  96. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/machine.py +0 -0
  97. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/merge.py +0 -0
  98. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/milestone.py +0 -0
  99. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/plan_followup.py +0 -0
  100. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/plans.py +0 -0
  101. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/portal.py +0 -0
  102. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/pr.py +0 -0
  103. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/release.py +0 -0
  104. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/repo.py +0 -0
  105. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/report.py +0 -0
  106. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/review.py +0 -0
  107. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/scorecard.py +0 -0
  108. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/sessions.py +0 -0
  109. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/setup.py +0 -0
  110. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/smoke.py +0 -0
  111. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/status.py +0 -0
  112. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/store_migrate.py +0 -0
  113. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/terminal.py +0 -0
  114. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/test_gate.py +0 -0
  115. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/commands/tui.py +0 -0
  116. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/comments.py +0 -0
  117. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/config.py +0 -0
  118. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/config_reload.py +0 -0
  119. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/confirm_test.py +0 -0
  120. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/conflict_fix.py +0 -0
  121. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/dao.py +0 -0
  122. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/dashboard/__init__.py +0 -0
  123. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/dashboard/fixture.py +0 -0
  124. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/dashboard/index.html +0 -0
  125. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/dashboard/reports.html +0 -0
  126. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/dashboard/server.py +0 -0
  127. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/dashboard/terminal.py +0 -0
  128. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/db.py +0 -0
  129. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/dead_end.py +0 -0
  130. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/deploy/README.md +0 -0
  131. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/deploy/coord-agent.service +0 -0
  132. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/deploy/coord-backup.service +0 -0
  133. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/deploy/coord-backup.timer +0 -0
  134. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/deploy/coord-board-doctor.service +0 -0
  135. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/deploy/coord-board-doctor.timer +0 -0
  136. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/deploy/coord-db-backup.service +0 -0
  137. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/deploy/coord-db-backup.sh +0 -0
  138. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/deploy/coord-db-backup.timer +0 -0
  139. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/deploy/coord-dr-verify.service +0 -0
  140. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/deploy/coord-dr-verify.timer +0 -0
  141. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/deploy/coord-drive-queue.service +0 -0
  142. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/deploy/coord-drive-queue.timer +0 -0
  143. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/deploy/coord-failure-notify.service +0 -0
  144. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/deploy/coord-fleet-watchdog.service +0 -0
  145. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/deploy/coord-fleet-watchdog.timer +0 -0
  146. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/deploy/coord-nightly-smoke.service +0 -0
  147. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/deploy/coord-nightly-smoke.timer +0 -0
  148. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/deploy/coord-notify.service +0 -0
  149. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/deploy/coord-notify.timer +0 -0
  150. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/deploy/coord-release-propagate.service +0 -0
  151. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/deploy/coord-release-propagate.timer +0 -0
  152. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/deploy/coord-release-window.service +0 -0
  153. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/deploy/coord-release-window.timer +0 -0
  154. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/deploy/coord-serve.service +0 -0
  155. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/deploy/coord-web-dist-build.service +0 -0
  156. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/deploy/coord-web-dist-build.timer +0 -0
  157. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/deploy/coord-web.service +0 -0
  158. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/deploy_manifest.py +0 -0
  159. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/deploy_units.py +0 -0
  160. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/deprecation_telemetry.py +0 -0
  161. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/deps.py +0 -0
  162. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/diagnose.py +0 -0
  163. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/dirlink.py +0 -0
  164. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/dispatch_liveness.py +0 -0
  165. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/dist_name.py +0 -0
  166. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/dr_promote.py +0 -0
  167. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/dr_verify.py +0 -0
  168. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/drive.py +0 -0
  169. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/drive_sessions_snapshot.py +0 -0
  170. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/drive_state.py +0 -0
  171. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/entry_truth.py +0 -0
  172. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/events.py +0 -0
  173. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/failure_class.py +0 -0
  174. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/failure_classifier.py +0 -0
  175. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/filelock.py +0 -0
  176. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/fleet_config_health.py +0 -0
  177. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/forge_availability.py +0 -0
  178. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/freshness.py +0 -0
  179. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/gate_a.py +0 -0
  180. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/gate_b.py +0 -0
  181. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/gate_snapshot.py +0 -0
  182. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/gates.py +0 -0
  183. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/gen_board_fixture.py +0 -0
  184. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/github_ops.py +0 -0
  185. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/github_throttle.py +0 -0
  186. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/goal.py +0 -0
  187. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/graph_health.py +0 -0
  188. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/gtk_native_driver.py +0 -0
  189. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/__init__.py +0 -0
  190. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/aggregate.py +0 -0
  191. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/checks/__init__.py +0 -0
  192. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/checks/_ci_pin.py +0 -0
  193. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/checks/agent_install.py +0 -0
  194. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/checks/cargo_targets.py +0 -0
  195. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/checks/claude_binary.py +0 -0
  196. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/checks/config_drift.py +0 -0
  197. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/checks/coord_tui_ci_pin.py +0 -0
  198. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/checks/coord_web_ci_pin.py +0 -0
  199. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/checks/deploy_lane_facts.py +0 -0
  200. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/checks/disk.py +0 -0
  201. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/checks/fleet_board.py +0 -0
  202. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/checks/fleet_deploy_lanes.py +0 -0
  203. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/checks/fleet_phantom.py +0 -0
  204. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/checks/fleet_unit_drift.py +0 -0
  205. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/checks/graph.py +0 -0
  206. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/checks/graphify_cli.py +0 -0
  207. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/checks/gui_lane_preflight.py +0 -0
  208. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/checks/index_lock.py +0 -0
  209. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/checks/issues_sync_staleness.py +0 -0
  210. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/checks/local_machine_identity.py +0 -0
  211. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/checks/plan_usage.py +0 -0
  212. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/checks/pr_churn.py +0 -0
  213. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/checks/release_cordon.py +0 -0
  214. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/checks/repo_state.py +0 -0
  215. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/checks/spawned_coord.py +0 -0
  216. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/checks/stalled_pipeline.py +0 -0
  217. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/checks/sustained_cpu.py +0 -0
  218. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/checks/timer_active.py +0 -0
  219. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/checks/toolchain.py +0 -0
  220. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/checks/unit_drift.py +0 -0
  221. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/checks/unit_enablement.py +0 -0
  222. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/checks/wedged_drive_queue.py +0 -0
  223. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/checks/worktrees.py +0 -0
  224. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/cli.py +0 -0
  225. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/context.py +0 -0
  226. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/fleet_snapshot.py +0 -0
  227. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/models.py +0 -0
  228. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/pypi.py +0 -0
  229. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/registry.py +0 -0
  230. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/render.py +0 -0
  231. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/health/units.py +0 -0
  232. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/hooks.py +0 -0
  233. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/housekeeping.py +0 -0
  234. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/interactive.py +0 -0
  235. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/invariant_alarms.py +0 -0
  236. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/issue_store.py +0 -0
  237. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/issues_sync_status.py +0 -0
  238. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/key_spec.py +0 -0
  239. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/liveness_auditor.py +0 -0
  240. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/mac_native_driver.py +0 -0
  241. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/machine_fault.py +0 -0
  242. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/machine_metrics.py +0 -0
  243. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/machine_onboard.py +0 -0
  244. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/machine_pause.py +0 -0
  245. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/machine_stats.py +0 -0
  246. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/merge_queue.py +0 -0
  247. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/milestone_chat.py +0 -0
  248. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/milestone_dispatch.py +0 -0
  249. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/milestone_gate.py +0 -0
  250. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/milestone_order.py +0 -0
  251. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/mock_author.py +0 -0
  252. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/models.py +0 -0
  253. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/native_fs_wait.py +0 -0
  254. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/native_pixels.py +0 -0
  255. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/network.py +0 -0
  256. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/new_issue_chat.py +0 -0
  257. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/nightly_runner.py +0 -0
  258. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/nightly_smoke.py +0 -0
  259. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/nightly_status.py +0 -0
  260. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/nightly_store.py +0 -0
  261. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/notifier/__init__.py +0 -0
  262. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/notifier/baseline.py +0 -0
  263. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/notifier/cli.py +0 -0
  264. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/notifier/collect.py +0 -0
  265. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/notifier/digest.py +0 -0
  266. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/notifier/models.py +0 -0
  267. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/notifier/predicate.py +0 -0
  268. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/notifier/service.py +0 -0
  269. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/notifier/store.py +0 -0
  270. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/notifier/transport.py +0 -0
  271. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/openapi.py +0 -0
  272. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/overlap_fence.py +0 -0
  273. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/overlap_predict.py +0 -0
  274. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/parentage.py +0 -0
  275. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/parentage_github.py +0 -0
  276. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/pipeline.py +0 -0
  277. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/plan_parser.py +0 -0
  278. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/plans.py +0 -0
  279. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/platform_paths.py +0 -0
  280. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/portal_bridge.py +0 -0
  281. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/portal_store.py +0 -0
  282. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/portal_sync.py +0 -0
  283. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/pr_body_lint.py +0 -0
  284. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/preflight_size.py +0 -0
  285. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/prereqs.py +0 -0
  286. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/prereview_gate.py +0 -0
  287. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/progress.py +0 -0
  288. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/providers/__init__.py +0 -0
  289. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/providers/base.py +0 -0
  290. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/providers/claude.py +0 -0
  291. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/providers/claude_pty.py +0 -0
  292. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/providers/opencode.py +0 -0
  293. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/queue_diagnose.py +0 -0
  294. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/reconcile.py +0 -0
  295. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/reconcile_tick.py +0 -0
  296. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/refine_chat.py +0 -0
  297. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/release_cordon.py +0 -0
  298. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/release_gate.py +0 -0
  299. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/release_propagate.py +0 -0
  300. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/release_verify.py +0 -0
  301. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/release_window.py +0 -0
  302. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/repo_dormancy.py +0 -0
  303. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/repo_edit.py +0 -0
  304. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/repo_onboard.py +0 -0
  305. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/reports.py +0 -0
  306. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/rest_schema.py +0 -0
  307. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/restart_cmd.py +0 -0
  308. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/revalidate.py +0 -0
  309. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/review.py +0 -0
  310. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/scorecard.py +0 -0
  311. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/self_health.py +0 -0
  312. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/serve_app.py +0 -0
  313. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/shell_exec_wrap.py +0 -0
  314. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/skills/coord-dispatch-verbs/SKILL.md +0 -0
  315. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/skills/drive-queue-preflight/SKILL.md +0 -0
  316. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/skills/fleet-restart-safety/SKILL.md +0 -0
  317. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/skills/merge-stuck-triage/SKILL.md +0 -0
  318. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/skills/pipeline-limbo-triage/SKILL.md +0 -0
  319. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/skills/portal-followup/SKILL.md +0 -0
  320. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/skills/release-now/SKILL.md +0 -0
  321. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/skills/review-verdict-recovery/SKILL.md +0 -0
  322. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/skills/tui-quadraui-workflow/SKILL.md +0 -0
  323. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/skills/update-issue/SKILL.md +0 -0
  324. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/smoke.py +0 -0
  325. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/smoke_tags.py +0 -0
  326. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/spend_ceiling.py +0 -0
  327. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/split_work.py +0 -0
  328. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/sql.py +0 -0
  329. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/stage_projection.py +0 -0
  330. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/state.py +0 -0
  331. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/store_migrate.py +0 -0
  332. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/store_parity.py +0 -0
  333. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/templates/deploy-cloudflare.node.yml +0 -0
  334. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/test_author.py +0 -0
  335. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/test_chat.py +0 -0
  336. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/test_orchestrator.py +0 -0
  337. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/test_report.py +0 -0
  338. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/tui_pty_driver.py +0 -0
  339. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/tui_release.py +0 -0
  340. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/uat_checks.py +0 -0
  341. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/upstream_gaps.py +0 -0
  342. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/usage.py +0 -0
  343. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/usage_limits.py +0 -0
  344. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/usage_rollup.py +0 -0
  345. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/win_native_bridge.py +0 -0
  346. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/win_native_driver.py +0 -0
  347. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coord/worker_events.py +0 -0
  348. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/coordinator.example.yml +0 -0
  349. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/deploy/coord-agent.service +0 -0
  350. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/deploy/coord-backup.service +0 -0
  351. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/deploy/coord-backup.timer +0 -0
  352. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/deploy/coord-board-doctor.service +0 -0
  353. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/deploy/coord-board-doctor.timer +0 -0
  354. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/deploy/coord-db-backup.service +0 -0
  355. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/deploy/coord-db-backup.sh +0 -0
  356. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/deploy/coord-db-backup.timer +0 -0
  357. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/deploy/coord-dr-verify.service +0 -0
  358. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/deploy/coord-dr-verify.timer +0 -0
  359. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/deploy/coord-drive-queue.service +0 -0
  360. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/deploy/coord-drive-queue.timer +0 -0
  361. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/deploy/coord-failure-notify.service +0 -0
  362. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/deploy/coord-failure-notify.sh +0 -0
  363. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/deploy/coord-fleet-watchdog.service +0 -0
  364. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/deploy/coord-fleet-watchdog.timer +0 -0
  365. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/deploy/coord-nightly-smoke.service +0 -0
  366. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/deploy/coord-nightly-smoke.timer +0 -0
  367. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/deploy/coord-notify.service +0 -0
  368. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/deploy/coord-notify.timer +0 -0
  369. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/deploy/coord-release-propagate.service +0 -0
  370. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/deploy/coord-release-propagate.timer +0 -0
  371. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/deploy/coord-release-window.service +0 -0
  372. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/deploy/coord-release-window.timer +0 -0
  373. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/deploy/coord-serve.service +0 -0
  374. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/deploy/coord-web-dist-build.service +0 -0
  375. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/deploy/coord-web-dist-build.sh +0 -0
  376. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/deploy/coord-web-dist-build.timer +0 -0
  377. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/deploy/coord-web-rollback.sh +0 -0
  378. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/deploy/coord-web.service +0 -0
  379. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/deploy/node-shim.sh +0 -0
  380. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/ADR_COORD_TUI_CI.md +0 -0
  381. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/ADR_COORD_WEB_ACCEPTANCE_SUITE.md +0 -0
  382. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/ADR_COORD_WEB_CI.md +0 -0
  383. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/ADR_COORD_WEB_DIST.md +0 -0
  384. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/ADR_PY_RUST_MIRRORS.md +0 -0
  385. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/AGENT_OPERATIONS.md +0 -0
  386. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/ARCHITECTURE.md +0 -0
  387. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/ARCH_SECURITY_GATES.md +0 -0
  388. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/COCKPIT.md +0 -0
  389. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/CONTROL_CENTER.md +0 -0
  390. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/COST_DISCIPLINE.md +0 -0
  391. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/CROSS_PLATFORM.md +0 -0
  392. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/CUSTOMER_FACING_APPS.md +0 -0
  393. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/CUSTOMER_PORTAL.md +0 -0
  394. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/DATA_STORE_SELECTION.md +0 -0
  395. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/DISASTER_RECOVERY.md +0 -0
  396. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/DRIVE_QUEUE.md +0 -0
  397. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/EPHEMERAL_WORKERS.md +0 -0
  398. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/FORGE_MIGRATION.md +0 -0
  399. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/GRAPHIFY_SETUP.md +0 -0
  400. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/ISSUE_GUIDANCE.md +0 -0
  401. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/MAC_MINI.md +0 -0
  402. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
  403. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/NOTIFIER.md +0 -0
  404. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/OPENCODE_VERIFICATION.md +0 -0
  405. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/OPERATING_GOTCHAS.md +0 -0
  406. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/OPERATOR_GUIDES.md +0 -0
  407. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/ORACLE_LOOP.md +0 -0
  408. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/PHONE_WEBAPP.md +0 -0
  409. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/PIPELINE_V2.md +0 -0
  410. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/PLATFORM_EVOLUTION.md +0 -0
  411. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/SECOND_BACKEND.md +0 -0
  412. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/STORE_SERVICE.md +0 -0
  413. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/TEST_FIRST_BUG_LANE.md +0 -0
  414. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/WEB_CONTROL_CENTER.md +0 -0
  415. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/WSL_WINDOWS_WORKER.md +0 -0
  416. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/mocks/web/README.md +0 -0
  417. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/mocks/web/_tokens.css +0 -0
  418. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/mocks/web/issue-detail.html +0 -0
  419. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/mocks/web/pipeline-narrow.html +0 -0
  420. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/docs/mocks/web/pipeline-wide.html +0 -0
  421. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/graphify-out/.gitignore +0 -0
  422. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/install-agent.sh +0 -0
  423. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/pyproject.toml +0 -0
  424. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/audit_review_verdict_overrides.py +0 -0
  425. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/azure-workers/bootstrap-shared.sh +0 -0
  426. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/azure-workers/build-worker-image.sh +0 -0
  427. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/azure-workers/coordinator-machine.py +0 -0
  428. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/azure-workers/dr-down.sh +0 -0
  429. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/azure-workers/dr-up.sh +0 -0
  430. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/azure-workers/epic-down.sh +0 -0
  431. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/azure-workers/epic-up.sh +0 -0
  432. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/azure-workers/preflight.sh +0 -0
  433. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/azure-workers/provision-server.sh +0 -0
  434. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/azure-workers/provision-worker.sh +0 -0
  435. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
  436. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/azure-workers/tailnet-acl.hujson +0 -0
  437. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/azure-workers/throwaway-vm.sh +0 -0
  438. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/azure-workers/verify-github-token.sh +0 -0
  439. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/check_gh_argv_containment.py +0 -0
  440. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/codegen.py +0 -0
  441. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/comment_cruft.py +0 -0
  442. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/coord-test-runner.sh +0 -0
  443. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/coord-tui-scaffold/.github/coord-ci-acceptance.yml +0 -0
  444. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/coord-tui-scaffold/.github/workflows/cargo-test.yml +0 -0
  445. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/coord-tui-scaffold/.github/workflows/codegen-drift.yml +0 -0
  446. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/coord-tui-scaffold/CLAUDE.md +0 -0
  447. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/coord-venv-rollback.sh +0 -0
  448. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/drive-batch.sh +0 -0
  449. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/extract-coord-tui.sh +0 -0
  450. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/fleet_watchdog.py +0 -0
  451. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/gen_board_fixture.py +0 -0
  452. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/gen_mock_index.py +0 -0
  453. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/lib/provision-core.sh +0 -0
  454. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/next_release_tag.py +0 -0
  455. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/provision-machine.sh +0 -0
  456. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/run_tests_in_populated_home.sh +0 -0
  457. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/run_tests_without_gh.sh +0 -0
  458. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/setup-macmini.sh +0 -0
  459. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/smoke_437_interactive.py +0 -0
  460. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/verify-provision-noble.sh +0 -0
  461. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/verify_878_review_capture.py +0 -0
  462. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/verify_release_published.py +0 -0
  463. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/scripts/verify_release_wheel.py +0 -0
  464. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/setup.cfg +0 -0
  465. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/SMOKE_SET.md +0 -0
  466. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/__init__.py +0 -0
  467. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/acceptance/ms-37/conftest.py +0 -0
  468. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/acceptance/ms-37/contract.md +0 -0
  469. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/acceptance/ms-37/manifest.yml +0 -0
  470. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
  471. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
  472. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/acceptance/ms-51/contract.md +0 -0
  473. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
  474. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
  475. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/acceptance/ms-51/manifest.yml +0 -0
  476. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
  477. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/acceptance/ms-51/tsconfig.json +0 -0
  478. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
  479. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/backends.py +0 -0
  480. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/conftest.py +0 -0
  481. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/fixtures/board-pipeline-basic.json +0 -0
  482. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
  483. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
  484. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
  485. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/fixtures/opencode_run_sample.jsonl +0 -0
  486. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/fixtures/playwright/all_pass.json +0 -0
  487. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/fixtures/playwright/global_setup_crash.json +0 -0
  488. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/fixtures/playwright/mixed_fail.json +0 -0
  489. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/fixtures/playwright/retry_then_pass.json +0 -0
  490. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
  491. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/fixtures/playwright/skip.json +0 -0
  492. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/fixtures/playwright/truncated.json +0 -0
  493. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
  494. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
  495. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
  496. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
  497. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/fixtures/test_report/pytest_error_log_record.txt +0 -0
  498. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
  499. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
  500. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
  501. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
  502. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_acceptance.py +0 -0
  503. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_acceptance_drivers.py +0 -0
  504. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_agent.py +0 -0
  505. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_agent_api_error.py +0 -0
  506. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_agent_app.py +0 -0
  507. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_agent_branch_base.py +0 -0
  508. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_agent_branch_capture.py +0 -0
  509. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_agent_config_free_1712.py +0 -0
  510. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_agent_deploy_units_endpoint.py +0 -0
  511. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_agent_dirty_worktree.py +0 -0
  512. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_agent_drive_queue_reconcile_2373.py +0 -0
  513. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_agent_graceful_shutdown_3649.py +0 -0
  514. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_agent_graph_refresh.py +0 -0
  515. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_agent_graph_self_heal.py +0 -0
  516. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_agent_health_h3.py +0 -0
  517. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_agent_idle_restart.py +0 -0
  518. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_agent_push_failure.py +0 -0
  519. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_agent_reap.py +0 -0
  520. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_agent_repos_and_pull.py +0 -0
  521. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_agent_restart_services_endpoint.py +0 -0
  522. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_agent_skills_self_heal.py +0 -0
  523. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_agent_startup_diagnostics.py +0 -0
  524. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_agent_update.py +0 -0
  525. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_agent_update_bluegreen.py +0 -0
  526. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_agent_usage_limit.py +0 -0
  527. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_agent_zero_commit.py +0 -0
  528. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_ambient_home_isolation.py +0 -0
  529. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_app_drive.py +0 -0
  530. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_approve_capability_reroute_3241.py +0 -0
  531. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_approve_dependency_busy_2804.py +0 -0
  532. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_approve_reject_plan.py +0 -0
  533. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_approve_usage_gate.py +0 -0
  534. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_approved_work_2532.py +0 -0
  535. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_approved_work_2996.py +0 -0
  536. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_assignment_already_recorded_daemon.py +0 -0
  537. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_audit_log.py +0 -0
  538. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_audit_outcome.py +0 -0
  539. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_audit_query.py +0 -0
  540. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_auto_loop.py +0 -0
  541. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_auto_release_publish_2035.py +0 -0
  542. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_backend_selection.py +0 -0
  543. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_backup.py +0 -0
  544. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_base_checkout_restore.py +0 -0
  545. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_block_log.py +0 -0
  546. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_board_cap_762.py +0 -0
  547. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_board_doctor.py +0 -0
  548. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_board_doctor_followthrough.py +0 -0
  549. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_board_doctor_permissions.py +0 -0
  550. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_board_doctor_policy.py +0 -0
  551. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_board_fixture.py +0 -0
  552. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_board_nightly_status.py +0 -0
  553. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_board_read_path.py +0 -0
  554. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_board_schema.py +0 -0
  555. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_board_service.py +0 -0
  556. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_board_state.py +0 -0
  557. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_board_wire.py +0 -0
  558. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_brain.py +0 -0
  559. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_branch_model.py +0 -0
  560. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_briefing_lessons.py +0 -0
  561. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_bug_intake.py +0 -0
  562. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_bugbash.py +0 -0
  563. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_build_worker_image_env_update.py +0 -0
  564. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cargo_cache.py +0 -0
  565. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_check_gh_argv_containment.py +0 -0
  566. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_ci_acceptance_gate_1950.py +0 -0
  567. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_ci_fix.py +0 -0
  568. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_ci_github.py +0 -0
  569. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_ci_gitlab.py +0 -0
  570. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_ci_parity_2091.py +0 -0
  571. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_ci_store.py +0 -0
  572. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_claim.py +0 -0
  573. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_claude_md_budget.py +0 -0
  574. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_claude_setup_token.py +0 -0
  575. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_acceptance.py +0 -0
  576. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_assign.py +0 -0
  577. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
  578. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_assign_interactive_remote.py +0 -0
  579. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_assign_provider.py +0 -0
  580. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_assign_repo_drift_2219.py +0 -0
  581. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_audit.py +0 -0
  582. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_chat_continue.py +0 -0
  583. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_ci.py +0 -0
  584. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_codegen.py +0 -0
  585. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_decide.py +0 -0
  586. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_diagnose_capability_rules.py +0 -0
  587. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_diagnose_config_provenance.py +0 -0
  588. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_diagnose_forge_availability.py +0 -0
  589. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_diagnose_graph.py +0 -0
  590. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_diagnose_self.py +0 -0
  591. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_diagnose_test_coverage.py +0 -0
  592. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_doctor.py +0 -0
  593. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_doctor_config_free_1801.py +0 -0
  594. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
  595. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_doctor_store_backend_3084.py +0 -0
  596. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_drive.py +0 -0
  597. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_drive_queue_investigate.py +0 -0
  598. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_drive_queue_stranded_prereq.py +0 -0
  599. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_escalate.py +0 -0
  600. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_fix_headless_review.py +0 -0
  601. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_gate_a.py +0 -0
  602. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_gates_next_action.py +0 -0
  603. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_inject_board_less.py +0 -0
  604. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_install_drift.py +0 -0
  605. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_install_skills.py +0 -0
  606. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_issue_close_wrong_repo.py +0 -0
  607. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_issue_comment.py +0 -0
  608. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_issue_create_label.py +0 -0
  609. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_issue_reopen.py +0 -0
  610. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_issue_view_list.py +0 -0
  611. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_issues.py +0 -0
  612. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_merge.py +0 -0
  613. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_milestone_assign.py +0 -0
  614. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_milestone_capture.py +0 -0
  615. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_milestone_chat_add_child.py +0 -0
  616. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_milestone_dispatch.py +0 -0
  617. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_milestone_gate_b.py +0 -0
  618. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_milestone_gate_c.py +0 -0
  619. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_milestone_order.py +0 -0
  620. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
  621. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_milestone_ship.py +0 -0
  622. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_network.py +0 -0
  623. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_new_issue_chat.py +0 -0
  624. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_plans.py +0 -0
  625. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_portal.py +0 -0
  626. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_pr.py +0 -0
  627. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_pull_artifact.py +0 -0
  628. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_queue.py +0 -0
  629. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_reattach_sessions.py +0 -0
  630. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_refine_board.py +0 -0
  631. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_release_preflight.py +0 -0
  632. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_release_propagate.py +0 -0
  633. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_release_window.py +0 -0
  634. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_repo_2220.py +0 -0
  635. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_review_test_author_tracking_epic_2639.py +0 -0
  636. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_scorecard.py +0 -0
  637. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_serve_store_backend_3084.py +0 -0
  638. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_set_review_findings.py +0 -0
  639. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_smoke_nightly.py +0 -0
  640. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_smoke_nightly_sweep.py +0 -0
  641. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_status_advisory_terminal.py +0 -0
  642. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_status_contested_tag.py +0 -0
  643. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_status_invariant_alarms.py +0 -0
  644. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_status_machine_fault.py +0 -0
  645. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_status_merge_queue.py +0 -0
  646. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_status_nightly.py +0 -0
  647. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_status_provider.py +0 -0
  648. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_status_retried_3340.py +0 -0
  649. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_status_review_finalizing.py +0 -0
  650. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_status_supervisor_3366.py +0 -0
  651. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_status_test_failed_tag.py +0 -0
  652. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_status_usage_limit.py +0 -0
  653. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_sync_comments_873.py +0 -0
  654. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_test_plan.py +0 -0
  655. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_track.py +0 -0
  656. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_tui_update.py +0 -0
  657. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cli_wait.py +0 -0
  658. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_client.py +0 -0
  659. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_client_base_install.py +0 -0
  660. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_client_config_cache_atomic_3052.py +0 -0
  661. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_client_resource_migration_1946.py +0 -0
  662. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_commands_common.py +0 -0
  663. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_comment_cruft.py +0 -0
  664. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_comments.py +0 -0
  665. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_completion_summary.py +0 -0
  666. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_config.py +0 -0
  667. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_config_acceptance.py +0 -0
  668. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_config_audit.py +0 -0
  669. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_config_drift_check.py +0 -0
  670. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_config_effective.py +0 -0
  671. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_config_prereview_gate.py +0 -0
  672. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_config_pricing.py +0 -0
  673. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
  674. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_config_usage_gate.py +0 -0
  675. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_confirm_test.py +0 -0
  676. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_conflict_fix.py +0 -0
  677. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_conflict_fix_semantic.py +0 -0
  678. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_coord_log_daemon_fallback_2547.py +0 -0
  679. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_coord_test.py +0 -0
  680. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_coord_test_runner_acceptance_toolchain_2936.py +0 -0
  681. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_coord_test_runner_baseline.py +0 -0
  682. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_coord_test_runner_populated_home.py +0 -0
  683. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_coord_test_runner_routing.py +0 -0
  684. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_coord_test_runner_toolchain.py +0 -0
  685. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_coord_test_runner_venv_setup.py +0 -0
  686. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_coord_uat.py +0 -0
  687. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_coord_web_sse_restart_live.py +0 -0
  688. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_coordinator_machine.py +0 -0
  689. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_cross_platform_imports.py +0 -0
  690. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_dao.py +0 -0
  691. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_dashboard.py +0 -0
  692. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_dashboard_api.py +0 -0
  693. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_dashboard_fixture.py +0 -0
  694. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_dashboard_reports.py +0 -0
  695. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_dashboard_server.py +0 -0
  696. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_dashboard_terminal.py +0 -0
  697. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_dashboard_terminal_live.py +0 -0
  698. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_db.py +0 -0
  699. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_dead_end.py +0 -0
  700. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_deploy_coord_db_backup.py +0 -0
  701. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_deploy_coord_web_dist.py +0 -0
  702. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_deploy_coord_web_rollback.py +0 -0
  703. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_deploy_db_backup_unit.py +0 -0
  704. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_deploy_drive_queue_unit.py +0 -0
  705. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_deploy_failure_notify_unit.py +0 -0
  706. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_deploy_manifest.py +0 -0
  707. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_deploy_notify_unit.py +0 -0
  708. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_deploy_units_lane.py +0 -0
  709. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_deploy_web_unit.py +0 -0
  710. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_deprecation_telemetry.py +0 -0
  711. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_deps.py +0 -0
  712. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_diagnose.py +0 -0
  713. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_dirlink.py +0 -0
  714. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_dispatch_liveness.py +0 -0
  715. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_dispatch_target_validation.py +0 -0
  716. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_dispatch_workers.py +0 -0
  717. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_dist_name.py +0 -0
  718. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_done_housekeeping.py +0 -0
  719. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_dr_azure_scripts.py +0 -0
  720. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_dr_promote.py +0 -0
  721. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_dr_verify.py +0 -0
  722. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_drive.py +0 -0
  723. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_drive_machine_fault.py +0 -0
  724. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_drive_queue_blocked_rendering.py +0 -0
  725. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_drive_queue_launch_argv.py +0 -0
  726. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_drive_queue_max_parallel_config.py +0 -0
  727. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_drive_queue_max_parallel_per_repo_config.py +0 -0
  728. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_drive_queue_roll_pending.py +0 -0
  729. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_drive_queue_self_cordon_escalation.py +0 -0
  730. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_drive_sessions_snapshot.py +0 -0
  731. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_drive_state.py +0 -0
  732. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_drive_tmux.py +0 -0
  733. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_entry_truth.py +0 -0
  734. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_epic_up_capability_detection.py +0 -0
  735. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
  736. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_epic_up_image_provenance.py +0 -0
  737. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_errors.py +0 -0
  738. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_events.py +0 -0
  739. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_failure_class.py +0 -0
  740. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_failure_classifier.py +0 -0
  741. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_filelock.py +0 -0
  742. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
  743. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_fix_escalation_classifier.py +0 -0
  744. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_fix_of_force_override.py +0 -0
  745. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_fleet_config_health.py +0 -0
  746. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_fleet_health_probes.py +0 -0
  747. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_fleet_health_snapshot.py +0 -0
  748. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_fleet_watchdog.py +0 -0
  749. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_forge_availability.py +0 -0
  750. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_freshness.py +0 -0
  751. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_gate_a.py +0 -0
  752. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_gate_b.py +0 -0
  753. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_gate_snapshot_staleness.py +0 -0
  754. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_gates.py +0 -0
  755. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_gather_fleet_tmux_sessions.py +0 -0
  756. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_gen_mock_index.py +0 -0
  757. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_generated_rust_fixture.py +0 -0
  758. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_generated_rust_requests.py +0 -0
  759. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_generated_types_fixture.py +0 -0
  760. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_github_ops.py +0 -0
  761. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_github_throttle.py +0 -0
  762. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_goal.py +0 -0
  763. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_graph_health.py +0 -0
  764. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_graph_selfheal_absent_2237.py +0 -0
  765. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_gtk_native_driver.py +0 -0
  766. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_handoff.py +0 -0
  767. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_health_checks.py +0 -0
  768. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_health_cli.py +0 -0
  769. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_health_cli_graph.py +0 -0
  770. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_health_config.py +0 -0
  771. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_health_context.py +0 -0
  772. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_health_coord_tui_ci_pin.py +0 -0
  773. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_health_coord_web_ci_pin.py +0 -0
  774. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_health_deploy_lane_facts.py +0 -0
  775. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_health_fix.py +0 -0
  776. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_health_incident_regression.py +0 -0
  777. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_health_issues_sync_staleness.py +0 -0
  778. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_health_pr_churn.py +0 -0
  779. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_health_pypi.py +0 -0
  780. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_health_registry.py +0 -0
  781. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_health_release_cordon_probe.py +0 -0
  782. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_health_sustained_cpu.py +0 -0
  783. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_health_timer_active.py +0 -0
  784. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_health_toolchain.py +0 -0
  785. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_health_unit_drift.py +0 -0
  786. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_health_unit_enablement.py +0 -0
  787. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_health_wedged_drive_queue.py +0 -0
  788. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_hooks.py +0 -0
  789. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_housekeeping.py +0 -0
  790. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_human_attended_437.py +0 -0
  791. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_init.py +0 -0
  792. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_install_agent_capabilities_3515.py +0 -0
  793. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_install_agent_venv_2911.py +0 -0
  794. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_install_agent_wsl_bridge_3515.py +0 -0
  795. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_integration.py +0 -0
  796. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_interactive.py +0 -0
  797. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_interactive_briefing_echo.py +0 -0
  798. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_interactive_pane_log_2541.py +0 -0
  799. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_interactive_prefill_state.py +0 -0
  800. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_interactive_session_relaunch.py +0 -0
  801. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_interactive_test_verdict_backstop.py +0 -0
  802. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_interactive_token_attribution.py +0 -0
  803. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_interactive_worktree.py +0 -0
  804. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_invariant_alarms.py +0 -0
  805. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_issue_store_seam.py +0 -0
  806. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_issues_sync_status.py +0 -0
  807. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_key_spec.py +0 -0
  808. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_liveness_auditor.py +0 -0
  809. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_liveness_notify.py +0 -0
  810. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_lock_contention_ratchet.py +0 -0
  811. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_mac_native_driver.py +0 -0
  812. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_machine_fault.py +0 -0
  813. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_machine_metrics.py +0 -0
  814. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_machine_onboard.py +0 -0
  815. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_machine_pause.py +0 -0
  816. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_machine_stats.py +0 -0
  817. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_merge_queue.py +0 -0
  818. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_merge_verification.py +0 -0
  819. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_merge_verify.py +0 -0
  820. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_milestone_chat.py +0 -0
  821. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_milestone_dispatch.py +0 -0
  822. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_milestone_gate.py +0 -0
  823. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_milestone_order.py +0 -0
  824. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_milestone_seam.py +0 -0
  825. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_mock_author.py +0 -0
  826. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_model_tiering.py +0 -0
  827. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_models.py +0 -0
  828. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_models_config_labels.py +0 -0
  829. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_models_pinned_1650.py +0 -0
  830. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_native_fs_wait.py +0 -0
  831. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_native_pixels.py +0 -0
  832. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_needs_attention.py +0 -0
  833. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_network.py +0 -0
  834. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_new_issue_chat.py +0 -0
  835. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_next_release_tag.py +0 -0
  836. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_nightly_runner.py +0 -0
  837. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_nightly_smoke.py +0 -0
  838. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_nightly_status.py +0 -0
  839. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_nightly_store.py +0 -0
  840. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_no_eligible_host_3600.py +0 -0
  841. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_node_shim.py +0 -0
  842. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_notifier_baseline.py +0 -0
  843. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_notifier_cli.py +0 -0
  844. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_notifier_collect.py +0 -0
  845. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_notifier_config.py +0 -0
  846. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_notifier_drive_seam.py +0 -0
  847. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_notifier_isolation.py +0 -0
  848. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_notifier_predicate.py +0 -0
  849. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_notifier_quiet_hours.py +0 -0
  850. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_notifier_service.py +0 -0
  851. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_notify_drain.py +0 -0
  852. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_openapi.py +0 -0
  853. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_operational_defaults.py +0 -0
  854. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_overlap_fence.py +0 -0
  855. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_overlap_predict.py +0 -0
  856. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_packaged_deploy_units.py +0 -0
  857. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_parentage.py +0 -0
  858. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_paste_landed.py +0 -0
  859. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_pause_store_guard_recursion_3789.py +0 -0
  860. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_phantom_heal_venv_independence_2570.py +0 -0
  861. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_pipeline.py +0 -0
  862. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_plain_runner_smoke_3673.py +0 -0
  863. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_plan_followup_approve_plan_command.py +0 -0
  864. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_plan_followup_pr_command.py +0 -0
  865. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_plan_followup_review_command.py +0 -0
  866. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_plan_only.py +0 -0
  867. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_plan_parser.py +0 -0
  868. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_platform_paths.py +0 -0
  869. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_portal_bridge.py +0 -0
  870. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_portal_config.py +0 -0
  871. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_portal_store.py +0 -0
  872. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_portal_sync.py +0 -0
  873. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_pr_body_lint.py +0 -0
  874. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_preflight_size.py +0 -0
  875. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_prereqs.py +0 -0
  876. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_prereview_gate.py +0 -0
  877. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_production_db_guard.py +0 -0
  878. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_progress.py +0 -0
  879. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_provider_seam.py +0 -0
  880. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_providers.py +0 -0
  881. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_providers_config_labels.py +0 -0
  882. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_providers_pty.py +0 -0
  883. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_provision_core.py +0 -0
  884. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_provision_machine.py +0 -0
  885. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_py_rust_mirror_inventory.py +0 -0
  886. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_queue_diagnose.py +0 -0
  887. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_quiet_hours.py +0 -0
  888. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_quiet_hours_store_2146.py +0 -0
  889. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_reap_merged_sessions.py +0 -0
  890. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_reap_stale_interactive_tick.py +0 -0
  891. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_reconcile.py +0 -0
  892. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_reconcile_branch.py +0 -0
  893. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_reconcile_completions.py +0 -0
  894. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_reconcile_late_agent_reports_2547.py +0 -0
  895. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_reconcile_merges.py +0 -0
  896. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_reconcile_no_agent_record.py +0 -0
  897. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_reconcile_tick.py +0 -0
  898. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_reconcile_usage_limit_done.py +0 -0
  899. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_refine_chat.py +0 -0
  900. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_release_cordon_2101.py +0 -0
  901. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
  902. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_release_cordon_deadlock_2240.py +0 -0
  903. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_release_cordon_drain_stall_3336.py +0 -0
  904. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_release_cordon_stuck_2490.py +0 -0
  905. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_release_gate.py +0 -0
  906. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_release_propagate.py +0 -0
  907. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_release_propagate_threshold.py +0 -0
  908. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_release_roll_between_legs_2854.py +0 -0
  909. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_release_roll_window_handoff.py +0 -0
  910. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_release_unified_1242.py +0 -0
  911. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_release_verify.py +0 -0
  912. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_release_window.py +0 -0
  913. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_remote_auto_prune.py +0 -0
  914. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_remote_interactive_reaper.py +0 -0
  915. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_repo_add.py +0 -0
  916. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_repo_dormancy.py +0 -0
  917. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_repo_edit_2220.py +0 -0
  918. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_repo_graph_fleet_2237.py +0 -0
  919. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_repo_max_parallel_3423.py +0 -0
  920. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_repo_onboard_2220.py +0 -0
  921. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_report_public_export.py +0 -0
  922. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_report_result_push.py +0 -0
  923. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_reports.py +0 -0
  924. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_restart_cmd.py +0 -0
  925. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_retry.py +0 -0
  926. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_retry_advisory_1606.py +0 -0
  927. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_retry_escalation_classify_3360.py +0 -0
  928. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_retry_type_1636.py +0 -0
  929. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_revalidate.py +0 -0
  930. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_review.py +0 -0
  931. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_review_end_review_without_verdict.py +0 -0
  932. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_review_parse_failure_diagnostic.py +0 -0
  933. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_review_reaffirm.py +0 -0
  934. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_review_state.py +0 -0
  935. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_review_verdict_backstop.py +0 -0
  936. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_review_verdict_override_audit.py +0 -0
  937. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_review_verdict_relay.py +0 -0
  938. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_review_zero_commits.py +0 -0
  939. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_scoped_review_wiring.py +0 -0
  940. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_scorecard.py +0 -0
  941. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_self_health.py +0 -0
  942. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_serve.py +0 -0
  943. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_serve_app.py +0 -0
  944. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_serve_app_board_trim.py +0 -0
  945. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_serve_rest_routes.py +0 -0
  946. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_session.py +0 -0
  947. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_slice_issue_attribution.py +0 -0
  948. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_smoke.py +0 -0
  949. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_smoke_fanout_manifest_3333.py +0 -0
  950. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_smoke_live_checkout_restore.py +0 -0
  951. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_smoke_plain_runner_3673.py +0 -0
  952. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_smoke_workflow.py +0 -0
  953. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_spend_ceiling.py +0 -0
  954. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_spend_ceiling_coordinator.py +0 -0
  955. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_split.py +0 -0
  956. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_split_work.py +0 -0
  957. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_sql_dialect.py +0 -0
  958. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_sqlite_connect_ratchet.py +0 -0
  959. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_stage_projection.py +0 -0
  960. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_stale_busy_reviewer_697.py +0 -0
  961. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_stalled_pipeline.py +0 -0
  962. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_state.py +0 -0
  963. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_state_review_findings_daemon.py +0 -0
  964. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_status_fleet_footer.py +0 -0
  965. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_stop_1567.py +0 -0
  966. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_store_contract.py +0 -0
  967. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_store_migrate.py +0 -0
  968. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_stuck.py +0 -0
  969. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_stuck_test_state_watchdog_2803.py +0 -0
  970. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_terminal_command.py +0 -0
  971. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_test_author.py +0 -0
  972. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_test_chat.py +0 -0
  973. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_test_orchestrator.py +0 -0
  974. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_test_report.py +0 -0
  975. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_test_verdict_parsing.py +0 -0
  976. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_test_verdict_transcript_floor.py +0 -0
  977. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_text_io_encoding_audit.py +0 -0
  978. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_thin_client_board_audit.py +0 -0
  979. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_thin_client_config_load_1080.py +0 -0
  980. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_thin_client_daemon_routing_906.py +0 -0
  981. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_throwaway_vm.py +0 -0
  982. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_tmux_host.py +0 -0
  983. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_tmux_session.py +0 -0
  984. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_transcript_floor.py +0 -0
  985. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_tui_pty_driver.py +0 -0
  986. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_uat_checks.py +0 -0
  987. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_upstream_gaps.py +0 -0
  988. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_usage.py +0 -0
  989. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_usage_limits.py +0 -0
  990. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_usage_rollup.py +0 -0
  991. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_venv_live_install_2121.py +0 -0
  992. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_version_single_source.py +0 -0
  993. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_watch.py +0 -0
  994. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_win_native_bridge.py +0 -0
  995. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_win_native_driver.py +0 -0
  996. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
  997. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_worker_env_venv_isolation.py +0 -0
  998. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_worker_events.py +0 -0
  999. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_worker_image_pin_sync.py +0 -0
  1000. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_worker_safety.py +0 -0
  1001. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_worker_test_scoping.py +0 -0
  1002. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_worktree.py +0 -0
  1003. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_worktree_rmtree_chokepoint.py +0 -0
  1004. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/test_write_parity.py +0 -0
  1005. {code_coordinator-0.5.753 → code_coordinator-0.5.754}/tests/write_parity.py +0 -0
@@ -140,7 +140,9 @@ in [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md#design-decisions--the-settled-r
140
140
  session on a *different* machine reviews your diff against this file, with **zero shared
141
141
  context with you** — so your diff and final message must stand on their own. Put the
142
142
  *why* of a fix in the commit message and final message, not in code comments: comments
143
- describe the code as it is, with no issue numbers or "used to" history.
143
+ describe the code as it is, with no issue numbers or "used to" history. **An unplanned
144
+ `ISSUE_RESOLUTION: partial` is a blocking finding** (scope you cut yourself, or a call
145
+ site left unwired); only an upstream blocker or a tranche the issue defines is allowed.
144
146
 
145
147
  ## Rules for workers
146
148
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-coordinator
3
- Version: 0.5.753
3
+ Version: 0.5.754
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.753
3
+ Version: 0.5.754
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,7 +1,7 @@
1
1
  {
2
- "tag": "0.5.753",
2
+ "tag": "0.5.754",
3
3
  "distance": 0,
4
- "node": "g543afc164f9f6d8411574fa781b778d6f50b5d56",
4
+ "node": "gca5c9c8d866fbdba07936a9b9e7e0facc4cf0c1e",
5
5
  "dirty": false,
6
6
  "branch": "HEAD",
7
7
  "node_date": "2026-11-10"
@@ -5842,6 +5842,72 @@ def _fetch_gate_a_pending(entries: list) -> dict[str, bool]:
5842
5842
  return pending
5843
5843
 
5844
5844
 
5845
+ def _fetch_size_triage_pending(entries: list) -> dict[str, bool]:
5846
+ """``{entry_key: still_waiting_on_the_triage_leg}`` for every entry
5847
+ parked on `coord.dispatch.enforce_preflight_guard`'s size-triage-pending
5848
+ refusal (#3971, `coord.decomposition_chat.SIZE_TRIAGE_PENDING_MARKER`).
5849
+
5850
+ Re-derives the SAME evidence `enforce_preflight_guard` itself consults
5851
+ on its next real invocation — a matching `review_target` row's own
5852
+ `status` column (#2096: one question, one answer) — rather than a
5853
+ second, independent notion of "is the triage done". Board read only, no
5854
+ `gh` call, and no work at all on a tick where nothing is parked this
5855
+ way (the common case).
5856
+
5857
+ Reads the raw ``assignments`` rows out of :func:`_fetch_board_payload`
5858
+ rather than `coord.state.build_board`, for the #615 reason every other
5859
+ reader in this module routes: that fetch answers from the daemon's
5860
+ ``GET /board`` when ``board_service`` is configured and from the local
5861
+ DB only when it is not, so a thin client sees the real rows instead of
5862
+ an empty board. `BoardView` cannot answer this one — it reduces the
5863
+ board to per-issue facts and carries no ``review_target`` at all — and
5864
+ the triage row is keyed by ``review_target``, not by its issue.
5865
+
5866
+ Fails **closed**, same posture as :func:`_fetch_gate_a_pending`: an
5867
+ entry whose triage status can't be confirmed stays parked. Being wrong
5868
+ that way costs a parked row an operator can see and release; being
5869
+ wrong the other way resumes Work dispatch while a paid triage session
5870
+ might still be about to propose splitting this issue into pieces no
5871
+ single worker should touch at once. A board the fetch CAN read that
5872
+ simply carries no row for this ``review_target`` is a different
5873
+ answer, not an unreadable one — nothing is in flight, so the entry
5874
+ resumes and the relaunch's own guard call re-derives the verdict.
5875
+ """
5876
+ from coord.decomposition_chat import ( # noqa: PLC0415
5877
+ is_size_triage_pending_reason,
5878
+ size_triage_review_target_for,
5879
+ )
5880
+ from coord.drive_state import TERMINAL_STATUSES # noqa: PLC0415
5881
+
5882
+ targets = [
5883
+ e for e in entries
5884
+ if e.state == STATE_PARKED
5885
+ and is_size_triage_pending_reason(getattr(e, "last_reason", "") or "")
5886
+ ]
5887
+ if not targets:
5888
+ return {}
5889
+
5890
+ try:
5891
+ payload = _fetch_board_payload()
5892
+ except Exception: # noqa: BLE001 — fail closed, stay parked
5893
+ return {e.key: True for e in targets}
5894
+
5895
+ rows = payload.get("assignments") or []
5896
+ pending: dict[str, bool] = {}
5897
+ for e in targets:
5898
+ review_target = size_triage_review_target_for(e.issue)
5899
+ matches = [
5900
+ r for r in rows
5901
+ if (r.get("review_target") or "") == review_target
5902
+ and (r.get("repo_name") or "") == e.repo
5903
+ ]
5904
+ pending[e.key] = any(
5905
+ str(r.get("status") or "").lower() not in TERMINAL_STATUSES
5906
+ for r in matches
5907
+ )
5908
+ return pending
5909
+
5910
+
5845
5911
  def _fetch_live_ci_gate(
5846
5912
  entries: list, config_path: Path | None
5847
5913
  ) -> tuple[dict[str, bool], dict[str, str]]:
@@ -8509,6 +8575,13 @@ def drive_queue_tick(
8509
8575
  # tick when no entry is parked that way — which is the common case.
8510
8576
  gate_a_pending = _fetch_gate_a_pending(entries)
8511
8577
 
8578
+ # #3971: the same live re-read, for every entry parked on a size-
8579
+ # triage review still in flight — see `_fetch_size_triage_pending`'s
8580
+ # docstring for the incident this closes (a flagged issue's
8581
+ # drive-queue row, and every `after=` dependent behind it, stuck
8582
+ # `blocked` even after the triage leg posted `proceed`).
8583
+ size_triage_pending = _fetch_size_triage_pending(entries)
8584
+
8512
8585
  # #2182: for every entry parked on a CI reason, a fresh single-entry
8513
8586
  # re-derivation of its gate, taken live THIS tick — see
8514
8587
  # `_fetch_live_ci_gate`'s docstring for the gap this closes (a park
@@ -8614,6 +8687,7 @@ def drive_queue_tick(
8614
8687
  exit_refused=exit_refused,
8615
8688
  exit_dead_end=exit_dead_end,
8616
8689
  gate_a_pending=gate_a_pending,
8690
+ size_triage_pending=size_triage_pending,
8617
8691
  cordons=cordons,
8618
8692
  no_eligible_host=no_eligible_host,
8619
8693
  live_ci_gate=live_ci_gate,
@@ -1024,16 +1024,50 @@ def size_triage_review_target_for(issue_number: int) -> str:
1024
1024
 
1025
1025
  Mirrors `coord.gate_b.review_target_for`: keeping it non-int-parseable
1026
1026
  means `coord.notify._try_parse_and_post_review`'s `int(review_target)`
1027
- sniff falls through to "post as a plain issue comment" rather than
1028
- mistaking this for a per-issue code review of a real PR — and this
1029
- entry posts no comment at all (see `dispatch_size_triage_review`), so in
1030
- practice nothing ever reads this string back out of `coord.notify`; it
1031
- exists so `latest`-style lookups (if one is ever needed) can find this
1032
- assignment unambiguously among a repo's other `type="review"` rows.
1027
+ sniff falls through rather than mistaking this for a per-issue code
1028
+ review of a real PR. It also exists so `latest`-style lookups (if one
1029
+ is ever needed) can find this assignment unambiguously among a repo's
1030
+ other `type="review"` rows, and so `coord.notify.notify`'s own
1031
+ completion handler (#3971) can recognise this ONE `type="review"`
1032
+ shape and skip review-findings extraction / the "Review assignment
1033
+ completed" comment for it — a leg this dispatch-time sentinel marks is
1034
+ a read-only size triage, never a real code review, whatever its
1035
+ board-row `type` says.
1033
1036
  """
1034
1037
  return f"size-triage-{issue_number}"
1035
1038
 
1036
1039
 
1040
+ def is_size_triage_review_target(review_target: str | None) -> bool:
1041
+ """Whether *review_target* identifies a size-triage dispatch rather than
1042
+ a real code review (#3971) — the inverse of
1043
+ :func:`size_triage_review_target_for`, for a caller holding only the
1044
+ string back out of an `Assignment` row.
1045
+ """
1046
+ return bool(review_target) and str(review_target).startswith("size-triage-")
1047
+
1048
+
1049
+ # #3971: a TEMPORARY wait, not a permanent pre-dispatch guard refusal
1050
+ # (#1844) — unlike `enforce_oracle_readiness`/`enforce_epic_dispatch_guard`'s
1051
+ # refusals, `enforce_preflight_guard`'s "a size-triage review is running —
1052
+ # retry once it posts its verdict" refusal clears on its own the moment that
1053
+ # leg reaches a terminal status, no operator action needed. Embedded in that
1054
+ # refusal's text so `coord.drive_queue._reconcile_running` can recognise it
1055
+ # BEFORE the generic `exit_refused` → `blocked` branch (#1844) every other
1056
+ # `DispatchRefused` falls into, and park instead — the same precedent
1057
+ # `coord.gate_a.is_gate_a_refusal_reason`'s own marker set for a refusal with
1058
+ # a self-clearing condition. Lives here, not in `coord.dispatch`, because
1059
+ # this module already owns every other size-triage-shaped sentinel
1060
+ # (`size_triage_review_target_for`, `is_size_triage_review_target`) and
1061
+ # `coord.dispatch`/`coord.drive_queue` both already import from it.
1062
+ SIZE_TRIAGE_PENDING_MARKER = "[size-triage-pending]"
1063
+
1064
+
1065
+ def is_size_triage_pending_reason(text: str | None) -> bool:
1066
+ """Whether *text* is `enforce_preflight_guard`'s triage-in-flight
1067
+ refusal (#3971) — see :data:`SIZE_TRIAGE_PENDING_MARKER`."""
1068
+ return bool(text) and SIZE_TRIAGE_PENDING_MARKER in text
1069
+
1070
+
1037
1071
  SIZE_TRIAGE_SYSTEM_PROMPT = """You are an independent triage agent dispatched by the coordinator to \
1038
1072
  decide whether a single GitHub issue, already flagged by a heuristic size \
1039
1073
  scorer as plausibly too large for one worker, should be split into smaller \
@@ -450,6 +450,7 @@ def enforce_preflight_guard(
450
450
  return
451
451
 
452
452
  from coord.decomposition_chat import ( # noqa: PLC0415
453
+ SIZE_TRIAGE_PENDING_MARKER,
453
454
  SizeTriageError,
454
455
  dispatch_size_triage_review,
455
456
  size_triage_review_target_for,
@@ -540,12 +541,22 @@ def enforce_preflight_guard(
540
541
  # follow-up in flight to ever clear the refusal.
541
542
  return
542
543
 
544
+ # #3971: this refusal is TEMPORARY — the triage leg just dispatched (or
545
+ # already in flight) clears it on its own the moment it posts a
546
+ # verdict, unlike `enforce_oracle_readiness`/`enforce_epic_dispatch_
547
+ # guard`'s refusals above, which nothing but an operator action can
548
+ # clear. `SIZE_TRIAGE_PENDING_MARKER` lets `coord.drive_queue.
549
+ # _reconcile_running` tell this ONE `DispatchRefused` shape apart from
550
+ # every other one sharing the same `EXIT_DISPATCH_REFUSED` exit code
551
+ # (#1844) and park the drive-queue row instead of blocking it forever —
552
+ # see that function's #3971 comment for the quadraui#2304 incident this
553
+ # closes.
543
554
  raise DispatchRefused(
544
555
  f"issue #{issue_number} flagged by the preflight size scorer "
545
556
  f"(score {score.total:g}/{score.threshold:g}): {score.reason}. "
546
557
  f"A size-triage review is {'already ' if in_flight is not None else ''}"
547
558
  f"running on {machine.name!r} (review_target={review_target!r}) — "
548
- "retry once it posts its verdict."
559
+ f"retry once it posts its verdict. {SIZE_TRIAGE_PENDING_MARKER}"
549
560
  )
550
561
 
551
562
 
@@ -91,6 +91,7 @@ from dataclasses import dataclass, field, replace
91
91
  from pathlib import Path
92
92
  from typing import Any, Iterable, Mapping, Sequence
93
93
 
94
+ from coord.decomposition_chat import is_size_triage_pending_reason
94
95
  from coord.drive_state import TERMINAL_STATUSES, WORK_LIKE
95
96
  from coord.entry_truth import (
96
97
  EntryTruth,
@@ -5804,6 +5805,45 @@ def _reconcile_running(
5804
5805
  None,
5805
5806
  )
5806
5807
 
5808
+ # #3971 rides the SAME "pending verdict, not a standing refusal" shape
5809
+ # as #2063's Gate-A park immediately above: `coord.dispatch.
5810
+ # enforce_preflight_guard`'s "a size-triage review is running — retry
5811
+ # once it posts its verdict" refusal is TEMPORARY — the condition that
5812
+ # refused it (a non-terminal triage leg) clears on its own the moment
5813
+ # that leg finishes, no operator action needed — yet it reached here as
5814
+ # a PLAIN `EXIT_DISPATCH_REFUSED` (#1844's exit code for every
5815
+ # `DispatchRefused`, permanent or not) and would otherwise fall straight
5816
+ # into the `exit_refused` → `blocked` branch below and stay blocked
5817
+ # forever even after the verdict posts PROCEED (quadraui#2304, 2026-11-10
5818
+ # UTC: every dependent behind the row cascaded to `blocked` three minutes
5819
+ # before the triage leg itself returned `proceed`). Checked purely off
5820
+ # `own_reason`'s marker — independent of `exit_refused` — the same
5821
+ # "recognise this refusal by its own text, not by the exit code every
5822
+ # `DispatchRefused` shares" posture #2063/#2234 already established.
5823
+ # Parks rather than blocks; `plan_tick`'s pre-pass below un-parks it the
5824
+ # tick after the matching `review_target` assignment goes terminal, same
5825
+ # "no queue surgery needed" contract Gate-A's park gives.
5826
+ if own_reason and is_size_triage_pending_reason(own_reason):
5827
+ reason = (
5828
+ f"{own_reason} — parking without spending an attempt; the queue "
5829
+ "resumes it automatically once the size-triage review posts its "
5830
+ "verdict, no queue surgery needed (#3971)"
5831
+ )
5832
+ return (
5833
+ Reconcile(
5834
+ entry.key,
5835
+ "parked",
5836
+ reason,
5837
+ occupies=False,
5838
+ updates={
5839
+ "state": STATE_PARKED,
5840
+ "last_reason": reason,
5841
+ "session_name": None,
5842
+ },
5843
+ ),
5844
+ None,
5845
+ )
5846
+
5807
5847
  # #2234 rides the SAME evidence as `refused` below (the drive's own
5808
5848
  # `drive_exited` reason) but, like #2063 above, reaches the OPPOSITE
5809
5849
  # conclusion from a PLAIN `EXIT_TERMINAL_FAILURE` — `coord.drive.
@@ -7602,6 +7642,7 @@ def plan_tick(
7602
7642
  exit_refused: Mapping[str, bool] | None = None,
7603
7643
  exit_dead_end: Mapping[str, bool] | None = None,
7604
7644
  gate_a_pending: Mapping[str, bool] | None = None,
7645
+ size_triage_pending: Mapping[str, bool] | None = None,
7605
7646
  cordons: Mapping[str, str] | None = None,
7606
7647
  no_eligible_host: Mapping[str, str] | None = None,
7607
7648
  live_ci_gate: Mapping[str, bool] | None = None,
@@ -8656,6 +8697,41 @@ def plan_tick(
8656
8697
  states[entry.key] = STATE_WAITING
8657
8698
  effective_attempts[entry.key] = 0 # #2273: see #2182 branch above
8658
8699
  continue
8700
+ # #3971: the SAME "external verdict, re-check every tick" shape as
8701
+ # the Gate-A branch just above, for `enforce_preflight_guard`'s
8702
+ # size-triage-pending park. The shell resolves `size_triage_pending`
8703
+ # by re-reading the matching `review_target` assignment's own
8704
+ # `status` column — a local board read, no `gh` call per entry; an
8705
+ # entry it can't resolve stays parked, same fail-closed posture as
8706
+ # Gate-A's. Resuming does NOT itself decide proceed/split — it only
8707
+ # lets the next real `enforce_preflight_guard` call run again, which
8708
+ # is what actually consumes the verdict (falls through for PROCEED/
8709
+ # unparseable, raises a fresh — unmarked, permanent — refusal that
8710
+ # supersedes the original for SPLIT).
8711
+ if is_size_triage_pending_reason(entry.last_reason):
8712
+ if (size_triage_pending or {}).get(entry.key, True):
8713
+ continue
8714
+ reason = (
8715
+ f"the size-triage review for {entry.key} has posted its "
8716
+ "verdict — resuming from parked without spending an "
8717
+ "attempt (#3971)"
8718
+ )
8719
+ reconciles.append(
8720
+ Reconcile(
8721
+ entry.key,
8722
+ "resumed",
8723
+ reason,
8724
+ occupies=False,
8725
+ updates={
8726
+ "state": STATE_WAITING,
8727
+ "attempts": 0,
8728
+ "last_reason": reason,
8729
+ },
8730
+ )
8731
+ )
8732
+ states[entry.key] = STATE_WAITING
8733
+ effective_attempts[entry.key] = 0
8734
+ continue
8659
8735
  # #2234: a policy-refusal park has NO external verdict to poll for —
8660
8736
  # the rule it names is standing, not pending — so unlike the Gate-A
8661
8737
  # branch just above, this one never resumes itself. Without this
@@ -49,6 +49,7 @@ from coord.comments import (
49
49
  format_stuck,
50
50
  )
51
51
  from coord.config import Config
52
+ from coord.decomposition_chat import is_size_triage_review_target
52
53
  from coord.dispatch import (
53
54
  AGENT_PORT,
54
55
  post_advisory,
@@ -4452,6 +4453,31 @@ def post_transition(transition: Transition, record: dict, entry: dict) -> None:
4452
4453
  EVENT_PLAN if posted else EVENT_COMPLETION,
4453
4454
  branch=entry.get("branch"),
4454
4455
  )
4456
+ elif (
4457
+ transition.event == EVENT_COMPLETION
4458
+ and assignment_type == "review"
4459
+ and is_size_triage_review_target(record.get("review_target"))
4460
+ ):
4461
+ # #3971: a size-triage leg (`coord.decomposition_chat.
4462
+ # dispatch_size_triage_review`) is dispatched as `type="review"`
4463
+ # ONLY to reuse `coord.agent`'s CLI-enforced read-only deny-list for
4464
+ # that type (see that function's own comment) — it is never a real
4465
+ # code review, has no PR to review, and (per its own briefing) never
4466
+ # emits REVIEW_VERDICT/END_REVIEW. Before this branch existed, the
4467
+ # generic `assignment_type == "review"` arm below tried to extract
4468
+ # findings from a `SIZE_TRIAGE_VERDICT`-shaped log, failed, and
4469
+ # posted "Review assignment completed but findings could not be
4470
+ # extracted" to the issue (quadraui#2304, 2026-11-10 UTC) — a
4471
+ # confusing, actionable-looking comment about a leg that already
4472
+ # posts no comment at all by design (`dispatch_size_triage_review`'s
4473
+ # own docstring). `coord.dispatch.enforce_preflight_guard` is what
4474
+ # actually consumes this leg's verdict (fetching and parsing the
4475
+ # raw log itself the next time it runs) — nothing here needs to.
4476
+ mark_notified(
4477
+ transition.assignment_id,
4478
+ transition.event,
4479
+ branch=entry.get("branch"),
4480
+ )
4455
4481
  elif transition.event == EVENT_COMPLETION and assignment_type == "review":
4456
4482
  # For review assignments, parse the structured findings and post as a
4457
4483
  # PR review (or issue comment when no PR number is available). Fall
@@ -3455,6 +3455,215 @@ def test_exhausted_ci_stale_escalation_proposes_revalidate_not_a_requeue(
3455
3455
  assert proposed == f"coord merge --revalidate --only {REPO}#2983"
3456
3456
 
3457
3457
 
3458
+ def test_a_size_triage_pending_refusal_parks_and_resumes_on_verdict(
3459
+ cli, seed, launches, coord_db,
3460
+ ):
3461
+ """#3971, end-to-end — the quadraui#2304 incident reproduced and fixed.
3462
+ `coord.dispatch.enforce_preflight_guard`'s "a size-triage review is
3463
+ running ... retry once it posts its verdict" refusal carries the SAME
3464
+ `EXIT_DISPATCH_REFUSED` exit code as the genuinely permanent refusal
3465
+ pinned by the test just below, but it is TEMPORARY: the row must PARK,
3466
+ not BLOCK, with `attempts` untouched, while the triage leg is in
3467
+ flight, and must resume to `waiting` — and relaunch, same tick — the
3468
+ first tick after that leg's own `review_target` assignment goes
3469
+ terminal. No queue surgery, no cascaded `blocked` on any `after=`
3470
+ dependent.
3471
+ """
3472
+ from coord.audit import record_audit
3473
+ from coord.decomposition_chat import (
3474
+ SIZE_TRIAGE_PENDING_MARKER,
3475
+ size_triage_review_target_for,
3476
+ )
3477
+ from coord.drive import EXIT_DISPATCH_REFUSED
3478
+
3479
+ seed(issues={2304: "open"})
3480
+ cli("add", REPO, "2304")
3481
+ cli("tick")
3482
+ assert queued(2304)["attempts"] == 0
3483
+
3484
+ refusal = (
3485
+ "drive exited for claude-coordinator#2304 (exit_code="
3486
+ f"{EXIT_DISPATCH_REFUSED}): dispatch failed: issue #2304 flagged "
3487
+ "by the preflight size scorer (score 4/4): 3 file(s) declared. A "
3488
+ "size-triage review is running on 'dellserver' "
3489
+ "(review_target='size-triage-2304') — retry once it posts its "
3490
+ f"verdict. {SIZE_TRIAGE_PENDING_MARKER}"
3491
+ )
3492
+ launched_at = queued(2304)["launched_at"]
3493
+ _backdate(2304, DRIVE_STARTUP_GRACE_SECONDS + 60)
3494
+ record_audit(
3495
+ tier="business", category="drive", event_type="drive_exited",
3496
+ actor="drive", summary=refusal, repo=REPO, issue=2304,
3497
+ ts=launched_at + 5,
3498
+ details={"exit_code": EXIT_DISPATCH_REFUSED, "error": refusal},
3499
+ )
3500
+
3501
+ # The triage leg itself is still on the board, non-terminal.
3502
+ review_target = size_triage_review_target_for(2304)
3503
+ coord_db.execute(
3504
+ "INSERT INTO assignments "
3505
+ "(assignment_id, repo_name, issue_number, issue_title, "
3506
+ " machine_name, type, status, review_target, dispatched_at) "
3507
+ "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)",
3508
+ (
3509
+ "triage-2304", REPO, 2304, "[size-triage] issue 2304",
3510
+ "dellserver", "review", "running", review_target, launched_at + 1,
3511
+ ),
3512
+ )
3513
+ coord_db.commit()
3514
+
3515
+ result = cli("tick")
3516
+ assert result.exit_code == 0, result.output
3517
+ assert len(launches) == 1, launches # parked, not retried — no relaunch
3518
+
3519
+ entry = queued(2304)
3520
+ assert entry["state"] == "parked"
3521
+ assert entry["attempts"] == 0
3522
+ assert SIZE_TRIAGE_PENDING_MARKER in entry["last_reason"]
3523
+
3524
+ # The triage leg posts its verdict and goes terminal.
3525
+ coord_db.execute(
3526
+ "UPDATE assignments SET status = 'done' WHERE assignment_id = ?",
3527
+ ("triage-2304",),
3528
+ )
3529
+ coord_db.commit()
3530
+
3531
+ resumed = cli("tick")
3532
+ assert resumed.exit_code == 0, resumed.output
3533
+ assert len(launches) == 2, launches # resumed AND relaunched, same tick
3534
+
3535
+ entry = queued(2304)
3536
+ assert entry["state"] == "running"
3537
+ assert entry["attempts"] == 0
3538
+
3539
+
3540
+ def _size_triage_parked_entry(issue: int):
3541
+ """A `parked`-on-size-triage-pending queue entry, for the shell-half
3542
+ tests below."""
3543
+ from coord.decomposition_chat import SIZE_TRIAGE_PENDING_MARKER
3544
+ from coord.drive_queue import STATE_PARKED, QueueEntry
3545
+
3546
+ return QueueEntry(
3547
+ repo=REPO, issue=issue, position=1, state=STATE_PARKED,
3548
+ last_reason=(
3549
+ f"issue #{issue} flagged by the preflight size scorer — retry "
3550
+ f"once it posts its verdict. {SIZE_TRIAGE_PENDING_MARKER}"
3551
+ ),
3552
+ )
3553
+
3554
+
3555
+ def _triage_row(issue: int, status: str, *, repo: str = REPO) -> dict:
3556
+ from coord.decomposition_chat import size_triage_review_target_for
3557
+
3558
+ return {
3559
+ "assignment_id": f"triage-{issue}",
3560
+ "repo_name": repo,
3561
+ "issue_number": issue,
3562
+ "type": "review",
3563
+ "status": status,
3564
+ "review_target": size_triage_review_target_for(issue),
3565
+ }
3566
+
3567
+
3568
+ def test_fetch_size_triage_pending_reads_the_routed_board_not_the_local_db(
3569
+ monkeypatch,
3570
+ ):
3571
+ """#3971 shell half, #615: the triage leg's status must come from the
3572
+ board payload `_fetch_board_payload` resolves — the daemon's `GET
3573
+ /board` on a thin client, the local DB only when no `board_service` is
3574
+ configured — never from a direct `coord.state.build_board`, which
3575
+ silently reads an empty board on a thin client. `build_board` is
3576
+ booby-trapped here, so a regression back to the local read fails this
3577
+ test rather than quietly answering "nothing in flight"."""
3578
+ import coord.commands.drive_queue as dq
3579
+ import coord.state as state_mod
3580
+
3581
+ def exploding_build_board():
3582
+ raise AssertionError("build_board must not be called — read is routed")
3583
+
3584
+ monkeypatch.setattr(state_mod, "build_board", exploding_build_board)
3585
+ monkeypatch.setattr(
3586
+ dq, "_fetch_board_payload",
3587
+ lambda: {"assignments": [_triage_row(2304, "running")]},
3588
+ )
3589
+
3590
+ entry = _size_triage_parked_entry(2304)
3591
+ assert dq._fetch_size_triage_pending([entry]) == {entry.key: True}
3592
+
3593
+
3594
+ def test_fetch_size_triage_pending_clears_once_the_triage_leg_is_terminal(
3595
+ monkeypatch,
3596
+ ):
3597
+ import coord.commands.drive_queue as dq
3598
+
3599
+ monkeypatch.setattr(
3600
+ dq, "_fetch_board_payload",
3601
+ lambda: {"assignments": [_triage_row(2304, "done")]},
3602
+ )
3603
+
3604
+ entry = _size_triage_parked_entry(2304)
3605
+ assert dq._fetch_size_triage_pending([entry]) == {entry.key: False}
3606
+
3607
+
3608
+ def test_fetch_size_triage_pending_ignores_a_same_target_row_in_another_repo(
3609
+ monkeypatch,
3610
+ ):
3611
+ """`review_target` is only unique within a repo — a still-running
3612
+ `size-triage-2304` in a DIFFERENT repo must not keep this entry
3613
+ parked, and must not be mistaken for this one's verdict either."""
3614
+ import coord.commands.drive_queue as dq
3615
+
3616
+ monkeypatch.setattr(
3617
+ dq, "_fetch_board_payload",
3618
+ lambda: {
3619
+ "assignments": [
3620
+ _triage_row(2304, "running", repo="other-repo"),
3621
+ _triage_row(2304, "done"),
3622
+ ]
3623
+ },
3624
+ )
3625
+
3626
+ entry = _size_triage_parked_entry(2304)
3627
+ assert dq._fetch_size_triage_pending([entry]) == {entry.key: False}
3628
+
3629
+
3630
+ def test_fetch_size_triage_pending_fails_closed_on_an_unreadable_board(
3631
+ monkeypatch,
3632
+ ):
3633
+ """An unreadable board is not evidence that the triage finished: the
3634
+ entry stays parked rather than resuming Work dispatch against an issue
3635
+ a paid triage session may still be about to split."""
3636
+ import coord.commands.drive_queue as dq
3637
+
3638
+ def boom():
3639
+ raise RuntimeError("daemon unreachable")
3640
+
3641
+ monkeypatch.setattr(dq, "_fetch_board_payload", boom)
3642
+
3643
+ entry = _size_triage_parked_entry(2304)
3644
+ assert dq._fetch_size_triage_pending([entry]) == {entry.key: True}
3645
+
3646
+
3647
+ def test_fetch_size_triage_pending_ignores_other_parks_and_reads_no_board(
3648
+ monkeypatch,
3649
+ ):
3650
+ """No board read at all on a tick where nothing is parked this way —
3651
+ the common case."""
3652
+ import coord.commands.drive_queue as dq
3653
+ from coord.drive_queue import STATE_PARKED, QueueEntry
3654
+
3655
+ def boom():
3656
+ raise AssertionError("no board read when nothing is parked on triage")
3657
+
3658
+ monkeypatch.setattr(dq, "_fetch_board_payload", boom)
3659
+
3660
+ entry = QueueEntry(
3661
+ repo=REPO, issue=2304, position=1, state=STATE_PARKED,
3662
+ last_reason="CI running: checks pending",
3663
+ )
3664
+ assert dq._fetch_size_triage_pending([entry]) == {}
3665
+
3666
+
3458
3667
  def test_a_permanent_dispatch_refusal_blocks_on_the_first_tick_no_attempt_spent(
3459
3668
  cli, seed, launches,
3460
3669
  ):
@@ -1749,6 +1749,47 @@ class TestSizeTriageReviewTargetFor:
1749
1749
  int(target)
1750
1750
 
1751
1751
 
1752
+ class TestIsSizeTriageReviewTarget:
1753
+ """#3971: the inverse of `size_triage_review_target_for` — recognising a
1754
+ size-triage `review_target` back out of a board row, so a caller like
1755
+ `coord.notify` can tell it apart from a real PR review."""
1756
+
1757
+ def test_recognises_its_own_sentinel(self):
1758
+ target = decomposition_chat.size_triage_review_target_for(3818)
1759
+ assert decomposition_chat.is_size_triage_review_target(target) is True
1760
+
1761
+ def test_rejects_a_real_pr_number(self):
1762
+ assert decomposition_chat.is_size_triage_review_target("42") is False
1763
+
1764
+ def test_rejects_none_and_empty(self):
1765
+ assert decomposition_chat.is_size_triage_review_target(None) is False
1766
+ assert decomposition_chat.is_size_triage_review_target("") is False
1767
+
1768
+
1769
+ class TestIsSizeTriagePendingReason:
1770
+ """#3971: the marker `enforce_preflight_guard` embeds in its "retry
1771
+ once it posts its verdict" refusal, and nothing else, so
1772
+ `coord.drive_queue._reconcile_running` can park on it instead of
1773
+ blocking on the generic `exit_refused` classification every other
1774
+ `DispatchRefused` shares."""
1775
+
1776
+ def test_recognises_the_marker(self):
1777
+ text = (
1778
+ f"issue #99 flagged ... retry once it posts its verdict. "
1779
+ f"{decomposition_chat.SIZE_TRIAGE_PENDING_MARKER}"
1780
+ )
1781
+ assert decomposition_chat.is_size_triage_pending_reason(text) is True
1782
+
1783
+ def test_rejects_unrelated_text(self):
1784
+ assert decomposition_chat.is_size_triage_pending_reason(
1785
+ "issue #99 is part of oracle-opted-in milestone ms-51"
1786
+ ) is False
1787
+
1788
+ def test_rejects_none_and_empty(self):
1789
+ assert decomposition_chat.is_size_triage_pending_reason(None) is False
1790
+ assert decomposition_chat.is_size_triage_pending_reason("") is False
1791
+
1792
+
1752
1793
  class TestBuildSizeTriageBriefing:
1753
1794
  def test_includes_issue_body_and_contract(self):
1754
1795
  briefing = decomposition_chat.build_size_triage_briefing(