code-coordinator 0.5.527__tar.gz → 0.5.529__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.527 → code_coordinator-0.5.529}/PKG-INFO +1 -1
  2. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/code_coordinator.egg-info/PKG-INFO +1 -1
  3. code_coordinator-0.5.529/code_coordinator.egg-info/scm_version.json +8 -0
  4. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/conflict_fix.py +174 -29
  5. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/drive_queue.py +95 -9
  6. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/notify.py +41 -3
  7. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/reconcile.py +163 -33
  8. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_conflict_fix.py +163 -0
  9. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_drive_queue.py +156 -5
  10. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_notify.py +144 -0
  11. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_reconcile.py +173 -0
  12. code_coordinator-0.5.527/code_coordinator.egg-info/scm_version.json +0 -8
  13. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/.claude/commands/board.md +0 -0
  14. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/.claude/commands/complete-session.md +0 -0
  15. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/.claude/commands/coordinator.md +0 -0
  16. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/.githooks/_lib.sh +0 -0
  17. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/.githooks/post-checkout +0 -0
  18. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/.githooks/post-commit +0 -0
  19. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/.githooks/post-merge +0 -0
  20. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  21. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/.github/coord-ci-acceptance.yml +0 -0
  22. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/.github/workflows/auto-release.yml +0 -0
  23. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/.github/workflows/publish.yml +0 -0
  24. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/.github/workflows/test.yml +0 -0
  25. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/.gitignore +0 -0
  26. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/CLAUDE.md +0 -0
  27. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/GOAL.md +0 -0
  28. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/LICENSE +0 -0
  29. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/MANIFEST.in +0 -0
  30. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/README.md +0 -0
  31. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/code_coordinator.egg-info/SOURCES.txt +0 -0
  32. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/code_coordinator.egg-info/dependency_links.txt +0 -0
  33. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/code_coordinator.egg-info/entry_points.txt +0 -0
  34. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/code_coordinator.egg-info/requires.txt +0 -0
  35. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/code_coordinator.egg-info/scm_file_list.json +0 -0
  36. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/code_coordinator.egg-info/top_level.txt +0 -0
  37. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/__init__.py +0 -0
  38. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/_board_mapping.py +0 -0
  39. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/acceptance.py +0 -0
  40. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/acceptance_drivers.py +0 -0
  41. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/agent.py +0 -0
  42. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/agent_app.py +0 -0
  43. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/agent_update.py +0 -0
  44. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/agents/opencode/.gitignore +0 -0
  45. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/agents/opencode/agents/work.md +0 -0
  46. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/agents/opencode/routing.jsonc +0 -0
  47. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/approved_work.py +0 -0
  48. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/audit.py +0 -0
  49. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/auto_loop.py +0 -0
  50. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/backup.py +0 -0
  51. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/block_log.py +0 -0
  52. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/board_schema.py +0 -0
  53. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/board_service.py +0 -0
  54. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/board_wire.py +0 -0
  55. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/brain.py +0 -0
  56. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/branch_model.py +0 -0
  57. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/bug_intake.py +0 -0
  58. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/cargo_cache.py +0 -0
  59. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/ci_fix.py +0 -0
  60. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/ci_github.py +0 -0
  61. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/ci_gitlab.py +0 -0
  62. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/ci_store.py +0 -0
  63. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/claim.py +0 -0
  64. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/claude_setup_token.py +0 -0
  65. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/cli.py +0 -0
  66. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/client.py +0 -0
  67. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/codegen.py +0 -0
  68. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/__init__.py +0 -0
  69. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/_common.py +0 -0
  70. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/acceptance.py +0 -0
  71. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/agent_ops.py +0 -0
  72. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/audit.py +0 -0
  73. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/backup.py +0 -0
  74. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/chat.py +0 -0
  75. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/ci.py +0 -0
  76. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/codegen.py +0 -0
  77. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/dispatch.py +0 -0
  78. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/dispatch_workers.py +0 -0
  79. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/dr.py +0 -0
  80. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/drive.py +0 -0
  81. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/drive_queue.py +0 -0
  82. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/gate_a.py +0 -0
  83. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/gates.py +0 -0
  84. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/issues.py +0 -0
  85. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/lifecycle.py +0 -0
  86. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/machine.py +0 -0
  87. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/merge.py +0 -0
  88. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/milestone.py +0 -0
  89. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/plan_followup.py +0 -0
  90. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/plans.py +0 -0
  91. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/portal.py +0 -0
  92. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/pr.py +0 -0
  93. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/release.py +0 -0
  94. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/repo.py +0 -0
  95. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/report.py +0 -0
  96. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/review.py +0 -0
  97. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/scorecard.py +0 -0
  98. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/sessions.py +0 -0
  99. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/setup.py +0 -0
  100. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/status.py +0 -0
  101. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/store_migrate.py +0 -0
  102. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/terminal.py +0 -0
  103. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/test_gate.py +0 -0
  104. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/tui.py +0 -0
  105. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/comments.py +0 -0
  106. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/config.py +0 -0
  107. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/config_reload.py +0 -0
  108. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/confirm_test.py +0 -0
  109. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/dao.py +0 -0
  110. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/dashboard/__init__.py +0 -0
  111. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/dashboard/fixture.py +0 -0
  112. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/dashboard/index.html +0 -0
  113. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/dashboard/server.py +0 -0
  114. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/dashboard/terminal.py +0 -0
  115. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/db.py +0 -0
  116. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/dead_end.py +0 -0
  117. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/decomposition_chat.py +0 -0
  118. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/README.md +0 -0
  119. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-agent.service +0 -0
  120. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-backup.service +0 -0
  121. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-backup.timer +0 -0
  122. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-db-backup.service +0 -0
  123. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-db-backup.sh +0 -0
  124. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-db-backup.timer +0 -0
  125. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-dr-verify.service +0 -0
  126. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-dr-verify.timer +0 -0
  127. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-drive-queue.service +0 -0
  128. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-drive-queue.timer +0 -0
  129. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-failure-notify.service +0 -0
  130. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-fleet-watchdog.service +0 -0
  131. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-fleet-watchdog.timer +0 -0
  132. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-notify.service +0 -0
  133. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-notify.timer +0 -0
  134. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-release-propagate.service +0 -0
  135. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-release-propagate.timer +0 -0
  136. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-release-window.service +0 -0
  137. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-release-window.timer +0 -0
  138. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-serve.service +0 -0
  139. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-web-dist-build.service +0 -0
  140. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-web-dist-build.timer +0 -0
  141. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-web.service +0 -0
  142. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy_manifest.py +0 -0
  143. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy_units.py +0 -0
  144. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deprecation_telemetry.py +0 -0
  145. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deps.py +0 -0
  146. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/diagnose.py +0 -0
  147. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/dispatch.py +0 -0
  148. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/dispatch_liveness.py +0 -0
  149. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/dist_name.py +0 -0
  150. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/dr_promote.py +0 -0
  151. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/dr_verify.py +0 -0
  152. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/drive.py +0 -0
  153. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/drive_sessions_snapshot.py +0 -0
  154. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/drive_state.py +0 -0
  155. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/events.py +0 -0
  156. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/failure_class.py +0 -0
  157. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/failure_classifier.py +0 -0
  158. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/filelock.py +0 -0
  159. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/fleet_config_health.py +0 -0
  160. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/forge_availability.py +0 -0
  161. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/freshness.py +0 -0
  162. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/gate_a.py +0 -0
  163. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/gate_b.py +0 -0
  164. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/gate_snapshot.py +0 -0
  165. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/gates.py +0 -0
  166. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/gen_board_fixture.py +0 -0
  167. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/github_ops.py +0 -0
  168. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/github_throttle.py +0 -0
  169. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/goal.py +0 -0
  170. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/graph_health.py +0 -0
  171. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/__init__.py +0 -0
  172. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/aggregate.py +0 -0
  173. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/__init__.py +0 -0
  174. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/_ci_pin.py +0 -0
  175. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/agent_install.py +0 -0
  176. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/cargo_targets.py +0 -0
  177. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/claude_binary.py +0 -0
  178. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/config_drift.py +0 -0
  179. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/coord_tui_ci_pin.py +0 -0
  180. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/coord_web_ci_pin.py +0 -0
  181. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/deploy_lane_facts.py +0 -0
  182. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/disk.py +0 -0
  183. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/fleet_board.py +0 -0
  184. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/fleet_deploy_lanes.py +0 -0
  185. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/fleet_phantom.py +0 -0
  186. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/fleet_unit_drift.py +0 -0
  187. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/graph.py +0 -0
  188. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/graphify_cli.py +0 -0
  189. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/index_lock.py +0 -0
  190. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/issues_sync_staleness.py +0 -0
  191. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/local_machine_identity.py +0 -0
  192. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/plan_usage.py +0 -0
  193. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/pr_churn.py +0 -0
  194. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/release_cordon.py +0 -0
  195. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/repo_state.py +0 -0
  196. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/spawned_coord.py +0 -0
  197. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/stalled_pipeline.py +0 -0
  198. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/timer_active.py +0 -0
  199. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/toolchain.py +0 -0
  200. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/unit_drift.py +0 -0
  201. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/unit_enablement.py +0 -0
  202. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/wedged_drive_queue.py +0 -0
  203. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/worktrees.py +0 -0
  204. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/cli.py +0 -0
  205. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/context.py +0 -0
  206. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/fleet_snapshot.py +0 -0
  207. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/models.py +0 -0
  208. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/pypi.py +0 -0
  209. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/registry.py +0 -0
  210. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/render.py +0 -0
  211. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/units.py +0 -0
  212. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/hooks.py +0 -0
  213. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/housekeeping.py +0 -0
  214. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/interactive.py +0 -0
  215. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/invariant_alarms.py +0 -0
  216. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/issue_store.py +0 -0
  217. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/issues_sync_status.py +0 -0
  218. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/liveness_auditor.py +0 -0
  219. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/machine_fault.py +0 -0
  220. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/machine_metrics.py +0 -0
  221. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/machine_onboard.py +0 -0
  222. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/machine_pause.py +0 -0
  223. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/machine_stats.py +0 -0
  224. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/merge_queue.py +0 -0
  225. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/milestone_chat.py +0 -0
  226. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/milestone_dispatch.py +0 -0
  227. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/milestone_gate.py +0 -0
  228. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/milestone_order.py +0 -0
  229. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/mock_author.py +0 -0
  230. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/models.py +0 -0
  231. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/network.py +0 -0
  232. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/new_issue_chat.py +0 -0
  233. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/notifier/__init__.py +0 -0
  234. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/notifier/baseline.py +0 -0
  235. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/notifier/cli.py +0 -0
  236. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/notifier/collect.py +0 -0
  237. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/notifier/digest.py +0 -0
  238. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/notifier/models.py +0 -0
  239. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/notifier/predicate.py +0 -0
  240. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/notifier/service.py +0 -0
  241. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/notifier/store.py +0 -0
  242. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/notifier/transport.py +0 -0
  243. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/openapi.py +0 -0
  244. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/overlap_fence.py +0 -0
  245. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/overlap_predict.py +0 -0
  246. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/parentage.py +0 -0
  247. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/parentage_github.py +0 -0
  248. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/pipeline.py +0 -0
  249. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/plan_parser.py +0 -0
  250. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/plans.py +0 -0
  251. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/platform_paths.py +0 -0
  252. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/portal_bridge.py +0 -0
  253. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/portal_store.py +0 -0
  254. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/portal_sync.py +0 -0
  255. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/pr_body_lint.py +0 -0
  256. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/prereqs.py +0 -0
  257. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/progress.py +0 -0
  258. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/providers/__init__.py +0 -0
  259. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/providers/base.py +0 -0
  260. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/providers/claude.py +0 -0
  261. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/providers/claude_pty.py +0 -0
  262. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/providers/opencode.py +0 -0
  263. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/queue_diagnose.py +0 -0
  264. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/reconcile_tick.py +0 -0
  265. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/refine_chat.py +0 -0
  266. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/release_cordon.py +0 -0
  267. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/release_propagate.py +0 -0
  268. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/release_verify.py +0 -0
  269. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/release_window.py +0 -0
  270. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/repo_dormancy.py +0 -0
  271. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/repo_edit.py +0 -0
  272. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/repo_onboard.py +0 -0
  273. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/reports.py +0 -0
  274. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/rest_schema.py +0 -0
  275. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/restart_cmd.py +0 -0
  276. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/revalidate.py +0 -0
  277. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/review.py +0 -0
  278. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/scorecard.py +0 -0
  279. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/self_health.py +0 -0
  280. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/serve_app.py +0 -0
  281. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/skills/coord-dispatch-verbs/SKILL.md +0 -0
  282. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/skills/drive-queue-preflight/SKILL.md +0 -0
  283. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/skills/fleet-restart-safety/SKILL.md +0 -0
  284. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/skills/merge-stuck-triage/SKILL.md +0 -0
  285. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/skills/pipeline-limbo-triage/SKILL.md +0 -0
  286. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/skills/portal-followup/SKILL.md +0 -0
  287. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/skills/release-now/SKILL.md +0 -0
  288. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/skills/review-verdict-recovery/SKILL.md +0 -0
  289. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/skills/tui-quadraui-workflow/SKILL.md +0 -0
  290. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/skills/update-issue/SKILL.md +0 -0
  291. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/smoke.py +0 -0
  292. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/spend_ceiling.py +0 -0
  293. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/split_work.py +0 -0
  294. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/sql.py +0 -0
  295. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/stage_projection.py +0 -0
  296. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/state.py +0 -0
  297. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/store_migrate.py +0 -0
  298. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/store_parity.py +0 -0
  299. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/templates/deploy-cloudflare.node.yml +0 -0
  300. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/test_author.py +0 -0
  301. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/test_chat.py +0 -0
  302. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/test_orchestrator.py +0 -0
  303. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/test_report.py +0 -0
  304. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/tui_release.py +0 -0
  305. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/uat_checks.py +0 -0
  306. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/usage.py +0 -0
  307. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/usage_limits.py +0 -0
  308. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/usage_rollup.py +0 -0
  309. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/worker_events.py +0 -0
  310. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coordinator.example.yml +0 -0
  311. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-agent.service +0 -0
  312. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-backup.service +0 -0
  313. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-backup.timer +0 -0
  314. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-db-backup.service +0 -0
  315. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-db-backup.sh +0 -0
  316. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-db-backup.timer +0 -0
  317. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-dr-verify.service +0 -0
  318. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-dr-verify.timer +0 -0
  319. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-drive-queue.service +0 -0
  320. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-drive-queue.timer +0 -0
  321. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-failure-notify.service +0 -0
  322. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-failure-notify.sh +0 -0
  323. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-fleet-watchdog.service +0 -0
  324. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-fleet-watchdog.timer +0 -0
  325. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-notify.service +0 -0
  326. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-notify.timer +0 -0
  327. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-release-propagate.service +0 -0
  328. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-release-propagate.timer +0 -0
  329. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-release-window.service +0 -0
  330. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-release-window.timer +0 -0
  331. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-serve.service +0 -0
  332. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-web-dist-build.service +0 -0
  333. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-web-dist-build.sh +0 -0
  334. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-web-dist-build.timer +0 -0
  335. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-web-rollback.sh +0 -0
  336. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-web.service +0 -0
  337. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/node-shim.sh +0 -0
  338. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/ADR_COORD_TUI_CI.md +0 -0
  339. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/ADR_COORD_WEB_ACCEPTANCE_SUITE.md +0 -0
  340. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/ADR_COORD_WEB_CI.md +0 -0
  341. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/ADR_COORD_WEB_DIST.md +0 -0
  342. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/ADR_PY_RUST_MIRRORS.md +0 -0
  343. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/AGENT_OPERATIONS.md +0 -0
  344. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/ARCHITECTURE.md +0 -0
  345. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/ARCH_SECURITY_GATES.md +0 -0
  346. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/COCKPIT.md +0 -0
  347. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/CONTROL_CENTER.md +0 -0
  348. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/COST_DISCIPLINE.md +0 -0
  349. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/CROSS_PLATFORM.md +0 -0
  350. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/CUSTOMER_FACING_APPS.md +0 -0
  351. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/CUSTOMER_PORTAL.md +0 -0
  352. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/DATA_STORE_SELECTION.md +0 -0
  353. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/DISASTER_RECOVERY.md +0 -0
  354. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/DRIVE_QUEUE.md +0 -0
  355. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/EPHEMERAL_WORKERS.md +0 -0
  356. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/FORGE_MIGRATION.md +0 -0
  357. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/GRAPHIFY_SETUP.md +0 -0
  358. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/ISSUE_GUIDANCE.md +0 -0
  359. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/MAC_MINI.md +0 -0
  360. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
  361. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/NOTIFIER.md +0 -0
  362. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/OPENCODE_VERIFICATION.md +0 -0
  363. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/OPERATING_GOTCHAS.md +0 -0
  364. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/OPERATOR_GUIDES.md +0 -0
  365. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/ORACLE_LOOP.md +0 -0
  366. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/PHONE_WEBAPP.md +0 -0
  367. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/PIPELINE_V2.md +0 -0
  368. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/PLATFORM_EVOLUTION.md +0 -0
  369. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/SECOND_BACKEND.md +0 -0
  370. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/STORE_SERVICE.md +0 -0
  371. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/TEST_FIRST_BUG_LANE.md +0 -0
  372. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/WEB_CONTROL_CENTER.md +0 -0
  373. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/WSL_WINDOWS_WORKER.md +0 -0
  374. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/mocks/web/README.md +0 -0
  375. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/mocks/web/_tokens.css +0 -0
  376. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/mocks/web/issue-detail.html +0 -0
  377. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/mocks/web/pipeline-narrow.html +0 -0
  378. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/mocks/web/pipeline-wide.html +0 -0
  379. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/graphify-out/.gitignore +0 -0
  380. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/install-agent.sh +0 -0
  381. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/pyproject.toml +0 -0
  382. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/audit_review_verdict_overrides.py +0 -0
  383. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/azure-workers/bootstrap-shared.sh +0 -0
  384. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/azure-workers/build-worker-image.sh +0 -0
  385. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/azure-workers/coordinator-machine.py +0 -0
  386. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/azure-workers/dr-down.sh +0 -0
  387. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/azure-workers/dr-up.sh +0 -0
  388. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/azure-workers/epic-down.sh +0 -0
  389. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/azure-workers/epic-up.sh +0 -0
  390. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/azure-workers/preflight.sh +0 -0
  391. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/azure-workers/provision-server.sh +0 -0
  392. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/azure-workers/provision-worker.sh +0 -0
  393. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
  394. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/azure-workers/tailnet-acl.hujson +0 -0
  395. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/azure-workers/throwaway-vm.sh +0 -0
  396. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/azure-workers/verify-github-token.sh +0 -0
  397. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/check_gh_argv_containment.py +0 -0
  398. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/codegen.py +0 -0
  399. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/coord-test-runner.sh +0 -0
  400. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/coord-tui-scaffold/.github/coord-ci-acceptance.yml +0 -0
  401. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/coord-tui-scaffold/.github/workflows/cargo-test.yml +0 -0
  402. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/coord-tui-scaffold/.github/workflows/codegen-drift.yml +0 -0
  403. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/coord-tui-scaffold/CLAUDE.md +0 -0
  404. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/coord-venv-rollback.sh +0 -0
  405. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/drive-batch.sh +0 -0
  406. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/extract-coord-tui.sh +0 -0
  407. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/fleet_watchdog.py +0 -0
  408. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/gen_board_fixture.py +0 -0
  409. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/gen_mock_index.py +0 -0
  410. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/lib/provision-core.sh +0 -0
  411. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/next_release_tag.py +0 -0
  412. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/provision-machine.sh +0 -0
  413. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/run_tests_in_populated_home.sh +0 -0
  414. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/run_tests_without_gh.sh +0 -0
  415. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/setup-macmini.sh +0 -0
  416. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/smoke_437_interactive.py +0 -0
  417. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/verify-provision-noble.sh +0 -0
  418. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/verify_878_review_capture.py +0 -0
  419. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/verify_release_published.py +0 -0
  420. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/verify_release_wheel.py +0 -0
  421. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/setup.cfg +0 -0
  422. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/SMOKE_SET.md +0 -0
  423. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/__init__.py +0 -0
  424. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/acceptance/ms-37/conftest.py +0 -0
  425. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/acceptance/ms-37/contract.md +0 -0
  426. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/acceptance/ms-37/manifest.yml +0 -0
  427. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
  428. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
  429. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/acceptance/ms-51/contract.md +0 -0
  430. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
  431. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
  432. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/acceptance/ms-51/manifest.yml +0 -0
  433. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
  434. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/acceptance/ms-51/tsconfig.json +0 -0
  435. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
  436. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/backends.py +0 -0
  437. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/conftest.py +0 -0
  438. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/board-pipeline-basic.json +0 -0
  439. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
  440. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
  441. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
  442. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/opencode_run_sample.jsonl +0 -0
  443. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/playwright/all_pass.json +0 -0
  444. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/playwright/global_setup_crash.json +0 -0
  445. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/playwright/mixed_fail.json +0 -0
  446. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/playwright/retry_then_pass.json +0 -0
  447. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
  448. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/playwright/skip.json +0 -0
  449. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/playwright/truncated.json +0 -0
  450. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
  451. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
  452. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
  453. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
  454. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
  455. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
  456. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
  457. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
  458. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_acceptance.py +0 -0
  459. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_acceptance_drivers.py +0 -0
  460. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent.py +0 -0
  461. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_api_error.py +0 -0
  462. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_app.py +0 -0
  463. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_branch_base.py +0 -0
  464. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_branch_capture.py +0 -0
  465. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_config_free_1712.py +0 -0
  466. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_deploy_units_endpoint.py +0 -0
  467. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_dirty_worktree.py +0 -0
  468. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_drive_queue_reconcile_2373.py +0 -0
  469. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_graph_self_heal.py +0 -0
  470. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_health_h3.py +0 -0
  471. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_idle_restart.py +0 -0
  472. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_push_failure.py +0 -0
  473. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_reap.py +0 -0
  474. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_repos_and_pull.py +0 -0
  475. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_restart_services_endpoint.py +0 -0
  476. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_skills_self_heal.py +0 -0
  477. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_startup_diagnostics.py +0 -0
  478. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_update.py +0 -0
  479. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_update_bluegreen.py +0 -0
  480. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_usage_limit.py +0 -0
  481. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_zero_commit.py +0 -0
  482. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_ambient_home_isolation.py +0 -0
  483. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_approve_capability_reroute_3241.py +0 -0
  484. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_approve_dependency_busy_2804.py +0 -0
  485. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_approve_reject_plan.py +0 -0
  486. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_approve_usage_gate.py +0 -0
  487. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_approved_work_2532.py +0 -0
  488. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_approved_work_2996.py +0 -0
  489. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_assignment_already_recorded_daemon.py +0 -0
  490. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_audit_log.py +0 -0
  491. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_audit_outcome.py +0 -0
  492. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_audit_query.py +0 -0
  493. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_auto_loop.py +0 -0
  494. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_auto_release_publish_2035.py +0 -0
  495. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_backend_selection.py +0 -0
  496. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_backup.py +0 -0
  497. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_base_checkout_restore.py +0 -0
  498. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_block_log.py +0 -0
  499. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_board_cap_762.py +0 -0
  500. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_board_fixture.py +0 -0
  501. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_board_read_path.py +0 -0
  502. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_board_schema.py +0 -0
  503. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_board_service.py +0 -0
  504. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_board_state.py +0 -0
  505. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_board_wire.py +0 -0
  506. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_brain.py +0 -0
  507. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_branch_model.py +0 -0
  508. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_bug_intake.py +0 -0
  509. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_build_worker_image_env_update.py +0 -0
  510. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cargo_cache.py +0 -0
  511. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_check_gh_argv_containment.py +0 -0
  512. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_ci_acceptance_gate_1950.py +0 -0
  513. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_ci_fix.py +0 -0
  514. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_ci_github.py +0 -0
  515. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_ci_gitlab.py +0 -0
  516. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_ci_parity_2091.py +0 -0
  517. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_ci_store.py +0 -0
  518. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_claim.py +0 -0
  519. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_claude_md_budget.py +0 -0
  520. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_claude_setup_token.py +0 -0
  521. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_acceptance.py +0 -0
  522. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_assign.py +0 -0
  523. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
  524. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_assign_interactive_remote.py +0 -0
  525. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_assign_provider.py +0 -0
  526. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_assign_repo_drift_2219.py +0 -0
  527. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_audit.py +0 -0
  528. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_chat_continue.py +0 -0
  529. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_ci.py +0 -0
  530. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_codegen.py +0 -0
  531. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_decide.py +0 -0
  532. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_diagnose_capability_rules.py +0 -0
  533. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_diagnose_config_provenance.py +0 -0
  534. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_diagnose_forge_availability.py +0 -0
  535. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_diagnose_graph.py +0 -0
  536. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_diagnose_self.py +0 -0
  537. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_diagnose_test_coverage.py +0 -0
  538. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_doctor.py +0 -0
  539. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_doctor_config_free_1801.py +0 -0
  540. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
  541. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_doctor_store_backend_3084.py +0 -0
  542. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_drive.py +0 -0
  543. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_drive_queue.py +0 -0
  544. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_escalate.py +0 -0
  545. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_fix_headless_review.py +0 -0
  546. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_gate_a.py +0 -0
  547. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_install_drift.py +0 -0
  548. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_install_skills.py +0 -0
  549. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_issue_comment.py +0 -0
  550. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_issue_create_label.py +0 -0
  551. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_issue_reopen.py +0 -0
  552. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_issue_view_list.py +0 -0
  553. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_issues.py +0 -0
  554. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_merge.py +0 -0
  555. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_milestone_assign.py +0 -0
  556. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_milestone_capture.py +0 -0
  557. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_milestone_chat_add_child.py +0 -0
  558. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_milestone_dispatch.py +0 -0
  559. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_milestone_gate_b.py +0 -0
  560. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_milestone_gate_c.py +0 -0
  561. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_milestone_order.py +0 -0
  562. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
  563. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_milestone_ship.py +0 -0
  564. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_network.py +0 -0
  565. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_new_issue_chat.py +0 -0
  566. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_plans.py +0 -0
  567. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_portal.py +0 -0
  568. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_pr.py +0 -0
  569. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_pull_artifact.py +0 -0
  570. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_queue.py +0 -0
  571. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_reattach_sessions.py +0 -0
  572. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_refine_board.py +0 -0
  573. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_release_preflight.py +0 -0
  574. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_release_propagate.py +0 -0
  575. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_release_window.py +0 -0
  576. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_repo_2220.py +0 -0
  577. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_review_test_author_tracking_epic_2639.py +0 -0
  578. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_scorecard.py +0 -0
  579. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_serve_store_backend_3084.py +0 -0
  580. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_set_review_findings.py +0 -0
  581. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_status_advisory_terminal.py +0 -0
  582. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_status_contested_tag.py +0 -0
  583. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_status_invariant_alarms.py +0 -0
  584. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_status_machine_fault.py +0 -0
  585. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_status_merge_queue.py +0 -0
  586. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_status_provider.py +0 -0
  587. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_status_retried_3340.py +0 -0
  588. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_status_review_finalizing.py +0 -0
  589. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_status_supervisor_3366.py +0 -0
  590. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_status_test_failed_tag.py +0 -0
  591. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_status_usage_limit.py +0 -0
  592. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_sync_comments_873.py +0 -0
  593. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_test_plan.py +0 -0
  594. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_track.py +0 -0
  595. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_tui_update.py +0 -0
  596. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_wait.py +0 -0
  597. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_client.py +0 -0
  598. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_client_base_install.py +0 -0
  599. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_client_config_cache_atomic_3052.py +0 -0
  600. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_client_resource_migration_1946.py +0 -0
  601. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_commands_common.py +0 -0
  602. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_comments.py +0 -0
  603. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_completion_summary.py +0 -0
  604. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_config.py +0 -0
  605. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_config_acceptance.py +0 -0
  606. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_config_audit.py +0 -0
  607. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_config_drift_check.py +0 -0
  608. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_config_effective.py +0 -0
  609. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_config_pricing.py +0 -0
  610. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
  611. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_config_usage_gate.py +0 -0
  612. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_confirm_test.py +0 -0
  613. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_conflict_fix_semantic.py +0 -0
  614. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_coord_log_daemon_fallback_2547.py +0 -0
  615. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_coord_test.py +0 -0
  616. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_coord_test_runner_acceptance_toolchain_2936.py +0 -0
  617. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_coord_test_runner_baseline.py +0 -0
  618. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_coord_test_runner_populated_home.py +0 -0
  619. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_coord_test_runner_routing.py +0 -0
  620. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_coord_test_runner_toolchain.py +0 -0
  621. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_coord_uat.py +0 -0
  622. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_coord_web_sse_restart_live.py +0 -0
  623. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_coordinator_machine.py +0 -0
  624. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cross_platform_imports.py +0 -0
  625. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_dao.py +0 -0
  626. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_dashboard.py +0 -0
  627. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_dashboard_api.py +0 -0
  628. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_dashboard_fixture.py +0 -0
  629. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_dashboard_server.py +0 -0
  630. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_dashboard_terminal.py +0 -0
  631. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_dashboard_terminal_live.py +0 -0
  632. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_db.py +0 -0
  633. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_dead_end.py +0 -0
  634. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_decomposition_chat.py +0 -0
  635. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_deploy_coord_db_backup.py +0 -0
  636. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_deploy_coord_web_dist.py +0 -0
  637. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_deploy_coord_web_rollback.py +0 -0
  638. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_deploy_db_backup_unit.py +0 -0
  639. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_deploy_drive_queue_unit.py +0 -0
  640. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_deploy_failure_notify_unit.py +0 -0
  641. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_deploy_manifest.py +0 -0
  642. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_deploy_notify_unit.py +0 -0
  643. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_deploy_units_lane.py +0 -0
  644. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_deploy_web_unit.py +0 -0
  645. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_deprecation_telemetry.py +0 -0
  646. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_deps.py +0 -0
  647. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_diagnose.py +0 -0
  648. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_dispatch.py +0 -0
  649. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_dispatch_liveness.py +0 -0
  650. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_dispatch_target_validation.py +0 -0
  651. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_dispatch_workers.py +0 -0
  652. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_dist_name.py +0 -0
  653. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_done_housekeeping.py +0 -0
  654. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_dr_azure_scripts.py +0 -0
  655. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_dr_promote.py +0 -0
  656. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_dr_verify.py +0 -0
  657. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_drive.py +0 -0
  658. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_drive_machine_fault.py +0 -0
  659. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_drive_queue_blocked_rendering.py +0 -0
  660. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_drive_queue_launch_argv.py +0 -0
  661. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_drive_queue_max_parallel_config.py +0 -0
  662. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_drive_queue_max_parallel_per_repo_config.py +0 -0
  663. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_drive_queue_roll_pending.py +0 -0
  664. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_drive_queue_self_cordon_escalation.py +0 -0
  665. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_drive_sessions_snapshot.py +0 -0
  666. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_drive_state.py +0 -0
  667. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_drive_tmux.py +0 -0
  668. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_epic_up_capability_detection.py +0 -0
  669. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
  670. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_epic_up_image_provenance.py +0 -0
  671. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_errors.py +0 -0
  672. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_events.py +0 -0
  673. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_failure_class.py +0 -0
  674. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_failure_classifier.py +0 -0
  675. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_filelock.py +0 -0
  676. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
  677. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_fix_escalation_classifier.py +0 -0
  678. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_fix_of_force_override.py +0 -0
  679. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_fleet_config_health.py +0 -0
  680. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_fleet_health_probes.py +0 -0
  681. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_fleet_health_snapshot.py +0 -0
  682. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_fleet_watchdog.py +0 -0
  683. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_forge_availability.py +0 -0
  684. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_freshness.py +0 -0
  685. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_gate_a.py +0 -0
  686. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_gate_b.py +0 -0
  687. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_gate_snapshot_staleness.py +0 -0
  688. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_gates.py +0 -0
  689. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_gather_fleet_tmux_sessions.py +0 -0
  690. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_gen_mock_index.py +0 -0
  691. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_generated_rust_fixture.py +0 -0
  692. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_generated_rust_requests.py +0 -0
  693. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_generated_types_fixture.py +0 -0
  694. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_github_ops.py +0 -0
  695. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_github_throttle.py +0 -0
  696. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_goal.py +0 -0
  697. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_graph_health.py +0 -0
  698. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_graph_selfheal_absent_2237.py +0 -0
  699. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_handoff.py +0 -0
  700. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_checks.py +0 -0
  701. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_cli.py +0 -0
  702. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_cli_graph.py +0 -0
  703. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_config.py +0 -0
  704. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_context.py +0 -0
  705. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_coord_tui_ci_pin.py +0 -0
  706. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_coord_web_ci_pin.py +0 -0
  707. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_deploy_lane_facts.py +0 -0
  708. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_fix.py +0 -0
  709. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_incident_regression.py +0 -0
  710. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_issues_sync_staleness.py +0 -0
  711. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_pr_churn.py +0 -0
  712. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_pypi.py +0 -0
  713. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_registry.py +0 -0
  714. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_release_cordon_probe.py +0 -0
  715. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_timer_active.py +0 -0
  716. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_toolchain.py +0 -0
  717. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_unit_drift.py +0 -0
  718. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_unit_enablement.py +0 -0
  719. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_wedged_drive_queue.py +0 -0
  720. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_hooks.py +0 -0
  721. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_housekeeping.py +0 -0
  722. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_human_attended_437.py +0 -0
  723. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_init.py +0 -0
  724. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_install_agent_venv_2911.py +0 -0
  725. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_integration.py +0 -0
  726. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_interactive.py +0 -0
  727. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_interactive_briefing_echo.py +0 -0
  728. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_interactive_pane_log_2541.py +0 -0
  729. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_interactive_prefill_state.py +0 -0
  730. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_interactive_session_relaunch.py +0 -0
  731. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_interactive_test_verdict_backstop.py +0 -0
  732. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_interactive_token_attribution.py +0 -0
  733. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_interactive_worktree.py +0 -0
  734. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_invariant_alarms.py +0 -0
  735. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_issue_store_seam.py +0 -0
  736. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_issues_sync_status.py +0 -0
  737. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_liveness_auditor.py +0 -0
  738. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_liveness_notify.py +0 -0
  739. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_lock_contention_ratchet.py +0 -0
  740. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_machine_fault.py +0 -0
  741. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_machine_metrics.py +0 -0
  742. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_machine_onboard.py +0 -0
  743. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_machine_pause.py +0 -0
  744. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_machine_stats.py +0 -0
  745. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_merge_queue.py +0 -0
  746. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_merge_verify.py +0 -0
  747. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_milestone_chat.py +0 -0
  748. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_milestone_dispatch.py +0 -0
  749. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_milestone_gate.py +0 -0
  750. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_milestone_order.py +0 -0
  751. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_milestone_seam.py +0 -0
  752. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_mock_author.py +0 -0
  753. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_model_tiering.py +0 -0
  754. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_models.py +0 -0
  755. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_models_config_labels.py +0 -0
  756. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_needs_attention.py +0 -0
  757. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_network.py +0 -0
  758. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_new_issue_chat.py +0 -0
  759. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_next_release_tag.py +0 -0
  760. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_node_shim.py +0 -0
  761. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_notifier_baseline.py +0 -0
  762. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_notifier_cli.py +0 -0
  763. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_notifier_collect.py +0 -0
  764. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_notifier_config.py +0 -0
  765. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_notifier_drive_seam.py +0 -0
  766. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_notifier_isolation.py +0 -0
  767. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_notifier_predicate.py +0 -0
  768. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_notifier_quiet_hours.py +0 -0
  769. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_notifier_service.py +0 -0
  770. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_notify_drain.py +0 -0
  771. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_openapi.py +0 -0
  772. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_operational_defaults.py +0 -0
  773. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_overlap_fence.py +0 -0
  774. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_overlap_predict.py +0 -0
  775. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_packaged_deploy_units.py +0 -0
  776. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_parentage.py +0 -0
  777. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_paste_landed.py +0 -0
  778. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_phantom_heal_venv_independence_2570.py +0 -0
  779. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_pipeline.py +0 -0
  780. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_plan_followup_approve_plan_command.py +0 -0
  781. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_plan_followup_pr_command.py +0 -0
  782. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_plan_followup_review_command.py +0 -0
  783. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_plan_only.py +0 -0
  784. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_plan_parser.py +0 -0
  785. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_platform_paths.py +0 -0
  786. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_portal_bridge.py +0 -0
  787. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_portal_config.py +0 -0
  788. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_portal_store.py +0 -0
  789. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_portal_sync.py +0 -0
  790. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_pr_body_lint.py +0 -0
  791. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_prereqs.py +0 -0
  792. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_production_db_guard.py +0 -0
  793. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_progress.py +0 -0
  794. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_provider_seam.py +0 -0
  795. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_providers.py +0 -0
  796. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_providers_config_labels.py +0 -0
  797. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_providers_pty.py +0 -0
  798. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_provision_core.py +0 -0
  799. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_provision_machine.py +0 -0
  800. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_py_rust_mirror_inventory.py +0 -0
  801. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_quiet_hours.py +0 -0
  802. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_quiet_hours_store_2146.py +0 -0
  803. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_reap_merged_sessions.py +0 -0
  804. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_reap_stale_interactive_tick.py +0 -0
  805. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_reconcile_branch.py +0 -0
  806. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_reconcile_completions.py +0 -0
  807. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_reconcile_late_agent_reports_2547.py +0 -0
  808. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_reconcile_merges.py +0 -0
  809. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_reconcile_no_agent_record.py +0 -0
  810. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_reconcile_tick.py +0 -0
  811. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_reconcile_usage_limit_done.py +0 -0
  812. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_refine_chat.py +0 -0
  813. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_release_cordon_2101.py +0 -0
  814. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
  815. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_release_cordon_deadlock_2240.py +0 -0
  816. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_release_cordon_drain_stall_3336.py +0 -0
  817. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_release_cordon_stuck_2490.py +0 -0
  818. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_release_propagate.py +0 -0
  819. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_release_propagate_threshold.py +0 -0
  820. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_release_roll_between_legs_2854.py +0 -0
  821. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_release_roll_window_handoff.py +0 -0
  822. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_release_unified_1242.py +0 -0
  823. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_release_verify.py +0 -0
  824. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_release_window.py +0 -0
  825. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_remote_auto_prune.py +0 -0
  826. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_remote_interactive_reaper.py +0 -0
  827. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_repo_add.py +0 -0
  828. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_repo_dormancy.py +0 -0
  829. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_repo_edit_2220.py +0 -0
  830. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_repo_graph_fleet_2237.py +0 -0
  831. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_repo_max_parallel_3423.py +0 -0
  832. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_repo_onboard_2220.py +0 -0
  833. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_report_result_push.py +0 -0
  834. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_reports.py +0 -0
  835. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_restart_cmd.py +0 -0
  836. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_retry.py +0 -0
  837. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_retry_advisory_1606.py +0 -0
  838. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_retry_escalation_classify_3360.py +0 -0
  839. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_retry_type_1636.py +0 -0
  840. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_revalidate.py +0 -0
  841. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_review.py +0 -0
  842. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_review_end_review_without_verdict.py +0 -0
  843. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_review_parse_failure_diagnostic.py +0 -0
  844. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_review_reaffirm.py +0 -0
  845. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_review_state.py +0 -0
  846. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_review_verdict_backstop.py +0 -0
  847. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_review_verdict_override_audit.py +0 -0
  848. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_review_verdict_relay.py +0 -0
  849. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_review_zero_commits.py +0 -0
  850. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_scoped_review_wiring.py +0 -0
  851. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_scorecard.py +0 -0
  852. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_self_health.py +0 -0
  853. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_serve.py +0 -0
  854. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_serve_app.py +0 -0
  855. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_serve_app_board_trim.py +0 -0
  856. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_serve_rest_routes.py +0 -0
  857. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_session.py +0 -0
  858. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_slice_issue_attribution.py +0 -0
  859. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_smoke.py +0 -0
  860. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_smoke_fanout_manifest_3333.py +0 -0
  861. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_smoke_live_checkout_restore.py +0 -0
  862. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_smoke_workflow.py +0 -0
  863. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_spend_ceiling.py +0 -0
  864. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_spend_ceiling_coordinator.py +0 -0
  865. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_split.py +0 -0
  866. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_split_work.py +0 -0
  867. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_sql_dialect.py +0 -0
  868. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_sqlite_connect_ratchet.py +0 -0
  869. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_stage_projection.py +0 -0
  870. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_stale_busy_reviewer_697.py +0 -0
  871. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_stalled_pipeline.py +0 -0
  872. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_state.py +0 -0
  873. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_state_review_findings_daemon.py +0 -0
  874. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_status_fleet_footer.py +0 -0
  875. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_stop_1567.py +0 -0
  876. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_store_contract.py +0 -0
  877. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_store_migrate.py +0 -0
  878. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_stuck.py +0 -0
  879. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_stuck_test_state_watchdog_2803.py +0 -0
  880. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_terminal_command.py +0 -0
  881. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_test_author.py +0 -0
  882. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_test_chat.py +0 -0
  883. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_test_orchestrator.py +0 -0
  884. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_test_report.py +0 -0
  885. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_test_verdict_parsing.py +0 -0
  886. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_test_verdict_transcript_floor.py +0 -0
  887. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_text_io_encoding_audit.py +0 -0
  888. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_thin_client_board_audit.py +0 -0
  889. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_thin_client_config_load_1080.py +0 -0
  890. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_thin_client_daemon_routing_906.py +0 -0
  891. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_throwaway_vm.py +0 -0
  892. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_tmux_host.py +0 -0
  893. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_tmux_session.py +0 -0
  894. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_transcript_floor.py +0 -0
  895. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_uat_checks.py +0 -0
  896. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_usage.py +0 -0
  897. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_usage_limits.py +0 -0
  898. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_usage_rollup.py +0 -0
  899. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_venv_live_install_2121.py +0 -0
  900. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_version_single_source.py +0 -0
  901. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_watch.py +0 -0
  902. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
  903. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_worker_env_venv_isolation.py +0 -0
  904. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_worker_events.py +0 -0
  905. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_worker_image_pin_sync.py +0 -0
  906. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_worker_safety.py +0 -0
  907. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_worker_test_scoping.py +0 -0
  908. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_worktree.py +0 -0
  909. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_worktree_rmtree_chokepoint.py +0 -0
  910. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_write_parity.py +0 -0
  911. {code_coordinator-0.5.527 → code_coordinator-0.5.529}/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.527
3
+ Version: 0.5.529
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.527
3
+ Version: 0.5.529
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.529",
3
+ "distance": 0,
4
+ "node": "g3f472c582029adafcec0ee12c3abf4df1ccd9b88",
5
+ "dirty": false,
6
+ "branch": "HEAD",
7
+ "node_date": "2026-09-28"
8
+ }
@@ -41,6 +41,18 @@ this same worker for that case, briefed narrowly (see
41
41
  rebase and refuse — rather than resolve — the instant a real conflict or a
42
42
  content change (a ``git patch-id --stable`` mismatch) shows up, since that
43
43
  would mean the "just stale" premise was wrong.
44
+
45
+ #3462: a patch-id mismatch caught by the stale-rebase worker has TWO
46
+ distinct causes, not one — a genuine overlapping edit against the moved
47
+ base, OR the branch being SUPERSEDED (its content already landed on the
48
+ target through another change, so ``git pull --rebase`` drops the now-
49
+ empty commit, or the post-rebase diff is a strict subset of the original).
50
+ :func:`build_stale_rebase_briefing` checks patch-equivalence against the
51
+ target (``git merge-tree``, before and after the rebase) and emits a
52
+ distinct :data:`ALREADY_UPSTREAM_MARKER` for the superseded case, so
53
+ :func:`coord.reconcile.on_conflict_fix_done` can park the entry with
54
+ accurate "nothing to merge" text instead of escalating a conflict that
55
+ does not exist.
44
56
  """
45
57
 
46
58
  from __future__ import annotations
@@ -514,6 +526,16 @@ def sealed_conflict_could_touch_manifest(files: list[str]) -> bool:
514
526
  # MARKER: a fixed, machine-parseable string, not prose.
515
527
  STALE_REBASE_MISMATCH_MARKER = "coord:conflict=stale-rebase-mismatch"
516
528
 
529
+ # Marker a stale-rebase conflict-fix worker's log carries when it finds the
530
+ # branch's content is already fully present on the target branch — a
531
+ # patch-id (or diff) mismatch that comes from the branch being SUPERSEDED
532
+ # (the same change landed via another issue, maybe with extra tests) rather
533
+ # than from a real overlapping edit (#3462). This is the twin of
534
+ # STALE_REBASE_MISMATCH_MARKER: both fire on a patch-id difference, but only
535
+ # one of them means there is a genuine conflict to resolve — this one means
536
+ # there is nothing left to land at all.
537
+ ALREADY_UPSTREAM_MARKER = "coord:conflict=already-upstream"
538
+
517
539
  # Title prefix for a stale-rebase conflict-fix dispatch — visible in the TUI
518
540
  # Pipeline row so an operator can tell at a glance this used the narrower,
519
541
  # no-conflict-expected briefing rather than the ordinary one.
@@ -531,23 +553,40 @@ Rules:
531
553
  Don't try to use them — the harness will reject the call.
532
554
  - Stay on the worker's branch — do NOT push to main / develop / target.
533
555
  - Use git push --force-with-lease (NOT --force).
534
- - Before pushing, confirm the rebase changed nothing: compare the branch's \
535
- content-addressed `git patch-id --stable` against the target branch BEFORE \
536
- and AFTER the rebase. They must match exactly.
556
+ - BEFORE rebasing, check whether this branch's content is already fully \
557
+ present on the target (the same change landed via another issue, maybe \
558
+ with extra tests): compare `git merge-tree --write-tree origin/<target> \
559
+ HEAD` against `git rev-parse origin/<target>^{tree}`. If they match, \
560
+ merging this branch would add nothing — there is no conflict AND nothing \
561
+ to rebase. Stop immediately (do not rebase, do not push) and end your turn \
562
+ with a STUCK: line starting with the marker `coord:conflict=already-upstream`.
563
+ - Otherwise, before pushing, confirm the rebase changed nothing: compare \
564
+ the branch's content-addressed `git patch-id --stable` against the target \
565
+ branch BEFORE and AFTER the rebase. They must match exactly.
566
+ - AFTER rebasing, also check whether the branch ended up with zero commits \
567
+ ahead of the target (`git rev-list origin/<target>..HEAD` empty) or an \
568
+ empty diff (`git diff origin/<target> HEAD` empty) — `git pull --rebase` \
569
+ silently drops a commit that turned out to already be applied. That is the \
570
+ SAME already-upstream conclusion as the pre-rebase check, just caught \
571
+ later: stop, do NOT push, and use the same `coord:conflict=already-upstream` \
572
+ marker.
537
573
  - If a real conflict marker appears during the rebase, OR the before/after \
538
- patch-id differs, DO NOT resolve it and DO NOT push. This dispatch is only \
539
- authorized for a clean, content-preserving rebase — a real conflict means \
540
- the base's move genuinely overlaps this branch's own changes, which needs a \
541
- human judgment call, not a guess. Stop and end your turn with a STUCK: line \
574
+ patch-id differs and the branch is NOT already-upstream by the checks \
575
+ above, DO NOT resolve it and DO NOT push. This dispatch is only authorized \
576
+ for a clean, content-preserving rebase — a real conflict means the base's \
577
+ move genuinely overlaps this branch's own changes, which needs a human \
578
+ judgment call, not a guess. Stop and end your turn with a STUCK: line \
542
579
  that starts with the marker `coord:conflict=stale-rebase-mismatch`, e.g.
543
580
  STUCK: coord:conflict=stale-rebase-mismatch — patch-id before <hash>, \
544
581
  after <hash> differ
545
- The coordinator reads that marker from your transcript, not your process \
546
- exit code (which you cannot control), and escalates to a human.
582
+ The coordinator reads these markers from your transcript, not your process \
583
+ exit code (which you cannot control), and escalates to a human either way \
584
+ — `coord:conflict=already-upstream` gets accurate "nothing to merge" \
585
+ text instead of being treated as a real conflict.
547
586
 
548
587
  Progress reporting:
549
- - After each significant step (rebase started, patch-id verified, tests \
550
- passed, pushed), output:
588
+ - After each significant step (already-upstream checked, rebase started, \
589
+ patch-id verified, tests passed, pushed), output:
551
590
  STATUS: [what you just did] → [what you're about to do] → [confidence]
552
591
  - If you stop, output the STUCK: line described above and wait for \
553
592
  guidance.\
@@ -594,35 +633,72 @@ def build_stale_rebase_briefing(
594
633
  "## Steps",
595
634
  "",
596
635
  "1. `git fetch origin`",
597
- "2. Record the pre-rebase content fingerprint: "
636
+ "2. Check whether this branch is already fully upstream BEFORE "
637
+ "rebasing (#3462): `git merge-tree --write-tree "
638
+ f"origin/{entry.target_branch} HEAD` and compare its output tree "
639
+ f"hash against `git rev-parse origin/{entry.target_branch}^{{tree}}`. "
640
+ "If they match, merging this branch adds NOTHING — the same change "
641
+ "already landed on the target (e.g. via another issue). Stop here: "
642
+ "do not rebase, do not push — see \"When the branch is already "
643
+ "upstream\" below.",
644
+ "3. Record the pre-rebase content fingerprint: "
598
645
  f"`git diff origin/{entry.target_branch}...HEAD | git patch-id --stable`",
599
- f"3. `git pull --rebase origin {entry.target_branch}`",
600
- "4. If a conflict marker appears ANYWHERE, stop — see \"When NOT to "
646
+ f"4. `git pull --rebase origin {entry.target_branch}`",
647
+ "5. If a conflict marker appears ANYWHERE, stop — see \"When NOT to "
601
648
  "guess\" below. Do not resolve it.",
602
- "5. Record the post-rebase fingerprint the same way: "
649
+ "6. Check again whether the branch is already upstream, this time "
650
+ "AFTER rebasing: `git rev-list "
651
+ f"origin/{entry.target_branch}..HEAD` is empty, or "
652
+ f"`git diff origin/{entry.target_branch} HEAD` is empty. "
653
+ "`git pull --rebase` silently drops a commit that turns out to "
654
+ "already be applied, so this catches the same already-upstream "
655
+ "case step 2 might have missed (e.g. a subset diff that only "
656
+ "becomes empty once the rebase itself replays it). If either is "
657
+ "empty, stop here too — see \"When the branch is already upstream\" "
658
+ "below. Do not push.",
659
+ "7. Record the post-rebase fingerprint the same way as step 3: "
603
660
  f"`git diff origin/{entry.target_branch}...HEAD | git patch-id --stable`. "
604
- "It must EXACTLY match step 2's. If it doesn't, stop — see below.",
605
- f"6. Run tests: `{test_cmd}`",
606
- f"7. `git push --force-with-lease origin {entry.branch}`",
607
- "8. Exit 0 if push succeeds; non-zero otherwise.",
661
+ "It must EXACTLY match step 3's. If it doesn't, stop — see \"When "
662
+ "NOT to guess\" below.",
663
+ f"8. Run tests: `{test_cmd}`",
664
+ f"9. `git push --force-with-lease origin {entry.branch}`",
665
+ "10. Exit 0 if push succeeds; non-zero otherwise.",
666
+ "",
667
+ "## When the branch is already upstream",
668
+ "",
669
+ "Steps 2 and 6 both exist to catch the SAME conclusion at different "
670
+ "points: this branch's content is already fully present on "
671
+ f"`{entry.target_branch}` — landed through another change, possibly "
672
+ "with extra tests added alongside it. There is nothing left to "
673
+ "merge, and this is NOT a conflict of any kind (mechanical or "
674
+ "genuine) — do not rebase further, do not resolve anything, and do "
675
+ "NOT push. Stop and end your turn with a `STUCK:` line that begins "
676
+ f"with the exact marker `{ALREADY_UPSTREAM_MARKER}` and names which "
677
+ "check caught it, e.g.",
678
+ "",
679
+ f" STUCK: {ALREADY_UPSTREAM_MARKER} — merge-tree matches target, "
680
+ "branch adds nothing",
608
681
  "",
609
682
  "## When NOT to guess",
610
683
  "",
611
684
  "This dispatch is authorized for a PURE, content-preserving rebase "
612
685
  "only — not conflict resolution. If a conflict marker appears "
613
- "during the rebase, or the patch-id from step 5 differs from step "
614
- "2's, DO NOT resolve it and DO NOT push: that means the base "
615
- "genuinely overlaps this branch's own changes, which is a human "
616
- "judgment call, not this worker's. Stop and end your turn with a "
686
+ "during the rebase, or the patch-id from step 7 differs from step "
687
+ "3's, AND the branch is NOT already-upstream per steps 2/6 above, "
688
+ "DO NOT resolve it and DO NOT push: that means the base genuinely "
689
+ "overlaps this branch's own changes, which is a human judgment "
690
+ "call, not this worker's. Stop and end your turn with a "
617
691
  "`STUCK:` line that begins with the exact marker "
618
692
  f"`{STALE_REBASE_MISMATCH_MARKER}` and then names what happened, e.g.",
619
693
  "",
620
694
  f" STUCK: {STALE_REBASE_MISMATCH_MARKER} patch-id before <hash>, "
621
695
  "after <hash> differ",
622
696
  "",
623
- "The coordinator reads that marker from your transcript, not your",
697
+ "The coordinator reads these markers from your transcript, not your",
624
698
  "process exit code (which you cannot control), and escalates to a",
625
- f"human on issue #{entry.issue_number}.",
699
+ f"human on issue #{entry.issue_number} either way — the "
700
+ f"`{ALREADY_UPSTREAM_MARKER}` marker gets accurate \"nothing to "
701
+ f"merge\" text instead of being treated as a real conflict.",
626
702
  "",
627
703
  "You will NOT use `gh` or `git push --force` — both are denied by",
628
704
  "the harness. The coordinator owns PR retries and issue posting.",
@@ -642,6 +718,22 @@ def stale_rebase_mismatch_verdict_in_text(text: str | None) -> bool:
642
718
  return STALE_REBASE_MISMATCH_MARKER in _decode_worker_text(text)
643
719
 
644
720
 
721
+ def already_upstream_verdict_in_text(text: str | None) -> bool:
722
+ """True when a stale-rebase conflict-fix worker's log carries the
723
+ :data:`ALREADY_UPSTREAM_MARKER` — i.e. it found the branch's content
724
+ already fully present on the target (#3462), not a genuine conflict.
725
+
726
+ Deliberately does NOT also match :data:`STALE_REBASE_MISMATCH_MARKER` —
727
+ the two markers are distinct verdicts about the SAME underlying
728
+ patch-id difference, and callers need to tell them apart (see
729
+ :func:`detect_already_upstream`'s docstring for why order matters when
730
+ checking both).
731
+ """
732
+ if not text:
733
+ return False
734
+ return ALREADY_UPSTREAM_MARKER in _decode_worker_text(text)
735
+
736
+
645
737
  def build_conflict_fix_briefing(
646
738
  *,
647
739
  entry: QueuedMerge,
@@ -803,7 +895,7 @@ def detect_stale_rebase_mismatch(
803
895
  ) -> bool:
804
896
  """True when a finished stale-rebase conflict-fix worker refused to push
805
897
  because its rebase was not content-preserving (a real conflict, or a
806
- patch-id mismatch it caught in step 5 of :func:`build_stale_rebase_briefing`).
898
+ patch-id mismatch it caught in step 7 of :func:`build_stale_rebase_briefing`).
807
899
 
808
900
  Mirrors :func:`detect_semantic_conflict` exactly (same local-log-then-
809
901
  agent-endpoint lookup, same best-effort ``False`` on any read/transport
@@ -838,6 +930,57 @@ def detect_stale_rebase_mismatch(
838
930
  return False
839
931
 
840
932
 
933
+ def detect_already_upstream(
934
+ *,
935
+ log_path: str | None = None,
936
+ host: str | None = None,
937
+ assignment_id: str | None = None,
938
+ port: int = AGENT_PORT,
939
+ timeout: float = 15.0,
940
+ ) -> bool:
941
+ """True when a finished stale-rebase conflict-fix worker found the
942
+ branch's content already fully present on the target (#3462) — the
943
+ ``git merge-tree``/empty-diff checks in :func:`build_stale_rebase_briefing`
944
+ steps 2/6 caught the branch being SUPERSEDED rather than in genuine
945
+ conflict.
946
+
947
+ Mirrors :func:`detect_stale_rebase_mismatch` exactly (same local-log-
948
+ then-agent-endpoint lookup, same best-effort ``False`` on any read/
949
+ transport failure) but reads for :data:`ALREADY_UPSTREAM_MARKER` via
950
+ :func:`already_upstream_verdict_in_text`.
951
+
952
+ Callers that check both this and :func:`detect_stale_rebase_mismatch`
953
+ against the same log MUST check this one first (#3462 fix) — an
954
+ already-upstream verdict must win over a bare "genuine content
955
+ conflict" framing, since the two questions ("is there anything left to
956
+ merge at all?" vs. "does the rebase conflict?") are answered by
957
+ distinct, mutually exclusive markers in the same transcript.
958
+ """
959
+ if log_path:
960
+ try:
961
+ from pathlib import Path # noqa: PLC0415
962
+
963
+ p = Path(log_path)
964
+ if p.exists():
965
+ raw = p.read_text(encoding="utf-8", errors="replace")
966
+ if already_upstream_verdict_in_text(raw):
967
+ return True
968
+ except OSError:
969
+ pass
970
+
971
+ if host and assignment_id:
972
+ try:
973
+ resp = httpx.get(
974
+ f"http://{host}:{port}/logs/{assignment_id}", timeout=timeout
975
+ )
976
+ resp.raise_for_status()
977
+ return already_upstream_verdict_in_text(resp.text)
978
+ except (httpx.HTTPError, httpx.TimeoutException):
979
+ return False
980
+
981
+ return False
982
+
983
+
841
984
  def semantic_escalation_disabled(config: Config | None) -> bool:
842
985
  """True when a SEMANTIC give-up has nowhere to escalate to (#2566).
843
986
 
@@ -1383,9 +1526,11 @@ def dispatch_conflict_fix(
1383
1526
  conflict-fix path (same briefing/system-prompt/title as the plain
1384
1527
  ``else`` branch below — this is not a distinct dispatch kind, just a
1385
1528
  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,
1529
+ ``stale-rebase-mismatch`` refusal (not to be confused with an
1530
+ ``already-upstream`` verdict, #3462 — that one is NOT a conflict and
1531
+ never reaches this function): that verdict means the *just-stale*
1532
+ premise was wrong — the rebase was not content-preserving, so this may
1533
+ be an ordinary conflict that deserves the ordinary mechanical attempt,
1389
1534
  not an immediate HUMAN_REQUIRED. Passes
1390
1535
  ``ignore_stale_rebase_attempts=True`` to :func:`has_prior_conflict_fix`
1391
1536
  so the just-failed stale-rebase attempt — which never even tried a
@@ -6462,6 +6462,29 @@ def plan_tick(
6462
6462
  # carries fresh, right below.
6463
6463
  effective_last_reason: dict[str, str] = {e.key: e.last_reason for e in ordered}
6464
6464
 
6465
+ def _refresh_only(reason: str, current: str) -> dict[str, Any]:
6466
+ """``{}`` unless *reason* is non-empty and differs from *current*.
6467
+
6468
+ #3461: a `counted=False` deferral must never bump `deferrals` or feed
6469
+ the queue-level alert (see `Deferral`'s own docstring on that flag) —
6470
+ but the descriptive TEXT still has to keep up with reality when the
6471
+ walk re-derives it for an entry that isn't actually competing for a
6472
+ slot this tick (the queue is at capacity, or this entry sits behind
6473
+ an already-chosen launch in the report-only tail). Writing ONLY on a
6474
+ real change means `reason_at` — stamped by
6475
+ `coord.state._update_drive_queue_entry_local` whenever `last_reason`
6476
+ is present in the same update, #2133 — only moves when the text
6477
+ actually does, so the `(Nm ago)` age it powers keeps meaning "how
6478
+ long this has been true" rather than "how long since some tick
6479
+ happened to re-walk this row". An empty *reason* (the fully-eligible,
6480
+ nothing-to-report shape `_Verdict(True)` returns) writes nothing —
6481
+ overwriting a real reason with blank text would be a regression, not
6482
+ a refresh.
6483
+ """
6484
+ if not reason or reason == current:
6485
+ return {}
6486
+ return {"last_reason": reason}
6487
+
6465
6488
  reconciles: list[Reconcile] = []
6466
6489
  blocked: list[Blocked] = []
6467
6490
  deferrals: list[Deferral] = []
@@ -7102,11 +7125,41 @@ def plan_tick(
7102
7125
  )
7103
7126
 
7104
7127
  if capacity - occupied <= 0:
7128
+ # #3461: at capacity is the NORMAL steady state of a deep queue, so
7129
+ # this early return can fire for many ticks in a row. Before this, it
7130
+ # produced no deferral at all, which meant a `waiting` entry's
7131
+ # `last_reason` — e.g. "waiting on X (queued, blocked, ...)" — never
7132
+ # got a chance to notice X had since flipped back to `waiting`, or
7133
+ # landed. `_resolve_prereqs` is cheap (no I/O, just the cached board
7134
+ # + this tick's `states`), so it still runs for every `waiting` entry
7135
+ # here; only the TEXT is refreshed (`_refresh_only` below is a no-op
7136
+ # unless it actually changed) and only via `counted=False` — no
7137
+ # attempt is spent, `deferrals` does not move, and the queue-level
7138
+ # alert (computed only in the launch walk below) is untouched, same
7139
+ # as every other early return in this function.
7140
+ for entry in ordered:
7141
+ if states.get(entry.key) != STATE_WAITING:
7142
+ continue
7143
+ verdict = _resolve_prereqs(
7144
+ entry,
7145
+ board,
7146
+ states,
7147
+ cycle_keys,
7148
+ held_gates,
7149
+ live_prereq_terminal,
7150
+ effective_last_reason,
7151
+ )
7152
+ updates = _refresh_only(verdict.reason, entry.last_reason)
7153
+ if not updates:
7154
+ continue
7155
+ deferrals.append(
7156
+ Deferral(entry.key, verdict.reason, counted=False, updates=updates)
7157
+ )
7105
7158
  return TickPlan(
7106
7159
  **plan_base,
7107
7160
  reconciles=tuple(reconciles),
7108
7161
  blocked=tuple(blocked),
7109
- deferrals=(),
7162
+ deferrals=tuple(deferrals),
7110
7163
  alert=None,
7111
7164
  launch=None,
7112
7165
  )
@@ -7237,17 +7290,35 @@ def plan_tick(
7237
7290
  for entry in waiting:
7238
7291
  if launch is not None:
7239
7292
  # Report-only pass over the tail of the queue. The launch above
7240
- # already won this tick, so nothing here is mutated (see
7241
- # Deferral.counted) — this exists so `--dry-run` explains the rest
7242
- # of the queue instead of going silent after the first line.
7293
+ # already won this tick, so `counted` stays `False` and neither
7294
+ # `deferrals` nor the queue-level alert moves for anything found
7295
+ # here — that part is unchanged. #3461: the descriptive TEXT is
7296
+ # no longer left frozen just because this entry never got to
7297
+ # compete for a slot — `_refresh_only` (defined near the top of
7298
+ # this function) still folds a changed reading into `updates` so
7299
+ # `--dry-run` AND a real tick both keep `last_reason` current for
7300
+ # every entry the walk reaches, not only the one that launched.
7243
7301
  cooldown = _cooldown_reason(entry)
7244
7302
  if cooldown:
7245
- deferrals.append(Deferral(entry.key, cooldown, counted=False))
7303
+ deferrals.append(
7304
+ Deferral(
7305
+ entry.key,
7306
+ cooldown,
7307
+ counted=False,
7308
+ updates=_refresh_only(cooldown, entry.last_reason),
7309
+ )
7310
+ )
7246
7311
  continue
7247
7312
  backoff = _backoff_reason(entry)
7248
7313
  if backoff:
7249
7314
  deferrals.append(
7250
- Deferral(entry.key, backoff, counted=False, backing_off=True)
7315
+ Deferral(
7316
+ entry.key,
7317
+ backoff,
7318
+ counted=False,
7319
+ backing_off=True,
7320
+ updates=_refresh_only(backoff, entry.last_reason),
7321
+ )
7251
7322
  )
7252
7323
  continue
7253
7324
  verdict = _resolve_prereqs(
@@ -7261,20 +7332,35 @@ def plan_tick(
7261
7332
  )
7262
7333
  if not verdict.satisfied:
7263
7334
  deferrals.append(
7264
- Deferral(entry.key, verdict.reason, counted=False)
7335
+ Deferral(
7336
+ entry.key,
7337
+ verdict.reason,
7338
+ counted=False,
7339
+ updates=_refresh_only(verdict.reason, entry.last_reason),
7340
+ )
7265
7341
  )
7266
7342
  continue
7267
7343
  cordoned = _cordon_reason(entry)
7268
7344
  if cordoned:
7269
7345
  deferrals.append(
7270
- Deferral(entry.key, cordoned, counted=False, cordoned=True)
7346
+ Deferral(
7347
+ entry.key,
7348
+ cordoned,
7349
+ counted=False,
7350
+ cordoned=True,
7351
+ updates=_refresh_only(cordoned, entry.last_reason),
7352
+ )
7271
7353
  )
7272
7354
  continue
7273
7355
  repo_limit = _repo_limit_reason(entry)
7274
7356
  if repo_limit:
7275
7357
  deferrals.append(
7276
7358
  Deferral(
7277
- entry.key, repo_limit, counted=False, repo_limited=True
7359
+ entry.key,
7360
+ repo_limit,
7361
+ counted=False,
7362
+ repo_limited=True,
7363
+ updates=_refresh_only(repo_limit, entry.last_reason),
7278
7364
  )
7279
7365
  )
7280
7366
  continue
@@ -3960,9 +3960,17 @@ def post_transition(transition: Transition, record: dict, entry: dict) -> None:
3960
3960
  # same way, without routing it through the SEMANTIC tier-2
3961
3961
  # escalation path — see `coord.reconcile.on_conflict_fix_done`'s
3962
3962
  # `stale_rebase_mismatch` docstring for why that's a separate arm.
3963
+ # #3462: a patch-id mismatch alone doesn't distinguish a real
3964
+ # overlap from a branch whose content already landed on the target
3965
+ # through another change — check `ALREADY_UPSTREAM_MARKER` first
3966
+ # (mutually exclusive with the plain mismatch marker, so only
3967
+ # checked when semantic is False too) and route it to its own
3968
+ # `already_upstream` arm, which never escalates to the ordinary
3969
+ # conflict-fix path and never says "genuine content conflict".
3963
3970
  parent_id = record.get("review_of_assignment_id")
3964
3971
  if parent_id:
3965
3972
  from coord.conflict_fix import ( # noqa: PLC0415
3973
+ detect_already_upstream,
3966
3974
  detect_semantic_conflict,
3967
3975
  detect_stale_rebase_mismatch,
3968
3976
  )
@@ -3979,16 +3987,30 @@ def post_transition(transition: Transition, record: dict, entry: dict) -> None:
3979
3987
  except Exception: # noqa: BLE001 — best-effort, never break notify
3980
3988
  semantic = False
3981
3989
 
3990
+ # #3462: check the already-upstream marker BEFORE the plain
3991
+ # mismatch marker — they're mutually exclusive per dispatch, but
3992
+ # an already-upstream verdict must win the framing (superseded,
3993
+ # not "genuine conflict") whenever both would otherwise apply.
3994
+ already_upstream = False
3982
3995
  stale_rebase_mismatch = False
3983
3996
  if not semantic:
3984
3997
  try:
3985
- stale_rebase_mismatch = detect_stale_rebase_mismatch(
3998
+ already_upstream = detect_already_upstream(
3986
3999
  log_path=log_path,
3987
4000
  host=host,
3988
4001
  assignment_id=transition.assignment_id,
3989
4002
  )
3990
4003
  except Exception: # noqa: BLE001
3991
- stale_rebase_mismatch = False
4004
+ already_upstream = False
4005
+ if not already_upstream:
4006
+ try:
4007
+ stale_rebase_mismatch = detect_stale_rebase_mismatch(
4008
+ log_path=log_path,
4009
+ host=host,
4010
+ assignment_id=transition.assignment_id,
4011
+ )
4012
+ except Exception: # noqa: BLE001
4013
+ stale_rebase_mismatch = False
3992
4014
 
3993
4015
  stuck_summary: str | None = None
3994
4016
  board = None
@@ -4013,6 +4035,19 @@ def post_transition(transition: Transition, record: dict, entry: dict) -> None:
4013
4035
  config = _load_config()
4014
4036
  except Exception: # noqa: BLE001
4015
4037
  board, config = None, None
4038
+ elif already_upstream:
4039
+ # #3462: no escalation dispatch happens for this verdict
4040
+ # (it's not a conflict), so board/config aren't strictly
4041
+ # needed — but grab the stuck summary the same way so
4042
+ # `on_conflict_fix_done`'s HUMAN_REQUIRED text is specific.
4043
+ progress = entry.get("progress") or {}
4044
+ stuck_summary = progress.get("stuck")
4045
+ if not stuck_summary and log_path:
4046
+ try:
4047
+ from coord.progress import parse_progress # noqa: PLC0415
4048
+ stuck_summary = parse_progress(log_path).stuck
4049
+ except Exception: # noqa: BLE001
4050
+ stuck_summary = None
4016
4051
  elif stale_rebase_mismatch:
4017
4052
  # #3444: board/config ARE needed here now — a stale-rebase
4018
4053
  # mismatch escalates to the ORDINARY conflict-fix path
@@ -4042,8 +4077,11 @@ def post_transition(transition: Transition, record: dict, entry: dict) -> None:
4042
4077
  parent_assignment_id=parent_id,
4043
4078
  fix_assignment_id=transition.assignment_id,
4044
4079
  machine_name=transition.machine_name,
4045
- succeeded=not semantic and not stale_rebase_mismatch,
4080
+ succeeded=not semantic
4081
+ and not already_upstream
4082
+ and not stale_rebase_mismatch,
4046
4083
  semantic=semantic,
4084
+ already_upstream=already_upstream,
4047
4085
  stale_rebase_mismatch=stale_rebase_mismatch,
4048
4086
  board=board,
4049
4087
  config=config,