code-coordinator 0.5.517__tar.gz → 0.5.519__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 (911) hide show
  1. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/PKG-INFO +1 -1
  2. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/code_coordinator.egg-info/PKG-INFO +1 -1
  3. code_coordinator-0.5.519/code_coordinator.egg-info/scm_version.json +8 -0
  4. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/conflict_fix.py +44 -0
  5. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/merge_queue.py +86 -22
  6. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/notify.py +15 -3
  7. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/reconcile.py +118 -22
  8. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_merge.py +6 -3
  9. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_conflict_fix.py +147 -0
  10. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_coord_test_runner_toolchain.py +9 -6
  11. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_gates.py +48 -6
  12. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_merge_queue.py +172 -39
  13. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_notify.py +78 -0
  14. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_reconcile.py +103 -4
  15. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_smoke.py +45 -7
  16. code_coordinator-0.5.517/code_coordinator.egg-info/scm_version.json +0 -8
  17. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/.claude/commands/board.md +0 -0
  18. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/.claude/commands/complete-session.md +0 -0
  19. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/.claude/commands/coordinator.md +0 -0
  20. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/.githooks/_lib.sh +0 -0
  21. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/.githooks/post-checkout +0 -0
  22. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/.githooks/post-commit +0 -0
  23. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/.githooks/post-merge +0 -0
  24. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  25. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/.github/coord-ci-acceptance.yml +0 -0
  26. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/.github/workflows/auto-release.yml +0 -0
  27. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/.github/workflows/publish.yml +0 -0
  28. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/.github/workflows/test.yml +0 -0
  29. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/.gitignore +0 -0
  30. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/CLAUDE.md +0 -0
  31. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/GOAL.md +0 -0
  32. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/LICENSE +0 -0
  33. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/MANIFEST.in +0 -0
  34. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/README.md +0 -0
  35. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/code_coordinator.egg-info/SOURCES.txt +0 -0
  36. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/code_coordinator.egg-info/dependency_links.txt +0 -0
  37. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/code_coordinator.egg-info/entry_points.txt +0 -0
  38. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/code_coordinator.egg-info/requires.txt +0 -0
  39. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/code_coordinator.egg-info/scm_file_list.json +0 -0
  40. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/code_coordinator.egg-info/top_level.txt +0 -0
  41. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/__init__.py +0 -0
  42. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/_board_mapping.py +0 -0
  43. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/acceptance.py +0 -0
  44. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/acceptance_drivers.py +0 -0
  45. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/agent.py +0 -0
  46. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/agent_app.py +0 -0
  47. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/agent_update.py +0 -0
  48. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/agents/opencode/.gitignore +0 -0
  49. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/agents/opencode/agents/work.md +0 -0
  50. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/agents/opencode/routing.jsonc +0 -0
  51. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/approved_work.py +0 -0
  52. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/audit.py +0 -0
  53. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/auto_loop.py +0 -0
  54. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/backup.py +0 -0
  55. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/block_log.py +0 -0
  56. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/board_schema.py +0 -0
  57. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/board_service.py +0 -0
  58. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/board_wire.py +0 -0
  59. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/brain.py +0 -0
  60. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/branch_model.py +0 -0
  61. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/bug_intake.py +0 -0
  62. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/cargo_cache.py +0 -0
  63. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/ci_fix.py +0 -0
  64. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/ci_github.py +0 -0
  65. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/ci_gitlab.py +0 -0
  66. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/ci_store.py +0 -0
  67. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/claim.py +0 -0
  68. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/claude_setup_token.py +0 -0
  69. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/cli.py +0 -0
  70. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/client.py +0 -0
  71. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/codegen.py +0 -0
  72. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/__init__.py +0 -0
  73. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/_common.py +0 -0
  74. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/acceptance.py +0 -0
  75. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/agent_ops.py +0 -0
  76. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/audit.py +0 -0
  77. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/backup.py +0 -0
  78. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/chat.py +0 -0
  79. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/ci.py +0 -0
  80. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/codegen.py +0 -0
  81. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/dispatch.py +0 -0
  82. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/dispatch_workers.py +0 -0
  83. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/dr.py +0 -0
  84. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/drive.py +0 -0
  85. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/drive_queue.py +0 -0
  86. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/gate_a.py +0 -0
  87. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/gates.py +0 -0
  88. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/issues.py +0 -0
  89. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/lifecycle.py +0 -0
  90. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/machine.py +0 -0
  91. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/merge.py +0 -0
  92. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/milestone.py +0 -0
  93. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/plan_followup.py +0 -0
  94. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/plans.py +0 -0
  95. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/portal.py +0 -0
  96. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/pr.py +0 -0
  97. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/release.py +0 -0
  98. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/repo.py +0 -0
  99. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/report.py +0 -0
  100. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/review.py +0 -0
  101. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/scorecard.py +0 -0
  102. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/sessions.py +0 -0
  103. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/setup.py +0 -0
  104. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/status.py +0 -0
  105. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/store_migrate.py +0 -0
  106. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/terminal.py +0 -0
  107. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/test_gate.py +0 -0
  108. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/commands/tui.py +0 -0
  109. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/comments.py +0 -0
  110. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/config.py +0 -0
  111. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/config_reload.py +0 -0
  112. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/confirm_test.py +0 -0
  113. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/dao.py +0 -0
  114. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/dashboard/__init__.py +0 -0
  115. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/dashboard/fixture.py +0 -0
  116. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/dashboard/index.html +0 -0
  117. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/dashboard/server.py +0 -0
  118. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/dashboard/terminal.py +0 -0
  119. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/db.py +0 -0
  120. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/dead_end.py +0 -0
  121. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/decomposition_chat.py +0 -0
  122. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/deploy/README.md +0 -0
  123. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/deploy/coord-agent.service +0 -0
  124. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/deploy/coord-backup.service +0 -0
  125. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/deploy/coord-backup.timer +0 -0
  126. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/deploy/coord-db-backup.service +0 -0
  127. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/deploy/coord-db-backup.sh +0 -0
  128. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/deploy/coord-db-backup.timer +0 -0
  129. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/deploy/coord-dr-verify.service +0 -0
  130. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/deploy/coord-dr-verify.timer +0 -0
  131. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/deploy/coord-drive-queue.service +0 -0
  132. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/deploy/coord-drive-queue.timer +0 -0
  133. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/deploy/coord-failure-notify.service +0 -0
  134. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/deploy/coord-fleet-watchdog.service +0 -0
  135. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/deploy/coord-fleet-watchdog.timer +0 -0
  136. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/deploy/coord-notify.service +0 -0
  137. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/deploy/coord-notify.timer +0 -0
  138. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/deploy/coord-release-propagate.service +0 -0
  139. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/deploy/coord-release-propagate.timer +0 -0
  140. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/deploy/coord-release-window.service +0 -0
  141. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/deploy/coord-release-window.timer +0 -0
  142. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/deploy/coord-serve.service +0 -0
  143. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/deploy/coord-web-dist-build.service +0 -0
  144. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/deploy/coord-web-dist-build.timer +0 -0
  145. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/deploy/coord-web.service +0 -0
  146. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/deploy_manifest.py +0 -0
  147. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/deploy_units.py +0 -0
  148. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/deprecation_telemetry.py +0 -0
  149. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/deps.py +0 -0
  150. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/diagnose.py +0 -0
  151. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/dispatch.py +0 -0
  152. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/dispatch_liveness.py +0 -0
  153. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/dist_name.py +0 -0
  154. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/dr_promote.py +0 -0
  155. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/dr_verify.py +0 -0
  156. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/drive.py +0 -0
  157. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/drive_queue.py +0 -0
  158. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/drive_sessions_snapshot.py +0 -0
  159. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/drive_state.py +0 -0
  160. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/events.py +0 -0
  161. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/failure_class.py +0 -0
  162. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/failure_classifier.py +0 -0
  163. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/filelock.py +0 -0
  164. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/fleet_config_health.py +0 -0
  165. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/forge_availability.py +0 -0
  166. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/freshness.py +0 -0
  167. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/gate_a.py +0 -0
  168. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/gate_b.py +0 -0
  169. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/gate_snapshot.py +0 -0
  170. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/gates.py +0 -0
  171. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/gen_board_fixture.py +0 -0
  172. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/github_ops.py +0 -0
  173. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/github_throttle.py +0 -0
  174. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/goal.py +0 -0
  175. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/graph_health.py +0 -0
  176. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/__init__.py +0 -0
  177. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/aggregate.py +0 -0
  178. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/checks/__init__.py +0 -0
  179. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/checks/_ci_pin.py +0 -0
  180. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/checks/agent_install.py +0 -0
  181. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/checks/cargo_targets.py +0 -0
  182. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/checks/claude_binary.py +0 -0
  183. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/checks/config_drift.py +0 -0
  184. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/checks/coord_tui_ci_pin.py +0 -0
  185. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/checks/coord_web_ci_pin.py +0 -0
  186. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/checks/deploy_lane_facts.py +0 -0
  187. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/checks/disk.py +0 -0
  188. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/checks/fleet_board.py +0 -0
  189. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/checks/fleet_deploy_lanes.py +0 -0
  190. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/checks/fleet_phantom.py +0 -0
  191. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/checks/fleet_unit_drift.py +0 -0
  192. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/checks/graph.py +0 -0
  193. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/checks/graphify_cli.py +0 -0
  194. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/checks/index_lock.py +0 -0
  195. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/checks/issues_sync_staleness.py +0 -0
  196. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/checks/local_machine_identity.py +0 -0
  197. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/checks/plan_usage.py +0 -0
  198. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/checks/pr_churn.py +0 -0
  199. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/checks/release_cordon.py +0 -0
  200. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/checks/repo_state.py +0 -0
  201. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/checks/spawned_coord.py +0 -0
  202. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/checks/stalled_pipeline.py +0 -0
  203. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/checks/timer_active.py +0 -0
  204. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/checks/toolchain.py +0 -0
  205. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/checks/unit_drift.py +0 -0
  206. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/checks/unit_enablement.py +0 -0
  207. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/checks/wedged_drive_queue.py +0 -0
  208. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/checks/worktrees.py +0 -0
  209. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/cli.py +0 -0
  210. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/context.py +0 -0
  211. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/fleet_snapshot.py +0 -0
  212. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/models.py +0 -0
  213. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/pypi.py +0 -0
  214. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/registry.py +0 -0
  215. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/render.py +0 -0
  216. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/health/units.py +0 -0
  217. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/hooks.py +0 -0
  218. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/housekeeping.py +0 -0
  219. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/interactive.py +0 -0
  220. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/invariant_alarms.py +0 -0
  221. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/issue_store.py +0 -0
  222. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/issues_sync_status.py +0 -0
  223. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/liveness_auditor.py +0 -0
  224. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/machine_fault.py +0 -0
  225. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/machine_metrics.py +0 -0
  226. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/machine_onboard.py +0 -0
  227. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/machine_pause.py +0 -0
  228. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/machine_stats.py +0 -0
  229. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/milestone_chat.py +0 -0
  230. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/milestone_dispatch.py +0 -0
  231. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/milestone_gate.py +0 -0
  232. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/milestone_order.py +0 -0
  233. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/mock_author.py +0 -0
  234. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/models.py +0 -0
  235. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/network.py +0 -0
  236. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/new_issue_chat.py +0 -0
  237. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/notifier/__init__.py +0 -0
  238. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/notifier/baseline.py +0 -0
  239. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/notifier/cli.py +0 -0
  240. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/notifier/collect.py +0 -0
  241. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/notifier/digest.py +0 -0
  242. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/notifier/models.py +0 -0
  243. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/notifier/predicate.py +0 -0
  244. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/notifier/service.py +0 -0
  245. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/notifier/store.py +0 -0
  246. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/notifier/transport.py +0 -0
  247. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/openapi.py +0 -0
  248. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/overlap_fence.py +0 -0
  249. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/overlap_predict.py +0 -0
  250. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/parentage.py +0 -0
  251. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/parentage_github.py +0 -0
  252. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/pipeline.py +0 -0
  253. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/plan_parser.py +0 -0
  254. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/plans.py +0 -0
  255. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/platform_paths.py +0 -0
  256. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/portal_bridge.py +0 -0
  257. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/portal_store.py +0 -0
  258. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/portal_sync.py +0 -0
  259. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/pr_body_lint.py +0 -0
  260. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/prereqs.py +0 -0
  261. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/progress.py +0 -0
  262. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/providers/__init__.py +0 -0
  263. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/providers/base.py +0 -0
  264. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/providers/claude.py +0 -0
  265. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/providers/claude_pty.py +0 -0
  266. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/providers/opencode.py +0 -0
  267. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/queue_diagnose.py +0 -0
  268. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/reconcile_tick.py +0 -0
  269. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/refine_chat.py +0 -0
  270. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/release_cordon.py +0 -0
  271. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/release_propagate.py +0 -0
  272. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/release_verify.py +0 -0
  273. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/release_window.py +0 -0
  274. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/repo_dormancy.py +0 -0
  275. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/repo_edit.py +0 -0
  276. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/repo_onboard.py +0 -0
  277. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/reports.py +0 -0
  278. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/rest_schema.py +0 -0
  279. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/restart_cmd.py +0 -0
  280. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/revalidate.py +0 -0
  281. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/review.py +0 -0
  282. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/scorecard.py +0 -0
  283. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/self_health.py +0 -0
  284. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/serve_app.py +0 -0
  285. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/skills/coord-dispatch-verbs/SKILL.md +0 -0
  286. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/skills/drive-queue-preflight/SKILL.md +0 -0
  287. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/skills/fleet-restart-safety/SKILL.md +0 -0
  288. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/skills/merge-stuck-triage/SKILL.md +0 -0
  289. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/skills/pipeline-limbo-triage/SKILL.md +0 -0
  290. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/skills/portal-followup/SKILL.md +0 -0
  291. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/skills/release-now/SKILL.md +0 -0
  292. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/skills/review-verdict-recovery/SKILL.md +0 -0
  293. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/skills/tui-quadraui-workflow/SKILL.md +0 -0
  294. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/skills/update-issue/SKILL.md +0 -0
  295. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/smoke.py +0 -0
  296. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/spend_ceiling.py +0 -0
  297. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/split_work.py +0 -0
  298. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/sql.py +0 -0
  299. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/stage_projection.py +0 -0
  300. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/state.py +0 -0
  301. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/store_migrate.py +0 -0
  302. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/store_parity.py +0 -0
  303. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/templates/deploy-cloudflare.node.yml +0 -0
  304. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/test_author.py +0 -0
  305. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/test_chat.py +0 -0
  306. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/test_orchestrator.py +0 -0
  307. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/test_report.py +0 -0
  308. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/tui_release.py +0 -0
  309. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/uat_checks.py +0 -0
  310. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/usage.py +0 -0
  311. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/usage_limits.py +0 -0
  312. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/usage_rollup.py +0 -0
  313. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coord/worker_events.py +0 -0
  314. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/coordinator.example.yml +0 -0
  315. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/deploy/coord-agent.service +0 -0
  316. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/deploy/coord-backup.service +0 -0
  317. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/deploy/coord-backup.timer +0 -0
  318. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/deploy/coord-db-backup.service +0 -0
  319. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/deploy/coord-db-backup.sh +0 -0
  320. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/deploy/coord-db-backup.timer +0 -0
  321. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/deploy/coord-dr-verify.service +0 -0
  322. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/deploy/coord-dr-verify.timer +0 -0
  323. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/deploy/coord-drive-queue.service +0 -0
  324. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/deploy/coord-drive-queue.timer +0 -0
  325. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/deploy/coord-failure-notify.service +0 -0
  326. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/deploy/coord-failure-notify.sh +0 -0
  327. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/deploy/coord-fleet-watchdog.service +0 -0
  328. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/deploy/coord-fleet-watchdog.timer +0 -0
  329. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/deploy/coord-notify.service +0 -0
  330. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/deploy/coord-notify.timer +0 -0
  331. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/deploy/coord-release-propagate.service +0 -0
  332. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/deploy/coord-release-propagate.timer +0 -0
  333. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/deploy/coord-release-window.service +0 -0
  334. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/deploy/coord-release-window.timer +0 -0
  335. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/deploy/coord-serve.service +0 -0
  336. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/deploy/coord-web-dist-build.service +0 -0
  337. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/deploy/coord-web-dist-build.sh +0 -0
  338. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/deploy/coord-web-dist-build.timer +0 -0
  339. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/deploy/coord-web-rollback.sh +0 -0
  340. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/deploy/coord-web.service +0 -0
  341. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/deploy/node-shim.sh +0 -0
  342. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/ADR_COORD_TUI_CI.md +0 -0
  343. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/ADR_COORD_WEB_ACCEPTANCE_SUITE.md +0 -0
  344. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/ADR_COORD_WEB_CI.md +0 -0
  345. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/ADR_COORD_WEB_DIST.md +0 -0
  346. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/ADR_PY_RUST_MIRRORS.md +0 -0
  347. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/AGENT_OPERATIONS.md +0 -0
  348. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/ARCHITECTURE.md +0 -0
  349. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/ARCH_SECURITY_GATES.md +0 -0
  350. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/COCKPIT.md +0 -0
  351. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/CONTROL_CENTER.md +0 -0
  352. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/COST_DISCIPLINE.md +0 -0
  353. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/CROSS_PLATFORM.md +0 -0
  354. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/CUSTOMER_FACING_APPS.md +0 -0
  355. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/CUSTOMER_PORTAL.md +0 -0
  356. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/DATA_STORE_SELECTION.md +0 -0
  357. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/DISASTER_RECOVERY.md +0 -0
  358. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/DRIVE_QUEUE.md +0 -0
  359. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/EPHEMERAL_WORKERS.md +0 -0
  360. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/FORGE_MIGRATION.md +0 -0
  361. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/GRAPHIFY_SETUP.md +0 -0
  362. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/ISSUE_GUIDANCE.md +0 -0
  363. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/MAC_MINI.md +0 -0
  364. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
  365. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/NOTIFIER.md +0 -0
  366. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/OPENCODE_VERIFICATION.md +0 -0
  367. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/OPERATING_GOTCHAS.md +0 -0
  368. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/OPERATOR_GUIDES.md +0 -0
  369. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/ORACLE_LOOP.md +0 -0
  370. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/PHONE_WEBAPP.md +0 -0
  371. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/PIPELINE_V2.md +0 -0
  372. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/PLATFORM_EVOLUTION.md +0 -0
  373. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/SECOND_BACKEND.md +0 -0
  374. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/STORE_SERVICE.md +0 -0
  375. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/TEST_FIRST_BUG_LANE.md +0 -0
  376. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/WEB_CONTROL_CENTER.md +0 -0
  377. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/WSL_WINDOWS_WORKER.md +0 -0
  378. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/mocks/web/README.md +0 -0
  379. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/mocks/web/_tokens.css +0 -0
  380. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/mocks/web/issue-detail.html +0 -0
  381. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/mocks/web/pipeline-narrow.html +0 -0
  382. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/docs/mocks/web/pipeline-wide.html +0 -0
  383. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/graphify-out/.gitignore +0 -0
  384. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/install-agent.sh +0 -0
  385. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/pyproject.toml +0 -0
  386. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/audit_review_verdict_overrides.py +0 -0
  387. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/azure-workers/bootstrap-shared.sh +0 -0
  388. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/azure-workers/build-worker-image.sh +0 -0
  389. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/azure-workers/coordinator-machine.py +0 -0
  390. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/azure-workers/dr-down.sh +0 -0
  391. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/azure-workers/dr-up.sh +0 -0
  392. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/azure-workers/epic-down.sh +0 -0
  393. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/azure-workers/epic-up.sh +0 -0
  394. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/azure-workers/preflight.sh +0 -0
  395. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/azure-workers/provision-server.sh +0 -0
  396. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/azure-workers/provision-worker.sh +0 -0
  397. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
  398. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/azure-workers/tailnet-acl.hujson +0 -0
  399. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/azure-workers/throwaway-vm.sh +0 -0
  400. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/azure-workers/verify-github-token.sh +0 -0
  401. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/check_gh_argv_containment.py +0 -0
  402. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/codegen.py +0 -0
  403. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/coord-test-runner.sh +0 -0
  404. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/coord-tui-scaffold/.github/coord-ci-acceptance.yml +0 -0
  405. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/coord-tui-scaffold/.github/workflows/cargo-test.yml +0 -0
  406. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/coord-tui-scaffold/.github/workflows/codegen-drift.yml +0 -0
  407. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/coord-tui-scaffold/CLAUDE.md +0 -0
  408. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/coord-venv-rollback.sh +0 -0
  409. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/drive-batch.sh +0 -0
  410. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/extract-coord-tui.sh +0 -0
  411. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/fleet_watchdog.py +0 -0
  412. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/gen_board_fixture.py +0 -0
  413. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/gen_mock_index.py +0 -0
  414. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/lib/provision-core.sh +0 -0
  415. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/next_release_tag.py +0 -0
  416. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/provision-machine.sh +0 -0
  417. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/run_tests_in_populated_home.sh +0 -0
  418. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/run_tests_without_gh.sh +0 -0
  419. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/setup-macmini.sh +0 -0
  420. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/smoke_437_interactive.py +0 -0
  421. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/verify-provision-noble.sh +0 -0
  422. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/verify_878_review_capture.py +0 -0
  423. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/verify_release_published.py +0 -0
  424. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/scripts/verify_release_wheel.py +0 -0
  425. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/setup.cfg +0 -0
  426. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/SMOKE_SET.md +0 -0
  427. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/__init__.py +0 -0
  428. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/acceptance/ms-37/conftest.py +0 -0
  429. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/acceptance/ms-37/contract.md +0 -0
  430. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/acceptance/ms-37/manifest.yml +0 -0
  431. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
  432. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
  433. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/acceptance/ms-51/contract.md +0 -0
  434. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
  435. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
  436. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/acceptance/ms-51/manifest.yml +0 -0
  437. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
  438. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/acceptance/ms-51/tsconfig.json +0 -0
  439. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
  440. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/backends.py +0 -0
  441. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/conftest.py +0 -0
  442. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/fixtures/board-pipeline-basic.json +0 -0
  443. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
  444. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
  445. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
  446. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/fixtures/opencode_run_sample.jsonl +0 -0
  447. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/fixtures/playwright/all_pass.json +0 -0
  448. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/fixtures/playwright/global_setup_crash.json +0 -0
  449. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/fixtures/playwright/mixed_fail.json +0 -0
  450. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/fixtures/playwright/retry_then_pass.json +0 -0
  451. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
  452. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/fixtures/playwright/skip.json +0 -0
  453. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/fixtures/playwright/truncated.json +0 -0
  454. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
  455. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
  456. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
  457. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
  458. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
  459. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
  460. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
  461. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
  462. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_acceptance.py +0 -0
  463. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_acceptance_drivers.py +0 -0
  464. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_agent.py +0 -0
  465. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_agent_api_error.py +0 -0
  466. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_agent_app.py +0 -0
  467. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_agent_branch_base.py +0 -0
  468. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_agent_branch_capture.py +0 -0
  469. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_agent_config_free_1712.py +0 -0
  470. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_agent_deploy_units_endpoint.py +0 -0
  471. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_agent_dirty_worktree.py +0 -0
  472. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_agent_drive_queue_reconcile_2373.py +0 -0
  473. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_agent_graph_self_heal.py +0 -0
  474. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_agent_health_h3.py +0 -0
  475. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_agent_idle_restart.py +0 -0
  476. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_agent_push_failure.py +0 -0
  477. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_agent_reap.py +0 -0
  478. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_agent_repos_and_pull.py +0 -0
  479. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_agent_restart_services_endpoint.py +0 -0
  480. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_agent_skills_self_heal.py +0 -0
  481. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_agent_startup_diagnostics.py +0 -0
  482. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_agent_update.py +0 -0
  483. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_agent_update_bluegreen.py +0 -0
  484. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_agent_usage_limit.py +0 -0
  485. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_agent_zero_commit.py +0 -0
  486. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_ambient_home_isolation.py +0 -0
  487. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_approve_capability_reroute_3241.py +0 -0
  488. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_approve_dependency_busy_2804.py +0 -0
  489. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_approve_reject_plan.py +0 -0
  490. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_approve_usage_gate.py +0 -0
  491. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_approved_work_2532.py +0 -0
  492. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_approved_work_2996.py +0 -0
  493. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_assignment_already_recorded_daemon.py +0 -0
  494. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_audit_log.py +0 -0
  495. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_audit_outcome.py +0 -0
  496. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_audit_query.py +0 -0
  497. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_auto_loop.py +0 -0
  498. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_auto_release_publish_2035.py +0 -0
  499. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_backend_selection.py +0 -0
  500. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_backup.py +0 -0
  501. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_base_checkout_restore.py +0 -0
  502. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_block_log.py +0 -0
  503. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_board_cap_762.py +0 -0
  504. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_board_fixture.py +0 -0
  505. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_board_read_path.py +0 -0
  506. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_board_schema.py +0 -0
  507. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_board_service.py +0 -0
  508. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_board_state.py +0 -0
  509. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_board_wire.py +0 -0
  510. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_brain.py +0 -0
  511. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_branch_model.py +0 -0
  512. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_bug_intake.py +0 -0
  513. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_build_worker_image_env_update.py +0 -0
  514. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cargo_cache.py +0 -0
  515. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_check_gh_argv_containment.py +0 -0
  516. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_ci_acceptance_gate_1950.py +0 -0
  517. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_ci_fix.py +0 -0
  518. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_ci_github.py +0 -0
  519. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_ci_gitlab.py +0 -0
  520. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_ci_parity_2091.py +0 -0
  521. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_ci_store.py +0 -0
  522. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_claim.py +0 -0
  523. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_claude_md_budget.py +0 -0
  524. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_claude_setup_token.py +0 -0
  525. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_acceptance.py +0 -0
  526. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_assign.py +0 -0
  527. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
  528. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_assign_interactive_remote.py +0 -0
  529. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_assign_provider.py +0 -0
  530. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_assign_repo_drift_2219.py +0 -0
  531. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_audit.py +0 -0
  532. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_chat_continue.py +0 -0
  533. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_ci.py +0 -0
  534. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_codegen.py +0 -0
  535. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_decide.py +0 -0
  536. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_diagnose_capability_rules.py +0 -0
  537. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_diagnose_config_provenance.py +0 -0
  538. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_diagnose_forge_availability.py +0 -0
  539. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_diagnose_graph.py +0 -0
  540. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_diagnose_self.py +0 -0
  541. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_diagnose_test_coverage.py +0 -0
  542. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_doctor.py +0 -0
  543. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_doctor_config_free_1801.py +0 -0
  544. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
  545. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_doctor_store_backend_3084.py +0 -0
  546. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_drive.py +0 -0
  547. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_drive_queue.py +0 -0
  548. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_escalate.py +0 -0
  549. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_fix_headless_review.py +0 -0
  550. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_gate_a.py +0 -0
  551. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_install_drift.py +0 -0
  552. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_install_skills.py +0 -0
  553. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_issue_comment.py +0 -0
  554. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_issue_create_label.py +0 -0
  555. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_issue_reopen.py +0 -0
  556. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_issue_view_list.py +0 -0
  557. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_issues.py +0 -0
  558. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_milestone_assign.py +0 -0
  559. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_milestone_capture.py +0 -0
  560. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_milestone_chat_add_child.py +0 -0
  561. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_milestone_dispatch.py +0 -0
  562. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_milestone_gate_b.py +0 -0
  563. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_milestone_gate_c.py +0 -0
  564. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_milestone_order.py +0 -0
  565. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
  566. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_milestone_ship.py +0 -0
  567. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_network.py +0 -0
  568. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_new_issue_chat.py +0 -0
  569. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_plans.py +0 -0
  570. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_portal.py +0 -0
  571. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_pr.py +0 -0
  572. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_pull_artifact.py +0 -0
  573. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_queue.py +0 -0
  574. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_reattach_sessions.py +0 -0
  575. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_refine_board.py +0 -0
  576. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_release_preflight.py +0 -0
  577. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_release_propagate.py +0 -0
  578. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_release_window.py +0 -0
  579. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_repo_2220.py +0 -0
  580. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_review_test_author_tracking_epic_2639.py +0 -0
  581. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_scorecard.py +0 -0
  582. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_serve_store_backend_3084.py +0 -0
  583. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_set_review_findings.py +0 -0
  584. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_status_advisory_terminal.py +0 -0
  585. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_status_contested_tag.py +0 -0
  586. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_status_invariant_alarms.py +0 -0
  587. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_status_machine_fault.py +0 -0
  588. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_status_merge_queue.py +0 -0
  589. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_status_provider.py +0 -0
  590. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_status_retried_3340.py +0 -0
  591. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_status_review_finalizing.py +0 -0
  592. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_status_supervisor_3366.py +0 -0
  593. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_status_test_failed_tag.py +0 -0
  594. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_status_usage_limit.py +0 -0
  595. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_sync_comments_873.py +0 -0
  596. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_test_plan.py +0 -0
  597. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_track.py +0 -0
  598. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_tui_update.py +0 -0
  599. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cli_wait.py +0 -0
  600. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_client.py +0 -0
  601. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_client_base_install.py +0 -0
  602. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_client_config_cache_atomic_3052.py +0 -0
  603. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_client_resource_migration_1946.py +0 -0
  604. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_commands_common.py +0 -0
  605. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_comments.py +0 -0
  606. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_completion_summary.py +0 -0
  607. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_config.py +0 -0
  608. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_config_acceptance.py +0 -0
  609. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_config_audit.py +0 -0
  610. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_config_drift_check.py +0 -0
  611. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_config_effective.py +0 -0
  612. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_config_pricing.py +0 -0
  613. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
  614. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_config_usage_gate.py +0 -0
  615. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_confirm_test.py +0 -0
  616. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_conflict_fix_semantic.py +0 -0
  617. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_coord_log_daemon_fallback_2547.py +0 -0
  618. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_coord_test.py +0 -0
  619. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_coord_test_runner_acceptance_toolchain_2936.py +0 -0
  620. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_coord_test_runner_baseline.py +0 -0
  621. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_coord_test_runner_populated_home.py +0 -0
  622. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_coord_test_runner_routing.py +0 -0
  623. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_coord_uat.py +0 -0
  624. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_coord_web_sse_restart_live.py +0 -0
  625. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_coordinator_machine.py +0 -0
  626. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_cross_platform_imports.py +0 -0
  627. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_dao.py +0 -0
  628. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_dashboard.py +0 -0
  629. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_dashboard_api.py +0 -0
  630. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_dashboard_fixture.py +0 -0
  631. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_dashboard_server.py +0 -0
  632. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_dashboard_terminal.py +0 -0
  633. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_dashboard_terminal_live.py +0 -0
  634. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_db.py +0 -0
  635. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_dead_end.py +0 -0
  636. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_decomposition_chat.py +0 -0
  637. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_deploy_coord_db_backup.py +0 -0
  638. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_deploy_coord_web_dist.py +0 -0
  639. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_deploy_coord_web_rollback.py +0 -0
  640. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_deploy_db_backup_unit.py +0 -0
  641. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_deploy_drive_queue_unit.py +0 -0
  642. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_deploy_failure_notify_unit.py +0 -0
  643. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_deploy_manifest.py +0 -0
  644. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_deploy_notify_unit.py +0 -0
  645. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_deploy_units_lane.py +0 -0
  646. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_deploy_web_unit.py +0 -0
  647. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_deprecation_telemetry.py +0 -0
  648. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_deps.py +0 -0
  649. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_diagnose.py +0 -0
  650. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_dispatch.py +0 -0
  651. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_dispatch_liveness.py +0 -0
  652. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_dispatch_target_validation.py +0 -0
  653. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_dispatch_workers.py +0 -0
  654. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_dist_name.py +0 -0
  655. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_done_housekeeping.py +0 -0
  656. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_dr_azure_scripts.py +0 -0
  657. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_dr_promote.py +0 -0
  658. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_dr_verify.py +0 -0
  659. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_drive.py +0 -0
  660. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_drive_machine_fault.py +0 -0
  661. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_drive_queue.py +0 -0
  662. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_drive_queue_blocked_rendering.py +0 -0
  663. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_drive_queue_launch_argv.py +0 -0
  664. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_drive_queue_max_parallel_config.py +0 -0
  665. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_drive_queue_max_parallel_per_repo_config.py +0 -0
  666. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_drive_queue_roll_pending.py +0 -0
  667. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_drive_queue_self_cordon_escalation.py +0 -0
  668. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_drive_sessions_snapshot.py +0 -0
  669. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_drive_state.py +0 -0
  670. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_drive_tmux.py +0 -0
  671. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_epic_up_capability_detection.py +0 -0
  672. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
  673. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_epic_up_image_provenance.py +0 -0
  674. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_errors.py +0 -0
  675. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_events.py +0 -0
  676. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_failure_class.py +0 -0
  677. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_failure_classifier.py +0 -0
  678. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_filelock.py +0 -0
  679. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
  680. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_fix_escalation_classifier.py +0 -0
  681. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_fix_of_force_override.py +0 -0
  682. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_fleet_config_health.py +0 -0
  683. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_fleet_health_probes.py +0 -0
  684. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_fleet_health_snapshot.py +0 -0
  685. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_fleet_watchdog.py +0 -0
  686. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_forge_availability.py +0 -0
  687. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_freshness.py +0 -0
  688. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_gate_a.py +0 -0
  689. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_gate_b.py +0 -0
  690. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_gate_snapshot_staleness.py +0 -0
  691. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_gather_fleet_tmux_sessions.py +0 -0
  692. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_gen_mock_index.py +0 -0
  693. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_generated_rust_fixture.py +0 -0
  694. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_generated_rust_requests.py +0 -0
  695. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_generated_types_fixture.py +0 -0
  696. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_github_ops.py +0 -0
  697. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_github_throttle.py +0 -0
  698. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_goal.py +0 -0
  699. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_graph_health.py +0 -0
  700. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_graph_selfheal_absent_2237.py +0 -0
  701. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_handoff.py +0 -0
  702. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_health_checks.py +0 -0
  703. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_health_cli.py +0 -0
  704. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_health_cli_graph.py +0 -0
  705. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_health_config.py +0 -0
  706. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_health_context.py +0 -0
  707. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_health_coord_tui_ci_pin.py +0 -0
  708. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_health_coord_web_ci_pin.py +0 -0
  709. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_health_deploy_lane_facts.py +0 -0
  710. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_health_fix.py +0 -0
  711. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_health_incident_regression.py +0 -0
  712. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_health_issues_sync_staleness.py +0 -0
  713. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_health_pr_churn.py +0 -0
  714. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_health_pypi.py +0 -0
  715. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_health_registry.py +0 -0
  716. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_health_release_cordon_probe.py +0 -0
  717. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_health_timer_active.py +0 -0
  718. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_health_toolchain.py +0 -0
  719. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_health_unit_drift.py +0 -0
  720. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_health_unit_enablement.py +0 -0
  721. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_health_wedged_drive_queue.py +0 -0
  722. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_hooks.py +0 -0
  723. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_housekeeping.py +0 -0
  724. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_human_attended_437.py +0 -0
  725. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_init.py +0 -0
  726. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_install_agent_venv_2911.py +0 -0
  727. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_integration.py +0 -0
  728. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_interactive.py +0 -0
  729. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_interactive_briefing_echo.py +0 -0
  730. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_interactive_pane_log_2541.py +0 -0
  731. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_interactive_prefill_state.py +0 -0
  732. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_interactive_session_relaunch.py +0 -0
  733. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_interactive_test_verdict_backstop.py +0 -0
  734. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_interactive_token_attribution.py +0 -0
  735. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_interactive_worktree.py +0 -0
  736. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_invariant_alarms.py +0 -0
  737. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_issue_store_seam.py +0 -0
  738. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_issues_sync_status.py +0 -0
  739. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_liveness_auditor.py +0 -0
  740. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_liveness_notify.py +0 -0
  741. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_lock_contention_ratchet.py +0 -0
  742. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_machine_fault.py +0 -0
  743. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_machine_metrics.py +0 -0
  744. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_machine_onboard.py +0 -0
  745. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_machine_pause.py +0 -0
  746. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_machine_stats.py +0 -0
  747. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_merge_verify.py +0 -0
  748. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_milestone_chat.py +0 -0
  749. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_milestone_dispatch.py +0 -0
  750. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_milestone_gate.py +0 -0
  751. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_milestone_order.py +0 -0
  752. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_milestone_seam.py +0 -0
  753. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_mock_author.py +0 -0
  754. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_model_tiering.py +0 -0
  755. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_models.py +0 -0
  756. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_models_config_labels.py +0 -0
  757. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_needs_attention.py +0 -0
  758. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_network.py +0 -0
  759. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_new_issue_chat.py +0 -0
  760. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_next_release_tag.py +0 -0
  761. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_node_shim.py +0 -0
  762. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_notifier_baseline.py +0 -0
  763. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_notifier_cli.py +0 -0
  764. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_notifier_collect.py +0 -0
  765. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_notifier_config.py +0 -0
  766. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_notifier_drive_seam.py +0 -0
  767. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_notifier_isolation.py +0 -0
  768. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_notifier_predicate.py +0 -0
  769. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_notifier_quiet_hours.py +0 -0
  770. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_notifier_service.py +0 -0
  771. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_notify_drain.py +0 -0
  772. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_openapi.py +0 -0
  773. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_operational_defaults.py +0 -0
  774. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_overlap_fence.py +0 -0
  775. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_overlap_predict.py +0 -0
  776. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_packaged_deploy_units.py +0 -0
  777. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_parentage.py +0 -0
  778. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_paste_landed.py +0 -0
  779. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_phantom_heal_venv_independence_2570.py +0 -0
  780. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_pipeline.py +0 -0
  781. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_plan_followup_approve_plan_command.py +0 -0
  782. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_plan_followup_pr_command.py +0 -0
  783. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_plan_followup_review_command.py +0 -0
  784. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_plan_only.py +0 -0
  785. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_plan_parser.py +0 -0
  786. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_platform_paths.py +0 -0
  787. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_portal_bridge.py +0 -0
  788. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_portal_config.py +0 -0
  789. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_portal_store.py +0 -0
  790. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_portal_sync.py +0 -0
  791. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_pr_body_lint.py +0 -0
  792. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_prereqs.py +0 -0
  793. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_production_db_guard.py +0 -0
  794. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_progress.py +0 -0
  795. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_provider_seam.py +0 -0
  796. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_providers.py +0 -0
  797. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_providers_config_labels.py +0 -0
  798. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_providers_pty.py +0 -0
  799. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_provision_core.py +0 -0
  800. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_provision_machine.py +0 -0
  801. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_py_rust_mirror_inventory.py +0 -0
  802. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_quiet_hours.py +0 -0
  803. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_quiet_hours_store_2146.py +0 -0
  804. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_reap_merged_sessions.py +0 -0
  805. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_reap_stale_interactive_tick.py +0 -0
  806. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_reconcile_branch.py +0 -0
  807. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_reconcile_completions.py +0 -0
  808. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_reconcile_late_agent_reports_2547.py +0 -0
  809. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_reconcile_merges.py +0 -0
  810. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_reconcile_no_agent_record.py +0 -0
  811. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_reconcile_tick.py +0 -0
  812. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_reconcile_usage_limit_done.py +0 -0
  813. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_refine_chat.py +0 -0
  814. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_release_cordon_2101.py +0 -0
  815. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
  816. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_release_cordon_deadlock_2240.py +0 -0
  817. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_release_cordon_drain_stall_3336.py +0 -0
  818. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_release_cordon_stuck_2490.py +0 -0
  819. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_release_propagate.py +0 -0
  820. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_release_propagate_threshold.py +0 -0
  821. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_release_roll_between_legs_2854.py +0 -0
  822. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_release_roll_window_handoff.py +0 -0
  823. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_release_unified_1242.py +0 -0
  824. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_release_verify.py +0 -0
  825. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_release_window.py +0 -0
  826. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_remote_auto_prune.py +0 -0
  827. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_remote_interactive_reaper.py +0 -0
  828. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_repo_add.py +0 -0
  829. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_repo_dormancy.py +0 -0
  830. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_repo_edit_2220.py +0 -0
  831. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_repo_graph_fleet_2237.py +0 -0
  832. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_repo_max_parallel_3423.py +0 -0
  833. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_repo_onboard_2220.py +0 -0
  834. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_report_result_push.py +0 -0
  835. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_reports.py +0 -0
  836. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_restart_cmd.py +0 -0
  837. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_retry.py +0 -0
  838. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_retry_advisory_1606.py +0 -0
  839. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_retry_escalation_classify_3360.py +0 -0
  840. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_retry_type_1636.py +0 -0
  841. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_revalidate.py +0 -0
  842. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_review.py +0 -0
  843. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_review_end_review_without_verdict.py +0 -0
  844. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_review_parse_failure_diagnostic.py +0 -0
  845. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_review_reaffirm.py +0 -0
  846. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_review_state.py +0 -0
  847. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_review_verdict_backstop.py +0 -0
  848. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_review_verdict_override_audit.py +0 -0
  849. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_review_verdict_relay.py +0 -0
  850. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_review_zero_commits.py +0 -0
  851. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_scoped_review_wiring.py +0 -0
  852. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_scorecard.py +0 -0
  853. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_self_health.py +0 -0
  854. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_serve.py +0 -0
  855. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_serve_app.py +0 -0
  856. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_serve_app_board_trim.py +0 -0
  857. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_serve_rest_routes.py +0 -0
  858. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_session.py +0 -0
  859. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_slice_issue_attribution.py +0 -0
  860. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_smoke_fanout_manifest_3333.py +0 -0
  861. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_smoke_live_checkout_restore.py +0 -0
  862. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_smoke_workflow.py +0 -0
  863. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_spend_ceiling.py +0 -0
  864. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_spend_ceiling_coordinator.py +0 -0
  865. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_split.py +0 -0
  866. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_split_work.py +0 -0
  867. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_sql_dialect.py +0 -0
  868. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_sqlite_connect_ratchet.py +0 -0
  869. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_stage_projection.py +0 -0
  870. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_stale_busy_reviewer_697.py +0 -0
  871. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_stalled_pipeline.py +0 -0
  872. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_state.py +0 -0
  873. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_state_review_findings_daemon.py +0 -0
  874. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_status_fleet_footer.py +0 -0
  875. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_stop_1567.py +0 -0
  876. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_store_contract.py +0 -0
  877. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_store_migrate.py +0 -0
  878. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_stuck.py +0 -0
  879. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_stuck_test_state_watchdog_2803.py +0 -0
  880. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_terminal_command.py +0 -0
  881. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_test_author.py +0 -0
  882. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_test_chat.py +0 -0
  883. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_test_orchestrator.py +0 -0
  884. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_test_report.py +0 -0
  885. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_test_verdict_parsing.py +0 -0
  886. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_test_verdict_transcript_floor.py +0 -0
  887. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_text_io_encoding_audit.py +0 -0
  888. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_thin_client_board_audit.py +0 -0
  889. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_thin_client_config_load_1080.py +0 -0
  890. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_thin_client_daemon_routing_906.py +0 -0
  891. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_throwaway_vm.py +0 -0
  892. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_tmux_host.py +0 -0
  893. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_tmux_session.py +0 -0
  894. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_transcript_floor.py +0 -0
  895. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_uat_checks.py +0 -0
  896. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_usage.py +0 -0
  897. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_usage_limits.py +0 -0
  898. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_usage_rollup.py +0 -0
  899. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_venv_live_install_2121.py +0 -0
  900. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_version_single_source.py +0 -0
  901. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_watch.py +0 -0
  902. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
  903. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_worker_env_venv_isolation.py +0 -0
  904. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_worker_events.py +0 -0
  905. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_worker_image_pin_sync.py +0 -0
  906. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_worker_safety.py +0 -0
  907. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_worker_test_scoping.py +0 -0
  908. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_worktree.py +0 -0
  909. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_worktree_rmtree_chokepoint.py +0 -0
  910. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/test_write_parity.py +0 -0
  911. {code_coordinator-0.5.517 → code_coordinator-0.5.519}/tests/write_parity.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-coordinator
3
- Version: 0.5.517
3
+ Version: 0.5.519
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.517
3
+ Version: 0.5.519
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
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "0.5.519",
3
+ "distance": 0,
4
+ "node": "gdec8a9dd7ece07ccb502104f68acf67eeaff322a",
5
+ "dirty": false,
6
+ "branch": "HEAD",
7
+ "node_date": "2026-09-26"
8
+ }
@@ -928,6 +928,7 @@ def has_prior_conflict_fix(
928
928
  merge_entry_id: str | None,
929
929
  *,
930
930
  current_error: str | None = None,
931
+ ignore_stale_rebase_attempts: bool = False,
931
932
  ) -> bool:
932
933
  """True when a second conflict-fix dispatch for *merge_entry_id* is blocked.
933
934
 
@@ -952,6 +953,21 @@ def has_prior_conflict_fix(
952
953
  recurring unchanged — not a fresh conflict — so it now consumes the cap
953
954
  too. Callers that don't pass *current_error* keep the pre-#2475 behaviour
954
955
  (``done`` never blocks) since they have no error text to compare.
956
+
957
+ *ignore_stale_rebase_attempts* (#3444): a stale-rebase dispatch
958
+ (``dispatch_conflict_fix(..., stale_rebase=True)``, title prefixed
959
+ :data:`STALE_REBASE_FIX_TITLE_PREFIX`) never even attempts a mechanical
960
+ resolution — it is authorized ONLY for a pure, content-preserving
961
+ rebase, and its own briefing embeds the SAME ``entry.error`` as its
962
+ "Reason:" line. Without this flag, its refusal (agent-reported ``done``,
963
+ downgraded to a give-up by the ``stale-rebase-mismatch`` marker — see
964
+ :func:`detect_stale_rebase_mismatch`) would trip the #2475
965
+ identical-error check above and block the ordinary conflict-fix #3444
966
+ escalates to right after, even though the ordinary path hasn't been
967
+ tried yet. Set by the one caller doing that escalation
968
+ (:func:`coord.reconcile._try_ordinary_escalation_after_stale_mismatch`)
969
+ to skip every stale-rebase-titled row entirely — active or not — so
970
+ ONLY prior *ordinary* conflict-fix attempts count against the cap.
955
971
  """
956
972
  if merge_entry_id is None:
957
973
  return False
@@ -960,6 +976,10 @@ def has_prior_conflict_fix(
960
976
  continue
961
977
  if a.review_of_assignment_id != merge_entry_id:
962
978
  continue
979
+ if ignore_stale_rebase_attempts and (a.issue_title or "").startswith(
980
+ STALE_REBASE_FIX_TITLE_PREFIX,
981
+ ):
982
+ continue
963
983
  # Active attempt in flight — prevent duplicate dispatch.
964
984
  if a.status in ("running", "pending"):
965
985
  return True
@@ -1254,6 +1274,7 @@ def dispatch_conflict_fix(
1254
1274
  model: str | None = None,
1255
1275
  stuck_summary: str | None = None,
1256
1276
  stale_rebase: bool = False,
1277
+ after_stale_rebase_mismatch: bool = False,
1257
1278
  status_fetcher: Callable[..., StatusResult] | None = None,
1258
1279
  machine_pick_out: "list[ConflictFixMachinePick] | None" = None,
1259
1280
  ) -> Assignment | None:
@@ -1357,6 +1378,23 @@ def dispatch_conflict_fix(
1357
1378
  (non-``semantic``) path below — a staleness-only block that recurs
1358
1379
  against the same error after a prior conflict-fix attempt escalates to
1359
1380
  a human exactly like a recurring mechanical conflict would.
1381
+
1382
+ ``after_stale_rebase_mismatch=True`` (#3444) dispatches the ORDINARY
1383
+ conflict-fix path (same briefing/system-prompt/title as the plain
1384
+ ``else`` branch below — this is not a distinct dispatch kind, just a
1385
+ retry-cap carve-out) right after a stale-rebase worker's
1386
+ ``stale-rebase-mismatch`` refusal: that verdict means the *just-stale*
1387
+ premise was wrong — the rebase hit a genuine content conflict, so this
1388
+ is an ordinary conflict that deserves the ordinary mechanical attempt,
1389
+ not an immediate HUMAN_REQUIRED. Passes
1390
+ ``ignore_stale_rebase_attempts=True`` to :func:`has_prior_conflict_fix`
1391
+ so the just-failed stale-rebase attempt — which never even tried a
1392
+ mechanical resolution — doesn't itself consume this cap; only a prior
1393
+ *ordinary* conflict-fix attempt does, capping this escalation at one
1394
+ per entry same as everything else here. #3349's safety property is
1395
+ unaffected: the stale-rebase worker itself still never resolves
1396
+ anything — only this ordinary worker (or its own semantic-escalation
1397
+ tier) may.
1360
1398
  """
1361
1399
  if semantic:
1362
1400
  if has_prior_semantic_escalation(board, entry.assignment_id):
@@ -1365,6 +1403,7 @@ def dispatch_conflict_fix(
1365
1403
  return None
1366
1404
  elif has_prior_conflict_fix(
1367
1405
  board, entry.assignment_id, current_error=entry.error,
1406
+ ignore_stale_rebase_attempts=after_stale_rebase_mismatch,
1368
1407
  ):
1369
1408
  return None
1370
1409
 
@@ -1576,6 +1615,11 @@ def dispatch_conflict_fix(
1576
1615
  # rebase dispatch from an ordinary conflict-fix without
1577
1616
  # re-deriving it from the assignment title prefix.
1578
1617
  "stale_rebase": stale_rebase,
1618
+ # #3444: distinguishes an ordinary conflict-fix dispatched
1619
+ # normally from one escalated right after a stale-rebase
1620
+ # worker's mismatch refusal — same title/briefing either way,
1621
+ # so this is the only durable trace of which path led here.
1622
+ "after_stale_rebase_mismatch": after_stale_rebase_mismatch,
1579
1623
  },
1580
1624
  )
1581
1625
 
@@ -3169,6 +3169,19 @@ def evaluate_smoke_verdict(
3169
3169
  #821/#1475's existing convention), so rows/entries predating this
3170
3170
  feature behave exactly as before.
3171
3171
 
3172
+ #3443: "the merge base moved" is not, by itself, "a rebase happened" —
3173
+ the smoke runner tests the branch checked out as-is, never a merge with
3174
+ the base, so a base that merely advanced underneath an UNREBASED branch
3175
+ changed nothing the suite could see. Before consulting the #1738/#1778/
3176
+ #1847 file-compare escape hatches below, a confirmed-unchanged branch
3177
+ head (``test_head_sha == current_branch_sha``) spares the base move
3178
+ outright — cheaper than any file compare, and exactly the signal that a
3179
+ rebase (which always changes the branch's head SHA) did *not* happen.
3180
+ Without it, `dispatch_pending_smoke` (#3309) re-tested an identical,
3181
+ un-rebased branch head on every single commit landing on an active
3182
+ target branch, converging on nothing but flakiness (vimcode#523/#526,
3183
+ 2026-09-24/25: ~20 re-runs of an unchanged branch head in a few hours).
3184
+
3172
3185
  #1732: ``skipped`` is deliberately excluded from all of the above. It is
3173
3186
  not a measurement of code at a SHA the way ``passed`` is — it is a
3174
3187
  structural claim about the diff itself ("contract/fixture-only, nothing
@@ -3385,6 +3398,7 @@ def evaluate_smoke_verdict(
3385
3398
 
3386
3399
  base_move_spare_reason: str | None = None
3387
3400
  test_base_sha = getattr(a, "test_base_sha", None)
3401
+ test_head_sha = getattr(a, "test_head_sha", None)
3388
3402
  if test_state == "passed":
3389
3403
  # Merge base moved: the tested combination (this branch + that
3390
3404
  # base) no longer exists, even if the branch's own diff is
@@ -3425,32 +3439,78 @@ def evaluate_smoke_verdict(
3425
3439
  )
3426
3440
  continue
3427
3441
 
3428
- # #1738/#1778/#1847: the base moved, but a moved SHA doesn't
3429
- # necessarily mean a content change that could affect a test
3430
- # result. `_base_move_spared` tries, in order: is the base move
3431
- # itself provably inert content (docs/scripts/issue-template
3432
- # only, #1738); failing that, is *this branch*'s entire diff (as
3433
- # actually tested, test_base_sha..test_head_sha) provably inert
3434
- # (#1778); failing that, do the two diffs simply touch disjoint
3435
- # files (#1847) — a substantive base move and a substantive
3436
- # branch that have nothing to do with each other. Any one being
3437
- # true means the tested combination is still covered — fall
3438
- # through to the branch-content check below instead of staling
3439
- # here. If the branch has since gained real content, that check
3440
- # still catches it independently via the patch-id compare
3441
- # (#1847 doesn't short-circuit it).
3442
+ # #3443: before even asking whether the base move is content-
3443
+ # relevant, ask the cheaper, load-bearing question first — did
3444
+ # THIS branch actually move? The smoke runner checks the branch
3445
+ # out as-is; it does not merge or rebase onto the base before
3446
+ # testing (see the module-level #1479 note above), so a moved
3447
+ # target tip only invalidates a `passed` verdict when the
3448
+ # branch itself picked up new commits since the test ran (a
3449
+ # rebase). A branch head confirmed identical to what was tested
3450
+ # means its merge-base with the target cannot have changed
3451
+ # either — the target only grows forward; it never rewrites the
3452
+ # history the branch forked from — so re-dispatching a
3453
+ # byte-identical branch head every time the target advances
3454
+ # (#3309 looping against develop, vimcode#523/#526) is pure
3455
+ # spend, not a re-test of anything new. Probed here, ahead of
3456
+ # the base-move check, so a confirmed-unchanged branch spares it
3457
+ # before `_base_move_spared`'s file-compare hatches even run;
3458
+ # those stay as the fallback for what this can't confirm (probe
3459
+ # unavailable) or the case where the branch genuinely moved.
3460
+ if (
3461
+ test_head_sha is not None
3462
+ and current_branch_sha is None
3463
+ and not branch_sha_attempted
3464
+ and gh_ops is not None
3465
+ and repo_github
3466
+ and entry_branch
3467
+ ):
3468
+ current_branch_sha, branch_sha_probe_failed, branch_sha_probe_error = (
3469
+ _gh_get_branch_sha(gh_ops, repo_github, entry_branch)
3470
+ )
3471
+ branch_sha_attempted = True
3472
+
3442
3473
  if (
3443
3474
  test_base_sha is not None
3444
3475
  and current_base_sha is not None
3445
3476
  and test_base_sha != current_base_sha
3446
3477
  ):
3447
- spared, base_move_spare_reason = _base_move_spared(
3448
- gh_ops,
3449
- repo_github,
3450
- test_base_sha,
3451
- current_base_sha,
3452
- getattr(a, "test_head_sha", None),
3453
- )
3478
+ if (
3479
+ test_head_sha is not None
3480
+ and current_branch_sha is not None
3481
+ and test_head_sha == current_branch_sha
3482
+ ):
3483
+ spared, base_move_spare_reason = (
3484
+ True,
3485
+ "branch head unchanged since test — no rebase, "
3486
+ "base move alone does not stale (#3443)",
3487
+ )
3488
+ else:
3489
+ # #1738/#1778/#1847: the base moved AND the branch head
3490
+ # also moved (or couldn't be confirmed unchanged), but a
3491
+ # moved base SHA still doesn't necessarily mean a content
3492
+ # change that could affect a test result.
3493
+ # `_base_move_spared` tries, in order: is the base move
3494
+ # itself provably inert content (docs/scripts/issue-
3495
+ # template only, #1738); failing that, is *this
3496
+ # branch*'s entire diff (as actually tested,
3497
+ # test_base_sha..test_head_sha) provably inert (#1778);
3498
+ # failing that, do the two diffs simply touch disjoint
3499
+ # files (#1847) — a substantive base move and a
3500
+ # substantive branch that have nothing to do with each
3501
+ # other. Any one being true means the tested combination
3502
+ # is still covered — fall through to the branch-content
3503
+ # check below instead of staling here. If the branch has
3504
+ # since gained real content, that check still catches it
3505
+ # independently via the patch-id compare (#1847 doesn't
3506
+ # short-circuit it).
3507
+ spared, base_move_spare_reason = _base_move_spared(
3508
+ gh_ops,
3509
+ repo_github,
3510
+ test_base_sha,
3511
+ current_base_sha,
3512
+ test_head_sha,
3513
+ )
3454
3514
  if not spared:
3455
3515
  # stale: re-verify against the new base
3456
3516
  if stale is None:
@@ -3467,7 +3527,11 @@ def evaluate_smoke_verdict(
3467
3527
  # Branch content changed since the test ran. Same SHA-then-patch-id
3468
3528
  # fallback as has_approved_review: a content-identical rebase (SHA
3469
3529
  # moved, patch-id didn't) does not invalidate the verdict.
3470
- test_head_sha = getattr(a, "test_head_sha", None)
3530
+ # `test_head_sha` was already read above (#3443's branch-probe
3531
+ # reordering); the probe below is a no-op here whenever the
3532
+ # `passed` branch already ran it (`branch_sha_attempted` guards it),
3533
+ # and is the FIRST attempt for a `skipped`/`baseline_red` row, which
3534
+ # never enters that block.
3471
3535
  if (
3472
3536
  test_head_sha is not None
3473
3537
  and current_branch_sha is None
@@ -3809,9 +3809,14 @@ def post_transition(transition: Transition, record: dict, entry: dict) -> None:
3809
3809
  except Exception: # noqa: BLE001
3810
3810
  board, config = None, None
3811
3811
  elif stale_rebase_mismatch:
3812
- # No board/config needed here — a stale-rebase mismatch has
3813
- # no tier-2 escalation path, it goes straight to
3814
- # HUMAN_REQUIRED inside `on_conflict_fix_done`.
3812
+ # #3444: board/config ARE needed here now — a stale-rebase
3813
+ # mismatch escalates to the ORDINARY conflict-fix path
3814
+ # (`_try_ordinary_escalation_after_stale_mismatch`) inside
3815
+ # `on_conflict_fix_done`, not straight to HUMAN_REQUIRED.
3816
+ # Without them that escalation call returns `None`
3817
+ # immediately and this — the operationally dominant path,
3818
+ # per the comment above — would reproduce #3444's exact bug
3819
+ # on every stale-rebase-mismatch it sees.
3815
3820
  progress = entry.get("progress") or {}
3816
3821
  stuck_summary = progress.get("stuck")
3817
3822
  if not stuck_summary and log_path:
@@ -3820,6 +3825,13 @@ def post_transition(transition: Transition, record: dict, entry: dict) -> None:
3820
3825
  stuck_summary = parse_progress(log_path).stuck
3821
3826
  except Exception: # noqa: BLE001
3822
3827
  stuck_summary = None
3828
+ try:
3829
+ from coord.board_service import read_board # noqa: PLC0415
3830
+ from coord.config import load as _load_config # noqa: PLC0415
3831
+ board = read_board()
3832
+ config = _load_config()
3833
+ except Exception: # noqa: BLE001
3834
+ board, config = None, None
3823
3835
 
3824
3836
  on_conflict_fix_done(
3825
3837
  parent_assignment_id=parent_id,
@@ -2978,6 +2978,67 @@ def _try_semantic_escalation(
2978
2978
  return None
2979
2979
 
2980
2980
 
2981
+ def _try_ordinary_escalation_after_stale_mismatch(
2982
+ entry: mq.QueuedMerge,
2983
+ *,
2984
+ board: Board | None,
2985
+ config: Config | None,
2986
+ machine_name: str,
2987
+ stuck_summary: str | None,
2988
+ ) -> "Assignment | None":
2989
+ """Dispatch the ordinary conflict-fix path after a stale-rebase
2990
+ worker's ``stale-rebase-mismatch`` refusal (#3444).
2991
+
2992
+ A ``stale-rebase-mismatch`` verdict means the ``checks_stale`` premise
2993
+ that triggered the stale-rebase dispatch was wrong — the rebase hit a
2994
+ genuine content conflict, not just a moved base. That makes this an
2995
+ ORDINARY conflict, so it deserves the ordinary #241 conflict-fix
2996
+ worker's mechanical/additive attempt (and its own
2997
+ ``SEMANTIC_STUCK_MARKER`` → escalation-or-HUMAN_REQUIRED handling on a
2998
+ second failure) before anything goes to a human — not an immediate
2999
+ HUMAN_REQUIRED, which is what happened before this fix.
3000
+
3001
+ Returns the dispatched Assignment, or ``None`` when the plumbing isn't
3002
+ available or dispatch declined for any of the ordinary reasons (no
3003
+ capable machine, already active, retry cap already consumed by a prior
3004
+ *ordinary* attempt, …) — every ``None`` case falls through to the
3005
+ caller's pre-#3444 HUMAN_REQUIRED behaviour.
3006
+
3007
+ Deliberately does NOT gate on a config flag the way
3008
+ :func:`_try_semantic_escalation` gates on
3009
+ ``pipeline.escalate_semantic_conflicts`` — unlike a semantic escalation
3010
+ to a stronger model, this is just the ordinary conflict-fix path that
3011
+ every other conflict already gets; there is no reason to withhold it
3012
+ here specifically.
3013
+ """
3014
+ if board is None or config is None:
3015
+ return None
3016
+
3017
+ from coord.conflict_fix import dispatch_conflict_fix # noqa: PLC0415
3018
+ from coord.network import fetch_status # noqa: PLC0415
3019
+
3020
+ try:
3021
+ return dispatch_conflict_fix(
3022
+ entry,
3023
+ board,
3024
+ config,
3025
+ prefer_machine=machine_name or None,
3026
+ after_stale_rebase_mismatch=True,
3027
+ stuck_summary=stuck_summary,
3028
+ # #3353: same liveness-aware selection every other call site
3029
+ # here uses — a dead machine with zero active assignments must
3030
+ # not be picked first just because it looks idle on the board.
3031
+ status_fetcher=fetch_status,
3032
+ )
3033
+ except Exception as exc: # noqa: BLE001 — never break reconcile on this
3034
+ import logging # noqa: PLC0415
3035
+ logging.warning(
3036
+ "stale-rebase-mismatch → ordinary conflict-fix escalation "
3037
+ "dispatch failed: %s", exc,
3038
+ )
3039
+ return None
3040
+
3041
+
2981
3042
  def on_conflict_fix_done(
2982
3043
  *,
2983
3044
  parent_assignment_id: str,
@@ -2998,16 +3059,21 @@ def on_conflict_fix_done(
2998
3059
  can surface "manual resolution required", and a comment is posted on
2999
3060
  the underlying issue so the user is notified outside the TUI too.
3000
3061
 
3001
- *stale_rebase_mismatch* (#3349 review): when ``True``, a stale-rebase
3002
- worker (dispatched for ``merge_gate_checks_stale``, not an ordinary
3003
- conflict) correctly refused to push per its own briefing's "When NOT to
3004
- guess" section — its rebase either hit a real conflict marker or
3005
- produced a different patch-id than the pre-rebase branch, so it is not
3006
- a pure content-preserving rebase. This is NOT a SEMANTIC give-up (no
3007
- tier-2 escalation applies — there is nothing to retry with a stronger
3008
- model; the base and this branch genuinely overlap) and lands directly
3009
- on HUMAN_REQUIRED with that reason recorded, mirroring the *semantic*
3010
- handling below but skipping its escalation path entirely.
3062
+ *stale_rebase_mismatch* (#3349 review, escalation added #3444): when
3063
+ ``True``, a stale-rebase worker (dispatched for
3064
+ ``merge_gate_checks_stale``, not an ordinary conflict) correctly
3065
+ refused to push per its own briefing's "When NOT to guess" section —
3066
+ its rebase either hit a real conflict marker or produced a different
3067
+ patch-id than the pre-rebase branch, so it is not a pure
3068
+ content-preserving rebase. That means the *just-stale* premise behind
3069
+ the stale-rebase dispatch was wrong — this is an ORDINARY conflict, so
3070
+ it gets the ordinary #241 conflict-fix worker's mechanical/additive
3071
+ attempt (:func:`_try_ordinary_escalation_after_stale_mismatch`) before
3072
+ anything reaches a human, exactly like any other conflict. Only when
3073
+ THAT dispatch itself declines (no capable machine, already active,
3074
+ retry cap consumed, …) does the entry land on HUMAN_REQUIRED — #3349's
3075
+ safety property (the stale-rebase worker itself never resolves
3076
+ anything) is unaffected either way.
3011
3077
 
3012
3078
  #2566: when *semantic* is ``True`` and the tier-2 escalation didn't
3013
3079
  fire specifically because ``pipeline.escalate_semantic_conflicts`` is
@@ -3058,24 +3124,54 @@ def on_conflict_fix_done(
3058
3124
  )
3059
3125
  failed_entry = entry
3060
3126
  elif stale_rebase_mismatch:
3061
- # #3349 review: a stale-rebase worker's refusal is a
3062
- # correct, deliberate stop — not a give-up to retry with a
3063
- # stronger model — so it goes straight to HUMAN_REQUIRED
3064
- # with the mismatch reason recorded, skipping the SEMANTIC
3065
- # tier-2 escalation path entirely.
3066
- entry.state = mq.HUMAN_REQUIRED
3127
+ # #3444: a stale-rebase worker's refusal means the
3128
+ # "just-stale" premise was wrong — this is a genuine
3129
+ # content conflict, i.e. an ORDINARY conflict, so it gets
3130
+ # the ordinary #241 conflict-fix worker's mechanical
3131
+ # attempt before anything reaches a human (previously this
3132
+ # skipped straight to HUMAN_REQUIRED — #3444's bug).
3067
3133
  detail = stuck_summary or (
3068
3134
  "rebase was not content-preserving (a conflict marker "
3069
3135
  "appeared, or the resulting patch-id differed from the "
3070
3136
  "pre-rebase branch's)"
3071
3137
  )
3072
- entry.error = (
3073
- f"{existing_error}; stale-rebase worker refused to "
3074
- f"push: {detail}. This is a genuine content conflict "
3075
- "against the new base, not a pure rebase — manual "
3076
- "resolution required."
3138
+ fix = _try_ordinary_escalation_after_stale_mismatch(
3139
+ entry,
3140
+ board=board,
3141
+ config=config,
3142
+ machine_name=machine_name,
3143
+ stuck_summary=stuck_summary,
3077
3144
  )
3078
- failed_entry = entry
3145
+ if fix is not None:
3146
+ # Stay in CONFLICT, not HUMAN_REQUIRED — the ordinary
3147
+ # conflict-fix worker is now in flight. If it also
3148
+ # fails (or itself judges the conflict SEMANTIC), this
3149
+ # hook runs again with `stale_rebase_mismatch=False`
3150
+ # and the ordinary/semantic-escalation-or-HUMAN_REQUIRED
3151
+ # logic below applies exactly as it does for any other
3152
+ # conflict.
3153
+ entry.state = mq.CONFLICT
3154
+ entry.error = (
3155
+ f"{existing_error}; stale-rebase worker refused to "
3156
+ f"push: {detail}. Not a stale-base mismatch after "
3157
+ "all — this is a genuine content conflict, "
3158
+ f"escalated to an ordinary conflict-fix (assignment "
3159
+ f"{fix.assignment_id}) on {fix.machine_name}."
3160
+ )
3161
+ else:
3162
+ # The ordinary escalation itself declined (no capable
3163
+ # machine, already active, retry cap already consumed
3164
+ # by a prior ordinary attempt, …) — fall through to
3165
+ # HUMAN_REQUIRED exactly like the pre-#3444 behaviour.
3166
+ entry.state = mq.HUMAN_REQUIRED
3167
+ entry.error = (
3168
+ f"{existing_error}; stale-rebase worker refused to "
3169
+ f"push: {detail}. This is a genuine content conflict "
3170
+ "against the new base, not a pure rebase, and the "
3171
+ "ordinary conflict-fix escalation could not be "
3172
+ "dispatched either — manual resolution required."
3173
+ )
3174
+ failed_entry = entry
3079
3175
  else:
3080
3176
  # #1291: a SEMANTIC give-up gets ONE escalated attempt from a
3081
3177
  # stronger model before the entry is parked. Everything
@@ -2887,9 +2887,12 @@ class TestGateBlockedRowEntersQueueBlocked:
2887
2887
  assert mq.load_queue() == []
2888
2888
 
2889
2889
  def fake_get_branch_sha(repo, branch):
2890
- # The base moved since the verdict was recorded; the branch
2891
- # itself did not.
2892
- return "newbase111" if branch == "main" else "branchsha000"
2890
+ # The base moved since the verdict was recorded, AND the branch
2891
+ # itself was rebased (its head moved too) — #3443: a base move
2892
+ # alone, with the branch head confirmed unchanged, no longer
2893
+ # stales the verdict, so this needs both to still exercise a
2894
+ # genuine STALE for the #1926 fallback-agreement check below.
2895
+ return "newbase111" if branch == "main" else "branchsha111"
2893
2896
 
2894
2897
  with patch(
2895
2898
  "coord.github_ops.get_branch_sha", side_effect=fake_get_branch_sha
@@ -1160,6 +1160,153 @@ class TestDispatch:
1160
1160
  assert client.calls == []
1161
1161
 
1162
1162
 
1163
+ class TestAfterStaleRebaseMismatchEscalation:
1164
+ """#3444: a `stale-rebase-mismatch` verdict must escalate to the
1165
+ ORDINARY conflict-fix path — `dispatch_conflict_fix(...,
1166
+ after_stale_rebase_mismatch=True)` — not straight to HUMAN_REQUIRED.
1167
+ That flag changes nothing about the dispatched briefing/title (same as
1168
+ the plain `else` branch) — it only carves the just-failed stale-rebase
1169
+ attempt out of the retry cap, since that attempt never even tried a
1170
+ mechanical resolution.
1171
+ """
1172
+
1173
+ def test_sends_the_ordinary_briefing_and_title(
1174
+ self, two_machine_config: Config, coord_db,
1175
+ ) -> None:
1176
+ client = _FakeHTTPClient({"id": "fix-id-ordinary-after-mismatch"})
1177
+ entry = _entry(error=f"{CI_STALE_PREFIX} checks predate the current base")
1178
+ result = dispatch_conflict_fix(
1179
+ entry, Board(), two_machine_config,
1180
+ http_client=client, prefer_machine="laptop",
1181
+ after_stale_rebase_mismatch=True,
1182
+ )
1183
+ assert result is not None
1184
+ assert not result.issue_title.startswith(STALE_REBASE_FIX_TITLE_PREFIX)
1185
+ assert result.issue_title.startswith("[conflict-fix]")
1186
+ _, payload = client.calls[0]
1187
+ assert payload["system_prompt"] == CONFLICT_FIX_SYSTEM_PROMPT
1188
+
1189
+ def test_a_failed_stale_rebase_attempt_does_not_consume_the_cap(
1190
+ self, two_machine_config: Config, coord_db,
1191
+ ) -> None:
1192
+ """The just-finished stale-rebase attempt is recorded on the board
1193
+ as a `[stale-rebase]`-titled conflict-fix row whose dispatch-time
1194
+ `Reason:` line is the SAME `entry.error` this escalation call
1195
+ carries (both dispatches read straight off `entry.error`) — without
1196
+ `ignore_stale_rebase_attempts`, the #2475 identical-error check
1197
+ would misread that as a recurring, already-failed mechanical
1198
+ attempt and block this escalation before it ever tries."""
1199
+ board = Board()
1200
+ error = f"{CI_STALE_PREFIX} checks predate the current base"
1201
+ board.completed.append(Assignment(
1202
+ machine_name="laptop", repo_name="api", issue_number=1,
1203
+ issue_title=f"{STALE_REBASE_FIX_TITLE_PREFIX} Fix the thing",
1204
+ assignment_id="stale-fix-1", status="done",
1205
+ type="conflict-fix", review_of_assignment_id="abc123",
1206
+ briefing=f"# Stale-CI rebase\nReason: {error}\n",
1207
+ ))
1208
+ entry = _entry(error=error)
1209
+ client = _FakeHTTPClient({"id": "fix-id-escalated"})
1210
+ result = dispatch_conflict_fix(
1211
+ entry, board, two_machine_config,
1212
+ http_client=client, prefer_machine="laptop",
1213
+ after_stale_rebase_mismatch=True,
1214
+ )
1215
+ assert result is not None
1216
+ assert len(client.calls) == 1
1217
+
1218
+ def test_a_prior_ordinary_conflict_fix_failure_still_blocks(
1219
+ self, two_machine_config: Config, coord_db,
1220
+ ) -> None:
1221
+ """The carve-out is narrow: only stale-rebase-titled rows are
1222
+ ignored. A genuinely failed ORDINARY conflict-fix attempt for the
1223
+ same entry still consumes the cap exactly like any other retry."""
1224
+ board = Board()
1225
+ board.completed.append(Assignment(
1226
+ machine_name="laptop", repo_name="api", issue_number=1,
1227
+ issue_title="[conflict-fix] Fix the thing",
1228
+ assignment_id="ordinary-fix-1", status="failed",
1229
+ type="conflict-fix", review_of_assignment_id="abc123",
1230
+ ))
1231
+ entry = _entry()
1232
+ client = _FakeHTTPClient({"id": "would-not-fire"})
1233
+ result = dispatch_conflict_fix(
1234
+ entry, board, two_machine_config,
1235
+ http_client=client, prefer_machine="laptop",
1236
+ after_stale_rebase_mismatch=True,
1237
+ )
1238
+ assert result is None
1239
+ assert client.calls == []
1240
+
1241
+ def test_no_double_dispatch_while_a_conflict_fix_is_already_active(
1242
+ self, two_machine_config: Config, coord_db,
1243
+ ) -> None:
1244
+ """Acceptance: no double-dispatch while one is active, regardless
1245
+ of which flavor is running."""
1246
+ board = Board()
1247
+ board.active.append(Assignment(
1248
+ machine_name="laptop", repo_name="api", issue_number=1,
1249
+ issue_title="[conflict-fix] Fix the thing",
1250
+ assignment_id="running-fix-1", status="running",
1251
+ type="conflict-fix", review_of_assignment_id="abc123",
1252
+ ))
1253
+ entry = _entry()
1254
+ client = _FakeHTTPClient({"id": "would-not-fire"})
1255
+ result = dispatch_conflict_fix(
1256
+ entry, board, two_machine_config,
1257
+ http_client=client, prefer_machine="laptop",
1258
+ after_stale_rebase_mismatch=True,
1259
+ )
1260
+ assert result is None
1261
+ assert client.calls == []
1262
+
1263
+
1264
+ class TestHasPriorConflictFixIgnoresStaleRebaseAttempts:
1265
+ """Direct coverage of `has_prior_conflict_fix`'s
1266
+ `ignore_stale_rebase_attempts` carve-out (#3444)."""
1267
+
1268
+ def test_failed_stale_rebase_row_ignored_when_flag_set(self) -> None:
1269
+ from coord.conflict_fix import has_prior_conflict_fix
1270
+ board = Board()
1271
+ board.completed.append(Assignment(
1272
+ machine_name="m", repo_name="api", issue_number=1,
1273
+ issue_title=f"{STALE_REBASE_FIX_TITLE_PREFIX} x",
1274
+ type="conflict-fix", review_of_assignment_id="abc123",
1275
+ status="failed",
1276
+ ))
1277
+ assert has_prior_conflict_fix(
1278
+ board, "abc123", ignore_stale_rebase_attempts=True,
1279
+ ) is False
1280
+
1281
+ def test_failed_stale_rebase_row_still_counts_by_default(self) -> None:
1282
+ """Every OTHER caller (default `ignore_stale_rebase_attempts=False`)
1283
+ is byte-for-byte unaffected."""
1284
+ from coord.conflict_fix import has_prior_conflict_fix
1285
+ board = Board()
1286
+ board.completed.append(Assignment(
1287
+ machine_name="m", repo_name="api", issue_number=1,
1288
+ issue_title=f"{STALE_REBASE_FIX_TITLE_PREFIX} x",
1289
+ type="conflict-fix", review_of_assignment_id="abc123",
1290
+ status="failed",
1291
+ ))
1292
+ assert has_prior_conflict_fix(board, "abc123") is True
1293
+
1294
+ def test_failed_ordinary_row_still_counts_even_with_flag_set(self) -> None:
1295
+ """The carve-out is narrow: it names the stale-rebase title prefix
1296
+ specifically, not "any prior conflict-fix"."""
1297
+ from coord.conflict_fix import has_prior_conflict_fix
1298
+ board = Board()
1299
+ board.completed.append(Assignment(
1300
+ machine_name="m", repo_name="api", issue_number=1,
1301
+ issue_title="[conflict-fix] x",
1302
+ type="conflict-fix", review_of_assignment_id="abc123",
1303
+ status="failed",
1304
+ ))
1305
+ assert has_prior_conflict_fix(
1306
+ board, "abc123", ignore_stale_rebase_attempts=True,
1307
+ ) is True
1308
+
1309
+
1163
1310
  class TestSemanticEscalationDisabled:
1164
1311
  """#2566: the predicate that lets HUMAN_REQUIRED messaging say *why*
1165
1312
  the tier-2 semantic escalation didn't run, rather than reading as