code-coordinator 0.5.752__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.752 → code_coordinator-0.5.754}/CLAUDE.md +3 -1
  2. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/PKG-INFO +1 -1
  3. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/code_coordinator.egg-info/PKG-INFO +1 -1
  4. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/code_coordinator.egg-info/scm_version.json +2 -2
  5. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/drive_queue.py +74 -0
  6. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/decomposition_chat.py +40 -6
  7. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/dispatch.py +12 -1
  8. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/drive_queue.py +76 -0
  9. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/merge_queue.py +99 -19
  10. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/models.py +24 -1
  11. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/notify.py +26 -0
  12. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/review.py +155 -12
  13. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_drive_queue.py +209 -0
  14. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_decomposition_chat.py +41 -0
  15. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dispatch.py +26 -4
  16. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_drive_queue.py +81 -0
  17. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_merge_queue.py +314 -4
  18. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_models.py +6 -2
  19. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_notify.py +34 -0
  20. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_review.py +198 -0
  21. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/.claude/commands/board.md +0 -0
  22. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/.claude/commands/complete-session.md +0 -0
  23. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/.claude/commands/coordinator.md +0 -0
  24. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/.githooks/_lib.sh +0 -0
  25. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/.githooks/post-checkout +0 -0
  26. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/.githooks/post-commit +0 -0
  27. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/.githooks/post-merge +0 -0
  28. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  29. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/.github/coord-ci-acceptance.yml +0 -0
  30. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/.github/workflows/auto-release.yml +0 -0
  31. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/.github/workflows/publish.yml +0 -0
  32. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/.github/workflows/test.yml +0 -0
  33. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/.gitignore +0 -0
  34. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/GOAL.md +0 -0
  35. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/LICENSE +0 -0
  36. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/MANIFEST.in +0 -0
  37. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/README.md +0 -0
  38. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/code_coordinator.egg-info/SOURCES.txt +0 -0
  39. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/code_coordinator.egg-info/dependency_links.txt +0 -0
  40. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/code_coordinator.egg-info/entry_points.txt +0 -0
  41. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/code_coordinator.egg-info/requires.txt +0 -0
  42. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/code_coordinator.egg-info/scm_file_list.json +0 -0
  43. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/code_coordinator.egg-info/top_level.txt +0 -0
  44. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/__init__.py +0 -0
  45. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/_board_mapping.py +0 -0
  46. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/acceptance.py +0 -0
  47. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/acceptance_drivers.py +0 -0
  48. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/agent.py +0 -0
  49. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/agent_app.py +0 -0
  50. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/agent_update.py +0 -0
  51. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/agents/opencode/.gitignore +0 -0
  52. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/agents/opencode/agents/work.md +0 -0
  53. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/agents/opencode/routing.jsonc +0 -0
  54. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/app_drive.py +0 -0
  55. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/app_drive_daemon.py +0 -0
  56. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/approved_work.py +0 -0
  57. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/audit.py +0 -0
  58. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/auto_loop.py +0 -0
  59. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/backup.py +0 -0
  60. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/block_log.py +0 -0
  61. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/board_doctor.py +0 -0
  62. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/board_doctor_followthrough.py +0 -0
  63. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/board_doctor_permissions.py +0 -0
  64. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/board_doctor_policy.py +0 -0
  65. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/board_schema.py +0 -0
  66. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/board_service.py +0 -0
  67. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/board_wire.py +0 -0
  68. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/brain.py +0 -0
  69. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/branch_model.py +0 -0
  70. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/briefing_lessons.py +0 -0
  71. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/bug_intake.py +0 -0
  72. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/bugbash.py +0 -0
  73. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/cargo_cache.py +0 -0
  74. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/ci_fix.py +0 -0
  75. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/ci_github.py +0 -0
  76. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/ci_gitlab.py +0 -0
  77. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/ci_store.py +0 -0
  78. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/claim.py +0 -0
  79. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/claude_setup_token.py +0 -0
  80. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/cli.py +0 -0
  81. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/client.py +0 -0
  82. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/codegen.py +0 -0
  83. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/__init__.py +0 -0
  84. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/_common.py +0 -0
  85. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/acceptance.py +0 -0
  86. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/agent_ops.py +0 -0
  87. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/app_drive.py +0 -0
  88. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/audit.py +0 -0
  89. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/backup.py +0 -0
  90. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/bugbash.py +0 -0
  91. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/chat.py +0 -0
  92. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/ci.py +0 -0
  93. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/codegen.py +0 -0
  94. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/dispatch.py +0 -0
  95. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/dispatch_workers.py +0 -0
  96. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/dr.py +0 -0
  97. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/drive.py +0 -0
  98. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/gate_a.py +0 -0
  99. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/gates.py +0 -0
  100. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/issues.py +0 -0
  101. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/lifecycle.py +0 -0
  102. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/machine.py +0 -0
  103. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/merge.py +0 -0
  104. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/milestone.py +0 -0
  105. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/plan_followup.py +0 -0
  106. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/plans.py +0 -0
  107. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/portal.py +0 -0
  108. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/pr.py +0 -0
  109. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/release.py +0 -0
  110. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/repo.py +0 -0
  111. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/report.py +0 -0
  112. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/review.py +0 -0
  113. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/scorecard.py +0 -0
  114. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/sessions.py +0 -0
  115. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/setup.py +0 -0
  116. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/smoke.py +0 -0
  117. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/status.py +0 -0
  118. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/store_migrate.py +0 -0
  119. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/terminal.py +0 -0
  120. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/test_gate.py +0 -0
  121. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/tui.py +0 -0
  122. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/comments.py +0 -0
  123. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/config.py +0 -0
  124. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/config_reload.py +0 -0
  125. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/confirm_test.py +0 -0
  126. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/conflict_fix.py +0 -0
  127. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/dao.py +0 -0
  128. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/dashboard/__init__.py +0 -0
  129. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/dashboard/fixture.py +0 -0
  130. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/dashboard/index.html +0 -0
  131. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/dashboard/reports.html +0 -0
  132. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/dashboard/server.py +0 -0
  133. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/dashboard/terminal.py +0 -0
  134. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/db.py +0 -0
  135. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/dead_end.py +0 -0
  136. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/README.md +0 -0
  137. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-agent.service +0 -0
  138. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-backup.service +0 -0
  139. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-backup.timer +0 -0
  140. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-board-doctor.service +0 -0
  141. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-board-doctor.timer +0 -0
  142. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-db-backup.service +0 -0
  143. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-db-backup.sh +0 -0
  144. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-db-backup.timer +0 -0
  145. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-dr-verify.service +0 -0
  146. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-dr-verify.timer +0 -0
  147. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-drive-queue.service +0 -0
  148. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-drive-queue.timer +0 -0
  149. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-failure-notify.service +0 -0
  150. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-fleet-watchdog.service +0 -0
  151. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-fleet-watchdog.timer +0 -0
  152. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-nightly-smoke.service +0 -0
  153. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-nightly-smoke.timer +0 -0
  154. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-notify.service +0 -0
  155. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-notify.timer +0 -0
  156. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-release-propagate.service +0 -0
  157. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-release-propagate.timer +0 -0
  158. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-release-window.service +0 -0
  159. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-release-window.timer +0 -0
  160. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-serve.service +0 -0
  161. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-web-dist-build.service +0 -0
  162. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-web-dist-build.timer +0 -0
  163. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-web.service +0 -0
  164. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy_manifest.py +0 -0
  165. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy_units.py +0 -0
  166. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deprecation_telemetry.py +0 -0
  167. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deps.py +0 -0
  168. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/diagnose.py +0 -0
  169. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/dirlink.py +0 -0
  170. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/dispatch_liveness.py +0 -0
  171. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/dist_name.py +0 -0
  172. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/dr_promote.py +0 -0
  173. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/dr_verify.py +0 -0
  174. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/drive.py +0 -0
  175. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/drive_sessions_snapshot.py +0 -0
  176. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/drive_state.py +0 -0
  177. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/entry_truth.py +0 -0
  178. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/events.py +0 -0
  179. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/failure_class.py +0 -0
  180. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/failure_classifier.py +0 -0
  181. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/filelock.py +0 -0
  182. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/fleet_config_health.py +0 -0
  183. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/forge_availability.py +0 -0
  184. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/freshness.py +0 -0
  185. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/gate_a.py +0 -0
  186. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/gate_b.py +0 -0
  187. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/gate_snapshot.py +0 -0
  188. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/gates.py +0 -0
  189. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/gen_board_fixture.py +0 -0
  190. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/github_ops.py +0 -0
  191. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/github_throttle.py +0 -0
  192. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/goal.py +0 -0
  193. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/graph_health.py +0 -0
  194. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/gtk_native_driver.py +0 -0
  195. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/__init__.py +0 -0
  196. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/aggregate.py +0 -0
  197. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/__init__.py +0 -0
  198. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/_ci_pin.py +0 -0
  199. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/agent_install.py +0 -0
  200. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/cargo_targets.py +0 -0
  201. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/claude_binary.py +0 -0
  202. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/config_drift.py +0 -0
  203. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/coord_tui_ci_pin.py +0 -0
  204. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/coord_web_ci_pin.py +0 -0
  205. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/deploy_lane_facts.py +0 -0
  206. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/disk.py +0 -0
  207. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/fleet_board.py +0 -0
  208. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/fleet_deploy_lanes.py +0 -0
  209. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/fleet_phantom.py +0 -0
  210. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/fleet_unit_drift.py +0 -0
  211. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/graph.py +0 -0
  212. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/graphify_cli.py +0 -0
  213. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/gui_lane_preflight.py +0 -0
  214. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/index_lock.py +0 -0
  215. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/issues_sync_staleness.py +0 -0
  216. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/local_machine_identity.py +0 -0
  217. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/plan_usage.py +0 -0
  218. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/pr_churn.py +0 -0
  219. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/release_cordon.py +0 -0
  220. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/repo_state.py +0 -0
  221. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/spawned_coord.py +0 -0
  222. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/stalled_pipeline.py +0 -0
  223. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/sustained_cpu.py +0 -0
  224. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/timer_active.py +0 -0
  225. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/toolchain.py +0 -0
  226. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/unit_drift.py +0 -0
  227. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/unit_enablement.py +0 -0
  228. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/wedged_drive_queue.py +0 -0
  229. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/worktrees.py +0 -0
  230. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/cli.py +0 -0
  231. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/context.py +0 -0
  232. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/fleet_snapshot.py +0 -0
  233. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/models.py +0 -0
  234. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/pypi.py +0 -0
  235. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/registry.py +0 -0
  236. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/render.py +0 -0
  237. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/units.py +0 -0
  238. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/hooks.py +0 -0
  239. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/housekeeping.py +0 -0
  240. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/interactive.py +0 -0
  241. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/invariant_alarms.py +0 -0
  242. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/issue_store.py +0 -0
  243. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/issues_sync_status.py +0 -0
  244. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/key_spec.py +0 -0
  245. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/liveness_auditor.py +0 -0
  246. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/mac_native_driver.py +0 -0
  247. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/machine_fault.py +0 -0
  248. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/machine_metrics.py +0 -0
  249. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/machine_onboard.py +0 -0
  250. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/machine_pause.py +0 -0
  251. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/machine_stats.py +0 -0
  252. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/milestone_chat.py +0 -0
  253. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/milestone_dispatch.py +0 -0
  254. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/milestone_gate.py +0 -0
  255. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/milestone_order.py +0 -0
  256. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/mock_author.py +0 -0
  257. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/native_fs_wait.py +0 -0
  258. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/native_pixels.py +0 -0
  259. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/network.py +0 -0
  260. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/new_issue_chat.py +0 -0
  261. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/nightly_runner.py +0 -0
  262. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/nightly_smoke.py +0 -0
  263. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/nightly_status.py +0 -0
  264. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/nightly_store.py +0 -0
  265. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/notifier/__init__.py +0 -0
  266. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/notifier/baseline.py +0 -0
  267. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/notifier/cli.py +0 -0
  268. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/notifier/collect.py +0 -0
  269. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/notifier/digest.py +0 -0
  270. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/notifier/models.py +0 -0
  271. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/notifier/predicate.py +0 -0
  272. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/notifier/service.py +0 -0
  273. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/notifier/store.py +0 -0
  274. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/notifier/transport.py +0 -0
  275. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/openapi.py +0 -0
  276. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/overlap_fence.py +0 -0
  277. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/overlap_predict.py +0 -0
  278. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/parentage.py +0 -0
  279. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/parentage_github.py +0 -0
  280. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/pipeline.py +0 -0
  281. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/plan_parser.py +0 -0
  282. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/plans.py +0 -0
  283. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/platform_paths.py +0 -0
  284. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/portal_bridge.py +0 -0
  285. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/portal_store.py +0 -0
  286. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/portal_sync.py +0 -0
  287. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/pr_body_lint.py +0 -0
  288. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/preflight_size.py +0 -0
  289. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/prereqs.py +0 -0
  290. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/prereview_gate.py +0 -0
  291. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/progress.py +0 -0
  292. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/providers/__init__.py +0 -0
  293. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/providers/base.py +0 -0
  294. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/providers/claude.py +0 -0
  295. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/providers/claude_pty.py +0 -0
  296. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/providers/opencode.py +0 -0
  297. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/queue_diagnose.py +0 -0
  298. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/reconcile.py +0 -0
  299. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/reconcile_tick.py +0 -0
  300. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/refine_chat.py +0 -0
  301. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/release_cordon.py +0 -0
  302. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/release_gate.py +0 -0
  303. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/release_propagate.py +0 -0
  304. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/release_verify.py +0 -0
  305. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/release_window.py +0 -0
  306. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/repo_dormancy.py +0 -0
  307. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/repo_edit.py +0 -0
  308. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/repo_onboard.py +0 -0
  309. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/reports.py +0 -0
  310. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/rest_schema.py +0 -0
  311. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/restart_cmd.py +0 -0
  312. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/revalidate.py +0 -0
  313. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/scorecard.py +0 -0
  314. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/self_health.py +0 -0
  315. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/serve_app.py +0 -0
  316. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/shell_exec_wrap.py +0 -0
  317. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/skills/coord-dispatch-verbs/SKILL.md +0 -0
  318. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/skills/drive-queue-preflight/SKILL.md +0 -0
  319. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/skills/fleet-restart-safety/SKILL.md +0 -0
  320. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/skills/merge-stuck-triage/SKILL.md +0 -0
  321. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/skills/pipeline-limbo-triage/SKILL.md +0 -0
  322. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/skills/portal-followup/SKILL.md +0 -0
  323. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/skills/release-now/SKILL.md +0 -0
  324. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/skills/review-verdict-recovery/SKILL.md +0 -0
  325. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/skills/tui-quadraui-workflow/SKILL.md +0 -0
  326. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/skills/update-issue/SKILL.md +0 -0
  327. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/smoke.py +0 -0
  328. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/smoke_tags.py +0 -0
  329. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/spend_ceiling.py +0 -0
  330. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/split_work.py +0 -0
  331. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/sql.py +0 -0
  332. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/stage_projection.py +0 -0
  333. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/state.py +0 -0
  334. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/store_migrate.py +0 -0
  335. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/store_parity.py +0 -0
  336. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/templates/deploy-cloudflare.node.yml +0 -0
  337. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/test_author.py +0 -0
  338. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/test_chat.py +0 -0
  339. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/test_orchestrator.py +0 -0
  340. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/test_report.py +0 -0
  341. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/tui_pty_driver.py +0 -0
  342. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/tui_release.py +0 -0
  343. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/uat_checks.py +0 -0
  344. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/upstream_gaps.py +0 -0
  345. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/usage.py +0 -0
  346. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/usage_limits.py +0 -0
  347. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/usage_rollup.py +0 -0
  348. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/win_native_bridge.py +0 -0
  349. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/win_native_driver.py +0 -0
  350. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/worker_events.py +0 -0
  351. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coordinator.example.yml +0 -0
  352. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-agent.service +0 -0
  353. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-backup.service +0 -0
  354. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-backup.timer +0 -0
  355. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-board-doctor.service +0 -0
  356. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-board-doctor.timer +0 -0
  357. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-db-backup.service +0 -0
  358. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-db-backup.sh +0 -0
  359. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-db-backup.timer +0 -0
  360. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-dr-verify.service +0 -0
  361. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-dr-verify.timer +0 -0
  362. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-drive-queue.service +0 -0
  363. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-drive-queue.timer +0 -0
  364. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-failure-notify.service +0 -0
  365. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-failure-notify.sh +0 -0
  366. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-fleet-watchdog.service +0 -0
  367. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-fleet-watchdog.timer +0 -0
  368. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-nightly-smoke.service +0 -0
  369. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-nightly-smoke.timer +0 -0
  370. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-notify.service +0 -0
  371. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-notify.timer +0 -0
  372. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-release-propagate.service +0 -0
  373. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-release-propagate.timer +0 -0
  374. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-release-window.service +0 -0
  375. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-release-window.timer +0 -0
  376. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-serve.service +0 -0
  377. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-web-dist-build.service +0 -0
  378. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-web-dist-build.sh +0 -0
  379. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-web-dist-build.timer +0 -0
  380. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-web-rollback.sh +0 -0
  381. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-web.service +0 -0
  382. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/node-shim.sh +0 -0
  383. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/ADR_COORD_TUI_CI.md +0 -0
  384. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/ADR_COORD_WEB_ACCEPTANCE_SUITE.md +0 -0
  385. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/ADR_COORD_WEB_CI.md +0 -0
  386. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/ADR_COORD_WEB_DIST.md +0 -0
  387. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/ADR_PY_RUST_MIRRORS.md +0 -0
  388. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/AGENT_OPERATIONS.md +0 -0
  389. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/ARCHITECTURE.md +0 -0
  390. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/ARCH_SECURITY_GATES.md +0 -0
  391. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/COCKPIT.md +0 -0
  392. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/CONTROL_CENTER.md +0 -0
  393. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/COST_DISCIPLINE.md +0 -0
  394. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/CROSS_PLATFORM.md +0 -0
  395. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/CUSTOMER_FACING_APPS.md +0 -0
  396. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/CUSTOMER_PORTAL.md +0 -0
  397. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/DATA_STORE_SELECTION.md +0 -0
  398. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/DISASTER_RECOVERY.md +0 -0
  399. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/DRIVE_QUEUE.md +0 -0
  400. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/EPHEMERAL_WORKERS.md +0 -0
  401. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/FORGE_MIGRATION.md +0 -0
  402. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/GRAPHIFY_SETUP.md +0 -0
  403. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/ISSUE_GUIDANCE.md +0 -0
  404. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/MAC_MINI.md +0 -0
  405. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
  406. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/NOTIFIER.md +0 -0
  407. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/OPENCODE_VERIFICATION.md +0 -0
  408. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/OPERATING_GOTCHAS.md +0 -0
  409. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/OPERATOR_GUIDES.md +0 -0
  410. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/ORACLE_LOOP.md +0 -0
  411. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/PHONE_WEBAPP.md +0 -0
  412. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/PIPELINE_V2.md +0 -0
  413. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/PLATFORM_EVOLUTION.md +0 -0
  414. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/SECOND_BACKEND.md +0 -0
  415. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/STORE_SERVICE.md +0 -0
  416. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/TEST_FIRST_BUG_LANE.md +0 -0
  417. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/WEB_CONTROL_CENTER.md +0 -0
  418. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/WSL_WINDOWS_WORKER.md +0 -0
  419. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/mocks/web/README.md +0 -0
  420. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/mocks/web/_tokens.css +0 -0
  421. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/mocks/web/issue-detail.html +0 -0
  422. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/mocks/web/pipeline-narrow.html +0 -0
  423. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/mocks/web/pipeline-wide.html +0 -0
  424. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/graphify-out/.gitignore +0 -0
  425. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/install-agent.sh +0 -0
  426. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/pyproject.toml +0 -0
  427. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/audit_review_verdict_overrides.py +0 -0
  428. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/azure-workers/bootstrap-shared.sh +0 -0
  429. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/azure-workers/build-worker-image.sh +0 -0
  430. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/azure-workers/coordinator-machine.py +0 -0
  431. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/azure-workers/dr-down.sh +0 -0
  432. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/azure-workers/dr-up.sh +0 -0
  433. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/azure-workers/epic-down.sh +0 -0
  434. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/azure-workers/epic-up.sh +0 -0
  435. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/azure-workers/preflight.sh +0 -0
  436. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/azure-workers/provision-server.sh +0 -0
  437. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/azure-workers/provision-worker.sh +0 -0
  438. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
  439. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/azure-workers/tailnet-acl.hujson +0 -0
  440. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/azure-workers/throwaway-vm.sh +0 -0
  441. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/azure-workers/verify-github-token.sh +0 -0
  442. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/check_gh_argv_containment.py +0 -0
  443. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/codegen.py +0 -0
  444. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/comment_cruft.py +0 -0
  445. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/coord-test-runner.sh +0 -0
  446. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/coord-tui-scaffold/.github/coord-ci-acceptance.yml +0 -0
  447. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/coord-tui-scaffold/.github/workflows/cargo-test.yml +0 -0
  448. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/coord-tui-scaffold/.github/workflows/codegen-drift.yml +0 -0
  449. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/coord-tui-scaffold/CLAUDE.md +0 -0
  450. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/coord-venv-rollback.sh +0 -0
  451. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/drive-batch.sh +0 -0
  452. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/extract-coord-tui.sh +0 -0
  453. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/fleet_watchdog.py +0 -0
  454. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/gen_board_fixture.py +0 -0
  455. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/gen_mock_index.py +0 -0
  456. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/lib/provision-core.sh +0 -0
  457. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/next_release_tag.py +0 -0
  458. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/provision-machine.sh +0 -0
  459. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/run_tests_in_populated_home.sh +0 -0
  460. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/run_tests_without_gh.sh +0 -0
  461. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/setup-macmini.sh +0 -0
  462. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/smoke_437_interactive.py +0 -0
  463. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/verify-provision-noble.sh +0 -0
  464. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/verify_878_review_capture.py +0 -0
  465. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/verify_release_published.py +0 -0
  466. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/verify_release_wheel.py +0 -0
  467. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/setup.cfg +0 -0
  468. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/SMOKE_SET.md +0 -0
  469. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/__init__.py +0 -0
  470. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/acceptance/ms-37/conftest.py +0 -0
  471. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/acceptance/ms-37/contract.md +0 -0
  472. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/acceptance/ms-37/manifest.yml +0 -0
  473. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
  474. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
  475. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/acceptance/ms-51/contract.md +0 -0
  476. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
  477. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
  478. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/acceptance/ms-51/manifest.yml +0 -0
  479. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
  480. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/acceptance/ms-51/tsconfig.json +0 -0
  481. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
  482. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/backends.py +0 -0
  483. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/conftest.py +0 -0
  484. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/board-pipeline-basic.json +0 -0
  485. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
  486. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
  487. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
  488. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/opencode_run_sample.jsonl +0 -0
  489. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/playwright/all_pass.json +0 -0
  490. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/playwright/global_setup_crash.json +0 -0
  491. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/playwright/mixed_fail.json +0 -0
  492. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/playwright/retry_then_pass.json +0 -0
  493. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
  494. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/playwright/skip.json +0 -0
  495. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/playwright/truncated.json +0 -0
  496. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
  497. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
  498. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
  499. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
  500. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/test_report/pytest_error_log_record.txt +0 -0
  501. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
  502. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
  503. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
  504. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
  505. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_acceptance.py +0 -0
  506. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_acceptance_drivers.py +0 -0
  507. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent.py +0 -0
  508. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_api_error.py +0 -0
  509. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_app.py +0 -0
  510. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_branch_base.py +0 -0
  511. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_branch_capture.py +0 -0
  512. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_config_free_1712.py +0 -0
  513. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_deploy_units_endpoint.py +0 -0
  514. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_dirty_worktree.py +0 -0
  515. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_drive_queue_reconcile_2373.py +0 -0
  516. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_graceful_shutdown_3649.py +0 -0
  517. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_graph_refresh.py +0 -0
  518. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_graph_self_heal.py +0 -0
  519. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_health_h3.py +0 -0
  520. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_idle_restart.py +0 -0
  521. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_push_failure.py +0 -0
  522. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_reap.py +0 -0
  523. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_repos_and_pull.py +0 -0
  524. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_restart_services_endpoint.py +0 -0
  525. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_skills_self_heal.py +0 -0
  526. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_startup_diagnostics.py +0 -0
  527. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_update.py +0 -0
  528. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_update_bluegreen.py +0 -0
  529. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_usage_limit.py +0 -0
  530. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_zero_commit.py +0 -0
  531. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_ambient_home_isolation.py +0 -0
  532. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_app_drive.py +0 -0
  533. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_approve_capability_reroute_3241.py +0 -0
  534. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_approve_dependency_busy_2804.py +0 -0
  535. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_approve_reject_plan.py +0 -0
  536. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_approve_usage_gate.py +0 -0
  537. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_approved_work_2532.py +0 -0
  538. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_approved_work_2996.py +0 -0
  539. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_assignment_already_recorded_daemon.py +0 -0
  540. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_audit_log.py +0 -0
  541. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_audit_outcome.py +0 -0
  542. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_audit_query.py +0 -0
  543. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_auto_loop.py +0 -0
  544. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_auto_release_publish_2035.py +0 -0
  545. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_backend_selection.py +0 -0
  546. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_backup.py +0 -0
  547. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_base_checkout_restore.py +0 -0
  548. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_block_log.py +0 -0
  549. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_board_cap_762.py +0 -0
  550. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_board_doctor.py +0 -0
  551. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_board_doctor_followthrough.py +0 -0
  552. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_board_doctor_permissions.py +0 -0
  553. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_board_doctor_policy.py +0 -0
  554. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_board_fixture.py +0 -0
  555. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_board_nightly_status.py +0 -0
  556. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_board_read_path.py +0 -0
  557. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_board_schema.py +0 -0
  558. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_board_service.py +0 -0
  559. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_board_state.py +0 -0
  560. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_board_wire.py +0 -0
  561. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_brain.py +0 -0
  562. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_branch_model.py +0 -0
  563. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_briefing_lessons.py +0 -0
  564. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_bug_intake.py +0 -0
  565. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_bugbash.py +0 -0
  566. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_build_worker_image_env_update.py +0 -0
  567. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cargo_cache.py +0 -0
  568. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_check_gh_argv_containment.py +0 -0
  569. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_ci_acceptance_gate_1950.py +0 -0
  570. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_ci_fix.py +0 -0
  571. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_ci_github.py +0 -0
  572. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_ci_gitlab.py +0 -0
  573. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_ci_parity_2091.py +0 -0
  574. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_ci_store.py +0 -0
  575. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_claim.py +0 -0
  576. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_claude_md_budget.py +0 -0
  577. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_claude_setup_token.py +0 -0
  578. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_acceptance.py +0 -0
  579. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_assign.py +0 -0
  580. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
  581. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_assign_interactive_remote.py +0 -0
  582. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_assign_provider.py +0 -0
  583. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_assign_repo_drift_2219.py +0 -0
  584. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_audit.py +0 -0
  585. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_chat_continue.py +0 -0
  586. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_ci.py +0 -0
  587. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_codegen.py +0 -0
  588. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_decide.py +0 -0
  589. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_diagnose_capability_rules.py +0 -0
  590. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_diagnose_config_provenance.py +0 -0
  591. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_diagnose_forge_availability.py +0 -0
  592. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_diagnose_graph.py +0 -0
  593. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_diagnose_self.py +0 -0
  594. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_diagnose_test_coverage.py +0 -0
  595. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_doctor.py +0 -0
  596. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_doctor_config_free_1801.py +0 -0
  597. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
  598. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_doctor_store_backend_3084.py +0 -0
  599. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_drive.py +0 -0
  600. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_drive_queue_investigate.py +0 -0
  601. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_drive_queue_stranded_prereq.py +0 -0
  602. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_escalate.py +0 -0
  603. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_fix_headless_review.py +0 -0
  604. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_gate_a.py +0 -0
  605. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_gates_next_action.py +0 -0
  606. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_inject_board_less.py +0 -0
  607. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_install_drift.py +0 -0
  608. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_install_skills.py +0 -0
  609. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_issue_close_wrong_repo.py +0 -0
  610. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_issue_comment.py +0 -0
  611. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_issue_create_label.py +0 -0
  612. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_issue_reopen.py +0 -0
  613. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_issue_view_list.py +0 -0
  614. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_issues.py +0 -0
  615. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_merge.py +0 -0
  616. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_milestone_assign.py +0 -0
  617. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_milestone_capture.py +0 -0
  618. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_milestone_chat_add_child.py +0 -0
  619. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_milestone_dispatch.py +0 -0
  620. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_milestone_gate_b.py +0 -0
  621. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_milestone_gate_c.py +0 -0
  622. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_milestone_order.py +0 -0
  623. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
  624. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_milestone_ship.py +0 -0
  625. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_network.py +0 -0
  626. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_new_issue_chat.py +0 -0
  627. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_plans.py +0 -0
  628. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_portal.py +0 -0
  629. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_pr.py +0 -0
  630. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_pull_artifact.py +0 -0
  631. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_queue.py +0 -0
  632. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_reattach_sessions.py +0 -0
  633. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_refine_board.py +0 -0
  634. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_release_preflight.py +0 -0
  635. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_release_propagate.py +0 -0
  636. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_release_window.py +0 -0
  637. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_repo_2220.py +0 -0
  638. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_review_test_author_tracking_epic_2639.py +0 -0
  639. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_scorecard.py +0 -0
  640. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_serve_store_backend_3084.py +0 -0
  641. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_set_review_findings.py +0 -0
  642. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_smoke_nightly.py +0 -0
  643. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_smoke_nightly_sweep.py +0 -0
  644. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_status_advisory_terminal.py +0 -0
  645. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_status_contested_tag.py +0 -0
  646. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_status_invariant_alarms.py +0 -0
  647. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_status_machine_fault.py +0 -0
  648. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_status_merge_queue.py +0 -0
  649. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_status_nightly.py +0 -0
  650. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_status_provider.py +0 -0
  651. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_status_retried_3340.py +0 -0
  652. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_status_review_finalizing.py +0 -0
  653. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_status_supervisor_3366.py +0 -0
  654. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_status_test_failed_tag.py +0 -0
  655. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_status_usage_limit.py +0 -0
  656. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_sync_comments_873.py +0 -0
  657. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_test_plan.py +0 -0
  658. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_track.py +0 -0
  659. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_tui_update.py +0 -0
  660. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_wait.py +0 -0
  661. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_client.py +0 -0
  662. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_client_base_install.py +0 -0
  663. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_client_config_cache_atomic_3052.py +0 -0
  664. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_client_resource_migration_1946.py +0 -0
  665. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_commands_common.py +0 -0
  666. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_comment_cruft.py +0 -0
  667. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_comments.py +0 -0
  668. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_completion_summary.py +0 -0
  669. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_config.py +0 -0
  670. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_config_acceptance.py +0 -0
  671. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_config_audit.py +0 -0
  672. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_config_drift_check.py +0 -0
  673. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_config_effective.py +0 -0
  674. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_config_prereview_gate.py +0 -0
  675. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_config_pricing.py +0 -0
  676. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
  677. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_config_usage_gate.py +0 -0
  678. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_confirm_test.py +0 -0
  679. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_conflict_fix.py +0 -0
  680. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_conflict_fix_semantic.py +0 -0
  681. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_coord_log_daemon_fallback_2547.py +0 -0
  682. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_coord_test.py +0 -0
  683. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_coord_test_runner_acceptance_toolchain_2936.py +0 -0
  684. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_coord_test_runner_baseline.py +0 -0
  685. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_coord_test_runner_populated_home.py +0 -0
  686. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_coord_test_runner_routing.py +0 -0
  687. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_coord_test_runner_toolchain.py +0 -0
  688. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_coord_test_runner_venv_setup.py +0 -0
  689. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_coord_uat.py +0 -0
  690. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_coord_web_sse_restart_live.py +0 -0
  691. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_coordinator_machine.py +0 -0
  692. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cross_platform_imports.py +0 -0
  693. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dao.py +0 -0
  694. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dashboard.py +0 -0
  695. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dashboard_api.py +0 -0
  696. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dashboard_fixture.py +0 -0
  697. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dashboard_reports.py +0 -0
  698. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dashboard_server.py +0 -0
  699. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dashboard_terminal.py +0 -0
  700. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dashboard_terminal_live.py +0 -0
  701. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_db.py +0 -0
  702. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dead_end.py +0 -0
  703. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_deploy_coord_db_backup.py +0 -0
  704. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_deploy_coord_web_dist.py +0 -0
  705. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_deploy_coord_web_rollback.py +0 -0
  706. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_deploy_db_backup_unit.py +0 -0
  707. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_deploy_drive_queue_unit.py +0 -0
  708. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_deploy_failure_notify_unit.py +0 -0
  709. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_deploy_manifest.py +0 -0
  710. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_deploy_notify_unit.py +0 -0
  711. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_deploy_units_lane.py +0 -0
  712. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_deploy_web_unit.py +0 -0
  713. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_deprecation_telemetry.py +0 -0
  714. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_deps.py +0 -0
  715. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_diagnose.py +0 -0
  716. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dirlink.py +0 -0
  717. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dispatch_liveness.py +0 -0
  718. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dispatch_target_validation.py +0 -0
  719. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dispatch_workers.py +0 -0
  720. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dist_name.py +0 -0
  721. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_done_housekeeping.py +0 -0
  722. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dr_azure_scripts.py +0 -0
  723. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dr_promote.py +0 -0
  724. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dr_verify.py +0 -0
  725. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_drive.py +0 -0
  726. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_drive_machine_fault.py +0 -0
  727. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_drive_queue_blocked_rendering.py +0 -0
  728. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_drive_queue_launch_argv.py +0 -0
  729. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_drive_queue_max_parallel_config.py +0 -0
  730. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_drive_queue_max_parallel_per_repo_config.py +0 -0
  731. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_drive_queue_roll_pending.py +0 -0
  732. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_drive_queue_self_cordon_escalation.py +0 -0
  733. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_drive_sessions_snapshot.py +0 -0
  734. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_drive_state.py +0 -0
  735. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_drive_tmux.py +0 -0
  736. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_entry_truth.py +0 -0
  737. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_epic_up_capability_detection.py +0 -0
  738. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
  739. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_epic_up_image_provenance.py +0 -0
  740. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_errors.py +0 -0
  741. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_events.py +0 -0
  742. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_failure_class.py +0 -0
  743. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_failure_classifier.py +0 -0
  744. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_filelock.py +0 -0
  745. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
  746. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_fix_escalation_classifier.py +0 -0
  747. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_fix_of_force_override.py +0 -0
  748. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_fleet_config_health.py +0 -0
  749. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_fleet_health_probes.py +0 -0
  750. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_fleet_health_snapshot.py +0 -0
  751. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_fleet_watchdog.py +0 -0
  752. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_forge_availability.py +0 -0
  753. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_freshness.py +0 -0
  754. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_gate_a.py +0 -0
  755. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_gate_b.py +0 -0
  756. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_gate_snapshot_staleness.py +0 -0
  757. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_gates.py +0 -0
  758. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_gather_fleet_tmux_sessions.py +0 -0
  759. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_gen_mock_index.py +0 -0
  760. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_generated_rust_fixture.py +0 -0
  761. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_generated_rust_requests.py +0 -0
  762. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_generated_types_fixture.py +0 -0
  763. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_github_ops.py +0 -0
  764. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_github_throttle.py +0 -0
  765. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_goal.py +0 -0
  766. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_graph_health.py +0 -0
  767. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_graph_selfheal_absent_2237.py +0 -0
  768. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_gtk_native_driver.py +0 -0
  769. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_handoff.py +0 -0
  770. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_checks.py +0 -0
  771. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_cli.py +0 -0
  772. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_cli_graph.py +0 -0
  773. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_config.py +0 -0
  774. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_context.py +0 -0
  775. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_coord_tui_ci_pin.py +0 -0
  776. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_coord_web_ci_pin.py +0 -0
  777. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_deploy_lane_facts.py +0 -0
  778. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_fix.py +0 -0
  779. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_incident_regression.py +0 -0
  780. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_issues_sync_staleness.py +0 -0
  781. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_pr_churn.py +0 -0
  782. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_pypi.py +0 -0
  783. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_registry.py +0 -0
  784. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_release_cordon_probe.py +0 -0
  785. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_sustained_cpu.py +0 -0
  786. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_timer_active.py +0 -0
  787. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_toolchain.py +0 -0
  788. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_unit_drift.py +0 -0
  789. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_unit_enablement.py +0 -0
  790. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_wedged_drive_queue.py +0 -0
  791. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_hooks.py +0 -0
  792. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_housekeeping.py +0 -0
  793. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_human_attended_437.py +0 -0
  794. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_init.py +0 -0
  795. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_install_agent_capabilities_3515.py +0 -0
  796. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_install_agent_venv_2911.py +0 -0
  797. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_install_agent_wsl_bridge_3515.py +0 -0
  798. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_integration.py +0 -0
  799. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_interactive.py +0 -0
  800. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_interactive_briefing_echo.py +0 -0
  801. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_interactive_pane_log_2541.py +0 -0
  802. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_interactive_prefill_state.py +0 -0
  803. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_interactive_session_relaunch.py +0 -0
  804. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_interactive_test_verdict_backstop.py +0 -0
  805. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_interactive_token_attribution.py +0 -0
  806. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_interactive_worktree.py +0 -0
  807. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_invariant_alarms.py +0 -0
  808. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_issue_store_seam.py +0 -0
  809. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_issues_sync_status.py +0 -0
  810. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_key_spec.py +0 -0
  811. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_liveness_auditor.py +0 -0
  812. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_liveness_notify.py +0 -0
  813. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_lock_contention_ratchet.py +0 -0
  814. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_mac_native_driver.py +0 -0
  815. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_machine_fault.py +0 -0
  816. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_machine_metrics.py +0 -0
  817. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_machine_onboard.py +0 -0
  818. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_machine_pause.py +0 -0
  819. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_machine_stats.py +0 -0
  820. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_merge_verification.py +0 -0
  821. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_merge_verify.py +0 -0
  822. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_milestone_chat.py +0 -0
  823. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_milestone_dispatch.py +0 -0
  824. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_milestone_gate.py +0 -0
  825. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_milestone_order.py +0 -0
  826. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_milestone_seam.py +0 -0
  827. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_mock_author.py +0 -0
  828. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_model_tiering.py +0 -0
  829. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_models_config_labels.py +0 -0
  830. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_models_pinned_1650.py +0 -0
  831. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_native_fs_wait.py +0 -0
  832. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_native_pixels.py +0 -0
  833. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_needs_attention.py +0 -0
  834. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_network.py +0 -0
  835. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_new_issue_chat.py +0 -0
  836. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_next_release_tag.py +0 -0
  837. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_nightly_runner.py +0 -0
  838. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_nightly_smoke.py +0 -0
  839. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_nightly_status.py +0 -0
  840. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_nightly_store.py +0 -0
  841. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_no_eligible_host_3600.py +0 -0
  842. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_node_shim.py +0 -0
  843. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_notifier_baseline.py +0 -0
  844. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_notifier_cli.py +0 -0
  845. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_notifier_collect.py +0 -0
  846. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_notifier_config.py +0 -0
  847. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_notifier_drive_seam.py +0 -0
  848. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_notifier_isolation.py +0 -0
  849. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_notifier_predicate.py +0 -0
  850. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_notifier_quiet_hours.py +0 -0
  851. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_notifier_service.py +0 -0
  852. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_notify_drain.py +0 -0
  853. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_openapi.py +0 -0
  854. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_operational_defaults.py +0 -0
  855. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_overlap_fence.py +0 -0
  856. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_overlap_predict.py +0 -0
  857. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_packaged_deploy_units.py +0 -0
  858. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_parentage.py +0 -0
  859. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_paste_landed.py +0 -0
  860. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_pause_store_guard_recursion_3789.py +0 -0
  861. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_phantom_heal_venv_independence_2570.py +0 -0
  862. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_pipeline.py +0 -0
  863. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_plain_runner_smoke_3673.py +0 -0
  864. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_plan_followup_approve_plan_command.py +0 -0
  865. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_plan_followup_pr_command.py +0 -0
  866. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_plan_followup_review_command.py +0 -0
  867. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_plan_only.py +0 -0
  868. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_plan_parser.py +0 -0
  869. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_platform_paths.py +0 -0
  870. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_portal_bridge.py +0 -0
  871. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_portal_config.py +0 -0
  872. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_portal_store.py +0 -0
  873. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_portal_sync.py +0 -0
  874. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_pr_body_lint.py +0 -0
  875. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_preflight_size.py +0 -0
  876. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_prereqs.py +0 -0
  877. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_prereview_gate.py +0 -0
  878. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_production_db_guard.py +0 -0
  879. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_progress.py +0 -0
  880. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_provider_seam.py +0 -0
  881. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_providers.py +0 -0
  882. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_providers_config_labels.py +0 -0
  883. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_providers_pty.py +0 -0
  884. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_provision_core.py +0 -0
  885. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_provision_machine.py +0 -0
  886. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_py_rust_mirror_inventory.py +0 -0
  887. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_queue_diagnose.py +0 -0
  888. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_quiet_hours.py +0 -0
  889. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_quiet_hours_store_2146.py +0 -0
  890. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_reap_merged_sessions.py +0 -0
  891. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_reap_stale_interactive_tick.py +0 -0
  892. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_reconcile.py +0 -0
  893. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_reconcile_branch.py +0 -0
  894. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_reconcile_completions.py +0 -0
  895. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_reconcile_late_agent_reports_2547.py +0 -0
  896. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_reconcile_merges.py +0 -0
  897. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_reconcile_no_agent_record.py +0 -0
  898. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_reconcile_tick.py +0 -0
  899. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_reconcile_usage_limit_done.py +0 -0
  900. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_refine_chat.py +0 -0
  901. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_release_cordon_2101.py +0 -0
  902. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
  903. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_release_cordon_deadlock_2240.py +0 -0
  904. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_release_cordon_drain_stall_3336.py +0 -0
  905. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_release_cordon_stuck_2490.py +0 -0
  906. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_release_gate.py +0 -0
  907. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_release_propagate.py +0 -0
  908. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_release_propagate_threshold.py +0 -0
  909. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_release_roll_between_legs_2854.py +0 -0
  910. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_release_roll_window_handoff.py +0 -0
  911. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_release_unified_1242.py +0 -0
  912. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_release_verify.py +0 -0
  913. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_release_window.py +0 -0
  914. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_remote_auto_prune.py +0 -0
  915. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_remote_interactive_reaper.py +0 -0
  916. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_repo_add.py +0 -0
  917. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_repo_dormancy.py +0 -0
  918. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_repo_edit_2220.py +0 -0
  919. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_repo_graph_fleet_2237.py +0 -0
  920. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_repo_max_parallel_3423.py +0 -0
  921. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_repo_onboard_2220.py +0 -0
  922. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_report_public_export.py +0 -0
  923. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_report_result_push.py +0 -0
  924. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_reports.py +0 -0
  925. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_restart_cmd.py +0 -0
  926. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_retry.py +0 -0
  927. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_retry_advisory_1606.py +0 -0
  928. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_retry_escalation_classify_3360.py +0 -0
  929. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_retry_type_1636.py +0 -0
  930. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_revalidate.py +0 -0
  931. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_review_end_review_without_verdict.py +0 -0
  932. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_review_parse_failure_diagnostic.py +0 -0
  933. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_review_reaffirm.py +0 -0
  934. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_review_state.py +0 -0
  935. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_review_verdict_backstop.py +0 -0
  936. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_review_verdict_override_audit.py +0 -0
  937. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_review_verdict_relay.py +0 -0
  938. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_review_zero_commits.py +0 -0
  939. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_scoped_review_wiring.py +0 -0
  940. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_scorecard.py +0 -0
  941. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_self_health.py +0 -0
  942. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_serve.py +0 -0
  943. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_serve_app.py +0 -0
  944. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_serve_app_board_trim.py +0 -0
  945. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_serve_rest_routes.py +0 -0
  946. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_session.py +0 -0
  947. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_slice_issue_attribution.py +0 -0
  948. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_smoke.py +0 -0
  949. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_smoke_fanout_manifest_3333.py +0 -0
  950. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_smoke_live_checkout_restore.py +0 -0
  951. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_smoke_plain_runner_3673.py +0 -0
  952. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_smoke_workflow.py +0 -0
  953. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_spend_ceiling.py +0 -0
  954. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_spend_ceiling_coordinator.py +0 -0
  955. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_split.py +0 -0
  956. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_split_work.py +0 -0
  957. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_sql_dialect.py +0 -0
  958. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_sqlite_connect_ratchet.py +0 -0
  959. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_stage_projection.py +0 -0
  960. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_stale_busy_reviewer_697.py +0 -0
  961. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_stalled_pipeline.py +0 -0
  962. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_state.py +0 -0
  963. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_state_review_findings_daemon.py +0 -0
  964. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_status_fleet_footer.py +0 -0
  965. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_stop_1567.py +0 -0
  966. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_store_contract.py +0 -0
  967. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_store_migrate.py +0 -0
  968. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_stuck.py +0 -0
  969. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_stuck_test_state_watchdog_2803.py +0 -0
  970. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_terminal_command.py +0 -0
  971. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_test_author.py +0 -0
  972. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_test_chat.py +0 -0
  973. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_test_orchestrator.py +0 -0
  974. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_test_report.py +0 -0
  975. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_test_verdict_parsing.py +0 -0
  976. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_test_verdict_transcript_floor.py +0 -0
  977. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_text_io_encoding_audit.py +0 -0
  978. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_thin_client_board_audit.py +0 -0
  979. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_thin_client_config_load_1080.py +0 -0
  980. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_thin_client_daemon_routing_906.py +0 -0
  981. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_throwaway_vm.py +0 -0
  982. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_tmux_host.py +0 -0
  983. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_tmux_session.py +0 -0
  984. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_transcript_floor.py +0 -0
  985. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_tui_pty_driver.py +0 -0
  986. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_uat_checks.py +0 -0
  987. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_upstream_gaps.py +0 -0
  988. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_usage.py +0 -0
  989. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_usage_limits.py +0 -0
  990. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_usage_rollup.py +0 -0
  991. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_venv_live_install_2121.py +0 -0
  992. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_version_single_source.py +0 -0
  993. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_watch.py +0 -0
  994. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_win_native_bridge.py +0 -0
  995. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_win_native_driver.py +0 -0
  996. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
  997. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_worker_env_venv_isolation.py +0 -0
  998. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_worker_events.py +0 -0
  999. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_worker_image_pin_sync.py +0 -0
  1000. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_worker_safety.py +0 -0
  1001. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_worker_test_scoping.py +0 -0
  1002. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_worktree.py +0 -0
  1003. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_worktree_rmtree_chokepoint.py +0 -0
  1004. {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_write_parity.py +0 -0
  1005. {code_coordinator-0.5.752 → 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.752
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.752
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.752",
2
+ "tag": "0.5.754",
3
3
  "distance": 0,
4
- "node": "gcb520527ad750980a976586bc764514ea7ee5eff",
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
@@ -7798,14 +7798,72 @@ def _work_assignment_for_entry(entry: QueuedMerge, board) -> Assignment | None:
7798
7798
  return None
7799
7799
 
7800
7800
 
7801
+ def _review_chain_for_entry(entry: QueuedMerge, board) -> list[Assignment]:
7802
+ """Every ``type="review"`` :class:`Assignment` covering *entry*'s work
7803
+ chain (:func:`_chain_work_ids`), oldest first.
7804
+
7805
+ A scoped re-review (#1476/#3161) carries the SAME
7806
+ ``review_of_assignment_id`` as the round it supersedes (see
7807
+ :func:`coord.review.dispatch_scoped_review`'s docstring) rather than
7808
+ chaining to the previous review row, so there is no parent/child link
7809
+ between successive review rounds to walk — only ``dispatched_at`` order
7810
+ distinguishes "this round" from "the one before it". Used by
7811
+ :func:`_issue_resolution_for_entry` (#3966) to fold EVERY round's own
7812
+ `ISSUE_RESOLUTION:` judgment forward, not just the one that ended up
7813
+ approving.
7814
+ """
7815
+ if board is None:
7816
+ return []
7817
+ pool = list(getattr(board, "completed", []) or []) + list(getattr(board, "active", []) or [])
7818
+ branch_work_ids = _chain_work_ids(entry, pool)
7819
+ if not branch_work_ids:
7820
+ return []
7821
+ reviews = [
7822
+ a for a in pool
7823
+ if getattr(a, "type", None) == "review"
7824
+ and getattr(a, "review_of_assignment_id", None) in branch_work_ids
7825
+ ]
7826
+ reviews.sort(key=lambda a: getattr(a, "dispatched_at", None) or 0.0)
7827
+ return reviews
7828
+
7829
+
7801
7830
  def _issue_resolution_for_entry(
7802
7831
  entry: QueuedMerge, board, gh_ops: "GhOps | None" = None, config=None,
7803
7832
  ) -> IssueResolution:
7804
- """(#3502) The EFFECTIVE `ISSUE_RESOLUTION:` verdict for *entry* — the
7805
- worker's own judgment (its `completion_summary`), folded with the
7806
- approving reviewer's judgment (when one exists), reviewer winning any
7807
- disagreement that makes it MORE cautious, never less
7808
- (:func:`coord.models.effective_issue_resolution`).
7833
+ """(#3502, widened by #3966) The EFFECTIVE `ISSUE_RESOLUTION:` verdict
7834
+ for *entry*, computed in two stages so the settled #3502 "never the
7835
+ reverse" guarantee (a REVIEWER can never silently downgrade the
7836
+ WORKER's own `partial`/`investigation` self-report back to "resolved")
7837
+ stays intact while also fixing #3966 (a scoped re-review that drops a
7838
+ PRIOR REVIEW ROUND's `partial`):
7839
+
7840
+ 1. Fold every review round's own judgment together, chronologically,
7841
+ among THEMSELVES. Each fold normally wins any disagreement that
7842
+ makes it MORE cautious, never less
7843
+ (:func:`coord.models.effective_issue_resolution`) — UNLESS a later
7844
+ round's judgment is an EXPLICIT `ISSUE_RESOLUTION: resolved` (its
7845
+ ``explicit`` bit set, meaning that reviewer actually wrote the
7846
+ marker rather than leaving it out), in which case that later,
7847
+ independent opinion wins outright and clears whatever an earlier
7848
+ round accumulated. A round that states no `ISSUE_RESOLUTION:` line
7849
+ of its own parses to the same "resolved" VALUE but with
7850
+ ``explicit=False``, indistinguishable from silence, so it can never
7851
+ drop a prior round's `partial`/`investigation` — only an explicit
7852
+ restatement can.
7853
+ 2. Combine that folded reviewer verdict with the WORKER's own judgment
7854
+ (its `completion_summary`) exactly once, via the same
7855
+ :func:`coord.models.effective_issue_resolution` — which is where
7856
+ "never the reverse" actually lives: even an explicit, unanimous
7857
+ "resolved" from every review round can never undo the worker's own
7858
+ `partial`/`investigation` admission.
7859
+
7860
+ Folds the WHOLE review chain, not just the rounds up to the one that
7861
+ happened to approve: `scan_approved_reviews` can pick an arbitrary
7862
+ approving round among several with no recorded `review_patch_id`
7863
+ (pre-#821 rows), and truncating there risked silently dropping a
7864
+ LATER round's more-cautious judgment. Since the fold is monotonically
7865
+ cautious except for the explicit-"resolved" escape hatch above,
7866
+ folding everything is strictly safer than guessing a cutoff.
7809
7867
 
7810
7868
  Both halves degrade gracefully to "resolved" (today's unconditional
7811
7869
  behaviour) when unavailable:
@@ -7813,11 +7871,14 @@ def _issue_resolution_for_entry(
7813
7871
  * *board* is ``None``, or the originating `work` assignment can't be
7814
7872
  found on it (:func:`_work_assignment_for_entry`) — no worker claim to
7815
7873
  read.
7816
- * No approving review is found (:func:`scan_approved_reviews`), or its
7817
- findings can't be recovered from the GitHub message bus
7818
- (:func:`coord.review.fetch_review_findings_from_github` — the one
7819
- review-findings source this module can reach without a notify.py/
7820
- state.py DB round trip) — no reviewer claim to read.
7874
+ * No approving review is found (:func:`scan_approved_reviews`) — no
7875
+ reviewer claim to read at all. When one is found, every round's
7876
+ findings are recovered from the GitHub message bus in a SINGLE fetch
7877
+ (:func:`coord.review.fetch_review_findings_from_github_many` — the
7878
+ one review-findings source this module can reach without a
7879
+ notify.py/state.py DB round trip); a round missing from the result
7880
+ (comment never posted, or the fetch failed outright) simply doesn't
7881
+ contribute to the fold.
7821
7882
 
7822
7883
  Deferred-imports `coord.review` to avoid a circular import (`review.py`
7823
7884
  does not import `merge_queue.py` at module level, but keeping the
@@ -7837,20 +7898,39 @@ def _issue_resolution_for_entry(
7837
7898
  reviewer_resolution: IssueResolution | None = None
7838
7899
  if board is not None:
7839
7900
  scan = scan_approved_reviews(entry, board, gh_ops, config=config)
7840
- review_assignment = scan.review_assignment
7841
- if scan.approved and review_assignment is not None:
7842
- from coord.review import fetch_review_findings_from_github # noqa: PLC0415
7901
+ if scan.approved and scan.review_assignment is not None:
7902
+ from coord.review import fetch_review_findings_from_github_many # noqa: PLC0415
7843
7903
 
7904
+ # Fold EVERY round in the chain (not just up to the one that
7905
+ # approved — see the docstring above on why no cutoff is used).
7906
+ chain = _review_chain_for_entry(entry, board)
7844
7907
  try:
7845
- findings = fetch_review_findings_from_github(
7908
+ findings_by_id = fetch_review_findings_from_github_many(
7846
7909
  entry.repo_github,
7847
7910
  entry.issue_number,
7848
- review_assignment.assignment_id,
7911
+ (a.assignment_id for a in chain),
7849
7912
  )
7850
- except Exception: # noqa: BLE001 — best-effort; falls back to the worker's claim
7851
- findings = None
7852
- if findings is not None:
7853
- reviewer_resolution = findings.issue_resolution
7913
+ except Exception: # noqa: BLE001 — best-effort; keeps the running fold
7914
+ findings_by_id = {}
7915
+
7916
+ for round_assignment in chain:
7917
+ findings = findings_by_id.get(round_assignment.assignment_id)
7918
+ if findings is None:
7919
+ continue
7920
+ candidate = findings.issue_resolution
7921
+ if reviewer_resolution is None:
7922
+ reviewer_resolution = candidate
7923
+ elif candidate.explicit and candidate.value == "resolved":
7924
+ # A later, independent review round that DELIBERATELY
7925
+ # restates "resolved" (not a missing line defaulting to
7926
+ # it) may clear what an earlier review round
7927
+ # accumulated — reviewer rounds re-checking each other
7928
+ # is exactly what #3966 asks for.
7929
+ reviewer_resolution = candidate
7930
+ else:
7931
+ reviewer_resolution = effective_issue_resolution(
7932
+ reviewer_resolution, candidate
7933
+ )
7854
7934
 
7855
7935
  return effective_issue_resolution(worker_resolution, reviewer_resolution)
7856
7936
 
@@ -714,10 +714,27 @@ class IssueResolution:
714
714
  remainder after the value (e.g. "the quadraui issue was only drafted,
715
715
  not filed"), empty when the marker carried none or wasn't present at
716
716
  all.
717
+
718
+ ``explicit`` (#3966) is the presence bit: ``True`` only when
719
+ :func:`parse_issue_resolution` actually matched a real marker in the
720
+ source text, ``False`` for the default it returns when none was found
721
+ (or the text was empty/``None``). Without this bit, a round that
722
+ states nothing and a round that explicitly writes
723
+ ``ISSUE_RESOLUTION: resolved`` are the same value and indistinguishable
724
+ — which is exactly what let a multi-round fold (#3966's
725
+ `coord.merge_queue._issue_resolution_for_entry`) never clear a prior
726
+ `partial`/`investigation`, even when a later, independent reviewer
727
+ deliberately restated `resolved`. Callers that fold multiple rounds
728
+ together use this bit to tell "silent" (carry the prior value forward)
729
+ apart from "stated" (let it win the tie); callers combining a single
730
+ worker/reviewer pair (:func:`effective_issue_resolution`) do not need
731
+ it — "never the reverse" there is unconditional regardless of how the
732
+ reviewer's value was produced.
717
733
  """
718
734
 
719
735
  value: str = DEFAULT_ISSUE_RESOLUTION
720
736
  reason: str = ""
737
+ explicit: bool = False
721
738
 
722
739
 
723
740
  # Mirrors `SMOKE_TESTS:`/`REVIEW_VERDICT:`'s tolerance for trailing
@@ -794,6 +811,12 @@ def parse_issue_resolution(text: str | None) -> IssueResolution:
794
811
  quotations of the marker text, not claims. A real, unquoted marker
795
812
  earlier in the text still wins once every later quoted mention has
796
813
  been skipped, rather than falling all the way back to the default.
814
+
815
+ The returned :class:`IssueResolution`'s ``explicit`` bit (#3966) is
816
+ ``True`` only on the "found a real marker" return below — the
817
+ absent/malformed default always comes back with ``explicit=False``,
818
+ so a caller folding several of these together can tell a genuine
819
+ `ISSUE_RESOLUTION: resolved` apart from a line that was never written.
797
820
  """
798
821
  if not text:
799
822
  return IssueResolution()
@@ -808,7 +831,7 @@ def parse_issue_resolution(text: str | None) -> IssueResolution:
808
831
  ).strip()
809
832
  if is_blank_issue_resolution_reason(reason):
810
833
  reason = ""
811
- return IssueResolution(value=value, reason=reason)
834
+ return IssueResolution(value=value, reason=reason, explicit=True)
812
835
  return IssueResolution()
813
836
 
814
837
 
@@ -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