code-coordinator 0.5.528__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 (910) hide show
  1. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/PKG-INFO +1 -1
  2. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/code_coordinator.egg-info/PKG-INFO +1 -1
  3. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/code_coordinator.egg-info/scm_version.json +2 -2
  4. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/conflict_fix.py +174 -29
  5. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/notify.py +41 -3
  6. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/reconcile.py +163 -33
  7. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_conflict_fix.py +163 -0
  8. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_notify.py +144 -0
  9. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_reconcile.py +173 -0
  10. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/.claude/commands/board.md +0 -0
  11. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/.claude/commands/complete-session.md +0 -0
  12. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/.claude/commands/coordinator.md +0 -0
  13. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/.githooks/_lib.sh +0 -0
  14. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/.githooks/post-checkout +0 -0
  15. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/.githooks/post-commit +0 -0
  16. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/.githooks/post-merge +0 -0
  17. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  18. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/.github/coord-ci-acceptance.yml +0 -0
  19. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/.github/workflows/auto-release.yml +0 -0
  20. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/.github/workflows/publish.yml +0 -0
  21. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/.github/workflows/test.yml +0 -0
  22. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/.gitignore +0 -0
  23. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/CLAUDE.md +0 -0
  24. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/GOAL.md +0 -0
  25. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/LICENSE +0 -0
  26. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/MANIFEST.in +0 -0
  27. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/README.md +0 -0
  28. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/code_coordinator.egg-info/SOURCES.txt +0 -0
  29. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/code_coordinator.egg-info/dependency_links.txt +0 -0
  30. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/code_coordinator.egg-info/entry_points.txt +0 -0
  31. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/code_coordinator.egg-info/requires.txt +0 -0
  32. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/code_coordinator.egg-info/scm_file_list.json +0 -0
  33. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/code_coordinator.egg-info/top_level.txt +0 -0
  34. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/__init__.py +0 -0
  35. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/_board_mapping.py +0 -0
  36. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/acceptance.py +0 -0
  37. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/acceptance_drivers.py +0 -0
  38. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/agent.py +0 -0
  39. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/agent_app.py +0 -0
  40. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/agent_update.py +0 -0
  41. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/agents/opencode/.gitignore +0 -0
  42. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/agents/opencode/agents/work.md +0 -0
  43. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/agents/opencode/routing.jsonc +0 -0
  44. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/approved_work.py +0 -0
  45. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/audit.py +0 -0
  46. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/auto_loop.py +0 -0
  47. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/backup.py +0 -0
  48. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/block_log.py +0 -0
  49. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/board_schema.py +0 -0
  50. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/board_service.py +0 -0
  51. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/board_wire.py +0 -0
  52. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/brain.py +0 -0
  53. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/branch_model.py +0 -0
  54. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/bug_intake.py +0 -0
  55. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/cargo_cache.py +0 -0
  56. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/ci_fix.py +0 -0
  57. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/ci_github.py +0 -0
  58. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/ci_gitlab.py +0 -0
  59. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/ci_store.py +0 -0
  60. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/claim.py +0 -0
  61. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/claude_setup_token.py +0 -0
  62. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/cli.py +0 -0
  63. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/client.py +0 -0
  64. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/codegen.py +0 -0
  65. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/__init__.py +0 -0
  66. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/_common.py +0 -0
  67. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/acceptance.py +0 -0
  68. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/agent_ops.py +0 -0
  69. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/audit.py +0 -0
  70. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/backup.py +0 -0
  71. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/chat.py +0 -0
  72. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/ci.py +0 -0
  73. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/codegen.py +0 -0
  74. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/dispatch.py +0 -0
  75. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/dispatch_workers.py +0 -0
  76. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/dr.py +0 -0
  77. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/drive.py +0 -0
  78. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/drive_queue.py +0 -0
  79. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/gate_a.py +0 -0
  80. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/gates.py +0 -0
  81. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/issues.py +0 -0
  82. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/lifecycle.py +0 -0
  83. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/machine.py +0 -0
  84. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/merge.py +0 -0
  85. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/milestone.py +0 -0
  86. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/plan_followup.py +0 -0
  87. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/plans.py +0 -0
  88. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/portal.py +0 -0
  89. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/pr.py +0 -0
  90. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/release.py +0 -0
  91. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/repo.py +0 -0
  92. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/report.py +0 -0
  93. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/review.py +0 -0
  94. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/scorecard.py +0 -0
  95. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/sessions.py +0 -0
  96. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/setup.py +0 -0
  97. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/status.py +0 -0
  98. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/store_migrate.py +0 -0
  99. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/terminal.py +0 -0
  100. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/test_gate.py +0 -0
  101. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/commands/tui.py +0 -0
  102. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/comments.py +0 -0
  103. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/config.py +0 -0
  104. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/config_reload.py +0 -0
  105. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/confirm_test.py +0 -0
  106. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/dao.py +0 -0
  107. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/dashboard/__init__.py +0 -0
  108. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/dashboard/fixture.py +0 -0
  109. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/dashboard/index.html +0 -0
  110. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/dashboard/server.py +0 -0
  111. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/dashboard/terminal.py +0 -0
  112. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/db.py +0 -0
  113. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/dead_end.py +0 -0
  114. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/decomposition_chat.py +0 -0
  115. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/deploy/README.md +0 -0
  116. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/deploy/coord-agent.service +0 -0
  117. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/deploy/coord-backup.service +0 -0
  118. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/deploy/coord-backup.timer +0 -0
  119. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/deploy/coord-db-backup.service +0 -0
  120. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/deploy/coord-db-backup.sh +0 -0
  121. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/deploy/coord-db-backup.timer +0 -0
  122. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/deploy/coord-dr-verify.service +0 -0
  123. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/deploy/coord-dr-verify.timer +0 -0
  124. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/deploy/coord-drive-queue.service +0 -0
  125. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/deploy/coord-drive-queue.timer +0 -0
  126. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/deploy/coord-failure-notify.service +0 -0
  127. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/deploy/coord-fleet-watchdog.service +0 -0
  128. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/deploy/coord-fleet-watchdog.timer +0 -0
  129. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/deploy/coord-notify.service +0 -0
  130. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/deploy/coord-notify.timer +0 -0
  131. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/deploy/coord-release-propagate.service +0 -0
  132. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/deploy/coord-release-propagate.timer +0 -0
  133. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/deploy/coord-release-window.service +0 -0
  134. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/deploy/coord-release-window.timer +0 -0
  135. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/deploy/coord-serve.service +0 -0
  136. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/deploy/coord-web-dist-build.service +0 -0
  137. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/deploy/coord-web-dist-build.timer +0 -0
  138. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/deploy/coord-web.service +0 -0
  139. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/deploy_manifest.py +0 -0
  140. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/deploy_units.py +0 -0
  141. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/deprecation_telemetry.py +0 -0
  142. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/deps.py +0 -0
  143. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/diagnose.py +0 -0
  144. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/dispatch.py +0 -0
  145. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/dispatch_liveness.py +0 -0
  146. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/dist_name.py +0 -0
  147. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/dr_promote.py +0 -0
  148. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/dr_verify.py +0 -0
  149. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/drive.py +0 -0
  150. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/drive_queue.py +0 -0
  151. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/drive_sessions_snapshot.py +0 -0
  152. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/drive_state.py +0 -0
  153. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/events.py +0 -0
  154. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/failure_class.py +0 -0
  155. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/failure_classifier.py +0 -0
  156. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/filelock.py +0 -0
  157. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/fleet_config_health.py +0 -0
  158. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/forge_availability.py +0 -0
  159. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/freshness.py +0 -0
  160. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/gate_a.py +0 -0
  161. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/gate_b.py +0 -0
  162. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/gate_snapshot.py +0 -0
  163. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/gates.py +0 -0
  164. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/gen_board_fixture.py +0 -0
  165. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/github_ops.py +0 -0
  166. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/github_throttle.py +0 -0
  167. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/goal.py +0 -0
  168. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/graph_health.py +0 -0
  169. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/__init__.py +0 -0
  170. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/aggregate.py +0 -0
  171. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/checks/__init__.py +0 -0
  172. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/checks/_ci_pin.py +0 -0
  173. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/checks/agent_install.py +0 -0
  174. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/checks/cargo_targets.py +0 -0
  175. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/checks/claude_binary.py +0 -0
  176. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/checks/config_drift.py +0 -0
  177. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/checks/coord_tui_ci_pin.py +0 -0
  178. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/checks/coord_web_ci_pin.py +0 -0
  179. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/checks/deploy_lane_facts.py +0 -0
  180. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/checks/disk.py +0 -0
  181. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/checks/fleet_board.py +0 -0
  182. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/checks/fleet_deploy_lanes.py +0 -0
  183. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/checks/fleet_phantom.py +0 -0
  184. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/checks/fleet_unit_drift.py +0 -0
  185. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/checks/graph.py +0 -0
  186. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/checks/graphify_cli.py +0 -0
  187. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/checks/index_lock.py +0 -0
  188. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/checks/issues_sync_staleness.py +0 -0
  189. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/checks/local_machine_identity.py +0 -0
  190. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/checks/plan_usage.py +0 -0
  191. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/checks/pr_churn.py +0 -0
  192. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/checks/release_cordon.py +0 -0
  193. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/checks/repo_state.py +0 -0
  194. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/checks/spawned_coord.py +0 -0
  195. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/checks/stalled_pipeline.py +0 -0
  196. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/checks/timer_active.py +0 -0
  197. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/checks/toolchain.py +0 -0
  198. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/checks/unit_drift.py +0 -0
  199. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/checks/unit_enablement.py +0 -0
  200. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/checks/wedged_drive_queue.py +0 -0
  201. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/checks/worktrees.py +0 -0
  202. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/cli.py +0 -0
  203. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/context.py +0 -0
  204. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/fleet_snapshot.py +0 -0
  205. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/models.py +0 -0
  206. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/pypi.py +0 -0
  207. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/registry.py +0 -0
  208. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/render.py +0 -0
  209. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/health/units.py +0 -0
  210. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/hooks.py +0 -0
  211. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/housekeeping.py +0 -0
  212. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/interactive.py +0 -0
  213. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/invariant_alarms.py +0 -0
  214. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/issue_store.py +0 -0
  215. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/issues_sync_status.py +0 -0
  216. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/liveness_auditor.py +0 -0
  217. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/machine_fault.py +0 -0
  218. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/machine_metrics.py +0 -0
  219. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/machine_onboard.py +0 -0
  220. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/machine_pause.py +0 -0
  221. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/machine_stats.py +0 -0
  222. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/merge_queue.py +0 -0
  223. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/milestone_chat.py +0 -0
  224. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/milestone_dispatch.py +0 -0
  225. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/milestone_gate.py +0 -0
  226. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/milestone_order.py +0 -0
  227. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/mock_author.py +0 -0
  228. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/models.py +0 -0
  229. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/network.py +0 -0
  230. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/new_issue_chat.py +0 -0
  231. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/notifier/__init__.py +0 -0
  232. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/notifier/baseline.py +0 -0
  233. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/notifier/cli.py +0 -0
  234. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/notifier/collect.py +0 -0
  235. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/notifier/digest.py +0 -0
  236. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/notifier/models.py +0 -0
  237. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/notifier/predicate.py +0 -0
  238. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/notifier/service.py +0 -0
  239. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/notifier/store.py +0 -0
  240. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/notifier/transport.py +0 -0
  241. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/openapi.py +0 -0
  242. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/overlap_fence.py +0 -0
  243. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/overlap_predict.py +0 -0
  244. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/parentage.py +0 -0
  245. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/parentage_github.py +0 -0
  246. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/pipeline.py +0 -0
  247. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/plan_parser.py +0 -0
  248. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/plans.py +0 -0
  249. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/platform_paths.py +0 -0
  250. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/portal_bridge.py +0 -0
  251. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/portal_store.py +0 -0
  252. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/portal_sync.py +0 -0
  253. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/pr_body_lint.py +0 -0
  254. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/prereqs.py +0 -0
  255. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/progress.py +0 -0
  256. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/providers/__init__.py +0 -0
  257. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/providers/base.py +0 -0
  258. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/providers/claude.py +0 -0
  259. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/providers/claude_pty.py +0 -0
  260. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/providers/opencode.py +0 -0
  261. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/queue_diagnose.py +0 -0
  262. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/reconcile_tick.py +0 -0
  263. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/refine_chat.py +0 -0
  264. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/release_cordon.py +0 -0
  265. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/release_propagate.py +0 -0
  266. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/release_verify.py +0 -0
  267. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/release_window.py +0 -0
  268. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/repo_dormancy.py +0 -0
  269. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/repo_edit.py +0 -0
  270. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/repo_onboard.py +0 -0
  271. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/reports.py +0 -0
  272. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/rest_schema.py +0 -0
  273. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/restart_cmd.py +0 -0
  274. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/revalidate.py +0 -0
  275. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/review.py +0 -0
  276. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/scorecard.py +0 -0
  277. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/self_health.py +0 -0
  278. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/serve_app.py +0 -0
  279. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/skills/coord-dispatch-verbs/SKILL.md +0 -0
  280. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/skills/drive-queue-preflight/SKILL.md +0 -0
  281. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/skills/fleet-restart-safety/SKILL.md +0 -0
  282. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/skills/merge-stuck-triage/SKILL.md +0 -0
  283. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/skills/pipeline-limbo-triage/SKILL.md +0 -0
  284. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/skills/portal-followup/SKILL.md +0 -0
  285. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/skills/release-now/SKILL.md +0 -0
  286. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/skills/review-verdict-recovery/SKILL.md +0 -0
  287. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/skills/tui-quadraui-workflow/SKILL.md +0 -0
  288. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/skills/update-issue/SKILL.md +0 -0
  289. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/smoke.py +0 -0
  290. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/spend_ceiling.py +0 -0
  291. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/split_work.py +0 -0
  292. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/sql.py +0 -0
  293. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/stage_projection.py +0 -0
  294. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/state.py +0 -0
  295. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/store_migrate.py +0 -0
  296. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/store_parity.py +0 -0
  297. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/templates/deploy-cloudflare.node.yml +0 -0
  298. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/test_author.py +0 -0
  299. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/test_chat.py +0 -0
  300. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/test_orchestrator.py +0 -0
  301. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/test_report.py +0 -0
  302. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/tui_release.py +0 -0
  303. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/uat_checks.py +0 -0
  304. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/usage.py +0 -0
  305. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/usage_limits.py +0 -0
  306. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/usage_rollup.py +0 -0
  307. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coord/worker_events.py +0 -0
  308. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/coordinator.example.yml +0 -0
  309. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/deploy/coord-agent.service +0 -0
  310. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/deploy/coord-backup.service +0 -0
  311. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/deploy/coord-backup.timer +0 -0
  312. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/deploy/coord-db-backup.service +0 -0
  313. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/deploy/coord-db-backup.sh +0 -0
  314. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/deploy/coord-db-backup.timer +0 -0
  315. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/deploy/coord-dr-verify.service +0 -0
  316. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/deploy/coord-dr-verify.timer +0 -0
  317. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/deploy/coord-drive-queue.service +0 -0
  318. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/deploy/coord-drive-queue.timer +0 -0
  319. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/deploy/coord-failure-notify.service +0 -0
  320. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/deploy/coord-failure-notify.sh +0 -0
  321. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/deploy/coord-fleet-watchdog.service +0 -0
  322. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/deploy/coord-fleet-watchdog.timer +0 -0
  323. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/deploy/coord-notify.service +0 -0
  324. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/deploy/coord-notify.timer +0 -0
  325. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/deploy/coord-release-propagate.service +0 -0
  326. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/deploy/coord-release-propagate.timer +0 -0
  327. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/deploy/coord-release-window.service +0 -0
  328. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/deploy/coord-release-window.timer +0 -0
  329. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/deploy/coord-serve.service +0 -0
  330. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/deploy/coord-web-dist-build.service +0 -0
  331. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/deploy/coord-web-dist-build.sh +0 -0
  332. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/deploy/coord-web-dist-build.timer +0 -0
  333. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/deploy/coord-web-rollback.sh +0 -0
  334. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/deploy/coord-web.service +0 -0
  335. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/deploy/node-shim.sh +0 -0
  336. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/ADR_COORD_TUI_CI.md +0 -0
  337. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/ADR_COORD_WEB_ACCEPTANCE_SUITE.md +0 -0
  338. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/ADR_COORD_WEB_CI.md +0 -0
  339. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/ADR_COORD_WEB_DIST.md +0 -0
  340. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/ADR_PY_RUST_MIRRORS.md +0 -0
  341. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/AGENT_OPERATIONS.md +0 -0
  342. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/ARCHITECTURE.md +0 -0
  343. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/ARCH_SECURITY_GATES.md +0 -0
  344. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/COCKPIT.md +0 -0
  345. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/CONTROL_CENTER.md +0 -0
  346. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/COST_DISCIPLINE.md +0 -0
  347. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/CROSS_PLATFORM.md +0 -0
  348. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/CUSTOMER_FACING_APPS.md +0 -0
  349. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/CUSTOMER_PORTAL.md +0 -0
  350. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/DATA_STORE_SELECTION.md +0 -0
  351. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/DISASTER_RECOVERY.md +0 -0
  352. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/DRIVE_QUEUE.md +0 -0
  353. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/EPHEMERAL_WORKERS.md +0 -0
  354. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/FORGE_MIGRATION.md +0 -0
  355. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/GRAPHIFY_SETUP.md +0 -0
  356. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/ISSUE_GUIDANCE.md +0 -0
  357. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/MAC_MINI.md +0 -0
  358. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
  359. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/NOTIFIER.md +0 -0
  360. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/OPENCODE_VERIFICATION.md +0 -0
  361. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/OPERATING_GOTCHAS.md +0 -0
  362. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/OPERATOR_GUIDES.md +0 -0
  363. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/ORACLE_LOOP.md +0 -0
  364. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/PHONE_WEBAPP.md +0 -0
  365. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/PIPELINE_V2.md +0 -0
  366. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/PLATFORM_EVOLUTION.md +0 -0
  367. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/SECOND_BACKEND.md +0 -0
  368. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/STORE_SERVICE.md +0 -0
  369. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/TEST_FIRST_BUG_LANE.md +0 -0
  370. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/WEB_CONTROL_CENTER.md +0 -0
  371. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/WSL_WINDOWS_WORKER.md +0 -0
  372. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/mocks/web/README.md +0 -0
  373. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/mocks/web/_tokens.css +0 -0
  374. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/mocks/web/issue-detail.html +0 -0
  375. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/mocks/web/pipeline-narrow.html +0 -0
  376. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/docs/mocks/web/pipeline-wide.html +0 -0
  377. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/graphify-out/.gitignore +0 -0
  378. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/install-agent.sh +0 -0
  379. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/pyproject.toml +0 -0
  380. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/audit_review_verdict_overrides.py +0 -0
  381. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/azure-workers/bootstrap-shared.sh +0 -0
  382. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/azure-workers/build-worker-image.sh +0 -0
  383. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/azure-workers/coordinator-machine.py +0 -0
  384. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/azure-workers/dr-down.sh +0 -0
  385. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/azure-workers/dr-up.sh +0 -0
  386. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/azure-workers/epic-down.sh +0 -0
  387. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/azure-workers/epic-up.sh +0 -0
  388. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/azure-workers/preflight.sh +0 -0
  389. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/azure-workers/provision-server.sh +0 -0
  390. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/azure-workers/provision-worker.sh +0 -0
  391. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
  392. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/azure-workers/tailnet-acl.hujson +0 -0
  393. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/azure-workers/throwaway-vm.sh +0 -0
  394. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/azure-workers/verify-github-token.sh +0 -0
  395. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/check_gh_argv_containment.py +0 -0
  396. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/codegen.py +0 -0
  397. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/coord-test-runner.sh +0 -0
  398. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/coord-tui-scaffold/.github/coord-ci-acceptance.yml +0 -0
  399. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/coord-tui-scaffold/.github/workflows/cargo-test.yml +0 -0
  400. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/coord-tui-scaffold/.github/workflows/codegen-drift.yml +0 -0
  401. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/coord-tui-scaffold/CLAUDE.md +0 -0
  402. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/coord-venv-rollback.sh +0 -0
  403. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/drive-batch.sh +0 -0
  404. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/extract-coord-tui.sh +0 -0
  405. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/fleet_watchdog.py +0 -0
  406. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/gen_board_fixture.py +0 -0
  407. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/gen_mock_index.py +0 -0
  408. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/lib/provision-core.sh +0 -0
  409. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/next_release_tag.py +0 -0
  410. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/provision-machine.sh +0 -0
  411. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/run_tests_in_populated_home.sh +0 -0
  412. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/run_tests_without_gh.sh +0 -0
  413. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/setup-macmini.sh +0 -0
  414. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/smoke_437_interactive.py +0 -0
  415. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/verify-provision-noble.sh +0 -0
  416. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/verify_878_review_capture.py +0 -0
  417. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/verify_release_published.py +0 -0
  418. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/scripts/verify_release_wheel.py +0 -0
  419. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/setup.cfg +0 -0
  420. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/SMOKE_SET.md +0 -0
  421. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/__init__.py +0 -0
  422. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/acceptance/ms-37/conftest.py +0 -0
  423. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/acceptance/ms-37/contract.md +0 -0
  424. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/acceptance/ms-37/manifest.yml +0 -0
  425. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
  426. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
  427. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/acceptance/ms-51/contract.md +0 -0
  428. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
  429. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
  430. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/acceptance/ms-51/manifest.yml +0 -0
  431. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
  432. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/acceptance/ms-51/tsconfig.json +0 -0
  433. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
  434. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/backends.py +0 -0
  435. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/conftest.py +0 -0
  436. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/fixtures/board-pipeline-basic.json +0 -0
  437. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
  438. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
  439. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
  440. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/fixtures/opencode_run_sample.jsonl +0 -0
  441. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/fixtures/playwright/all_pass.json +0 -0
  442. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/fixtures/playwright/global_setup_crash.json +0 -0
  443. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/fixtures/playwright/mixed_fail.json +0 -0
  444. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/fixtures/playwright/retry_then_pass.json +0 -0
  445. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
  446. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/fixtures/playwright/skip.json +0 -0
  447. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/fixtures/playwright/truncated.json +0 -0
  448. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
  449. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
  450. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
  451. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
  452. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
  453. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
  454. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
  455. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
  456. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_acceptance.py +0 -0
  457. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_acceptance_drivers.py +0 -0
  458. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_agent.py +0 -0
  459. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_agent_api_error.py +0 -0
  460. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_agent_app.py +0 -0
  461. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_agent_branch_base.py +0 -0
  462. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_agent_branch_capture.py +0 -0
  463. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_agent_config_free_1712.py +0 -0
  464. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_agent_deploy_units_endpoint.py +0 -0
  465. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_agent_dirty_worktree.py +0 -0
  466. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_agent_drive_queue_reconcile_2373.py +0 -0
  467. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_agent_graph_self_heal.py +0 -0
  468. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_agent_health_h3.py +0 -0
  469. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_agent_idle_restart.py +0 -0
  470. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_agent_push_failure.py +0 -0
  471. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_agent_reap.py +0 -0
  472. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_agent_repos_and_pull.py +0 -0
  473. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_agent_restart_services_endpoint.py +0 -0
  474. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_agent_skills_self_heal.py +0 -0
  475. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_agent_startup_diagnostics.py +0 -0
  476. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_agent_update.py +0 -0
  477. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_agent_update_bluegreen.py +0 -0
  478. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_agent_usage_limit.py +0 -0
  479. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_agent_zero_commit.py +0 -0
  480. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_ambient_home_isolation.py +0 -0
  481. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_approve_capability_reroute_3241.py +0 -0
  482. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_approve_dependency_busy_2804.py +0 -0
  483. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_approve_reject_plan.py +0 -0
  484. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_approve_usage_gate.py +0 -0
  485. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_approved_work_2532.py +0 -0
  486. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_approved_work_2996.py +0 -0
  487. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_assignment_already_recorded_daemon.py +0 -0
  488. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_audit_log.py +0 -0
  489. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_audit_outcome.py +0 -0
  490. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_audit_query.py +0 -0
  491. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_auto_loop.py +0 -0
  492. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_auto_release_publish_2035.py +0 -0
  493. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_backend_selection.py +0 -0
  494. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_backup.py +0 -0
  495. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_base_checkout_restore.py +0 -0
  496. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_block_log.py +0 -0
  497. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_board_cap_762.py +0 -0
  498. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_board_fixture.py +0 -0
  499. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_board_read_path.py +0 -0
  500. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_board_schema.py +0 -0
  501. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_board_service.py +0 -0
  502. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_board_state.py +0 -0
  503. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_board_wire.py +0 -0
  504. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_brain.py +0 -0
  505. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_branch_model.py +0 -0
  506. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_bug_intake.py +0 -0
  507. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_build_worker_image_env_update.py +0 -0
  508. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cargo_cache.py +0 -0
  509. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_check_gh_argv_containment.py +0 -0
  510. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_ci_acceptance_gate_1950.py +0 -0
  511. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_ci_fix.py +0 -0
  512. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_ci_github.py +0 -0
  513. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_ci_gitlab.py +0 -0
  514. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_ci_parity_2091.py +0 -0
  515. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_ci_store.py +0 -0
  516. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_claim.py +0 -0
  517. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_claude_md_budget.py +0 -0
  518. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_claude_setup_token.py +0 -0
  519. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_acceptance.py +0 -0
  520. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_assign.py +0 -0
  521. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
  522. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_assign_interactive_remote.py +0 -0
  523. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_assign_provider.py +0 -0
  524. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_assign_repo_drift_2219.py +0 -0
  525. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_audit.py +0 -0
  526. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_chat_continue.py +0 -0
  527. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_ci.py +0 -0
  528. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_codegen.py +0 -0
  529. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_decide.py +0 -0
  530. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_diagnose_capability_rules.py +0 -0
  531. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_diagnose_config_provenance.py +0 -0
  532. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_diagnose_forge_availability.py +0 -0
  533. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_diagnose_graph.py +0 -0
  534. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_diagnose_self.py +0 -0
  535. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_diagnose_test_coverage.py +0 -0
  536. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_doctor.py +0 -0
  537. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_doctor_config_free_1801.py +0 -0
  538. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
  539. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_doctor_store_backend_3084.py +0 -0
  540. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_drive.py +0 -0
  541. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_drive_queue.py +0 -0
  542. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_escalate.py +0 -0
  543. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_fix_headless_review.py +0 -0
  544. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_gate_a.py +0 -0
  545. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_install_drift.py +0 -0
  546. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_install_skills.py +0 -0
  547. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_issue_comment.py +0 -0
  548. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_issue_create_label.py +0 -0
  549. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_issue_reopen.py +0 -0
  550. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_issue_view_list.py +0 -0
  551. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_issues.py +0 -0
  552. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_merge.py +0 -0
  553. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_milestone_assign.py +0 -0
  554. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_milestone_capture.py +0 -0
  555. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_milestone_chat_add_child.py +0 -0
  556. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_milestone_dispatch.py +0 -0
  557. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_milestone_gate_b.py +0 -0
  558. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_milestone_gate_c.py +0 -0
  559. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_milestone_order.py +0 -0
  560. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
  561. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_milestone_ship.py +0 -0
  562. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_network.py +0 -0
  563. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_new_issue_chat.py +0 -0
  564. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_plans.py +0 -0
  565. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_portal.py +0 -0
  566. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_pr.py +0 -0
  567. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_pull_artifact.py +0 -0
  568. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_queue.py +0 -0
  569. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_reattach_sessions.py +0 -0
  570. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_refine_board.py +0 -0
  571. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_release_preflight.py +0 -0
  572. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_release_propagate.py +0 -0
  573. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_release_window.py +0 -0
  574. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_repo_2220.py +0 -0
  575. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_review_test_author_tracking_epic_2639.py +0 -0
  576. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_scorecard.py +0 -0
  577. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_serve_store_backend_3084.py +0 -0
  578. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_set_review_findings.py +0 -0
  579. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_status_advisory_terminal.py +0 -0
  580. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_status_contested_tag.py +0 -0
  581. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_status_invariant_alarms.py +0 -0
  582. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_status_machine_fault.py +0 -0
  583. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_status_merge_queue.py +0 -0
  584. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_status_provider.py +0 -0
  585. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_status_retried_3340.py +0 -0
  586. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_status_review_finalizing.py +0 -0
  587. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_status_supervisor_3366.py +0 -0
  588. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_status_test_failed_tag.py +0 -0
  589. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_status_usage_limit.py +0 -0
  590. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_sync_comments_873.py +0 -0
  591. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_test_plan.py +0 -0
  592. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_track.py +0 -0
  593. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_tui_update.py +0 -0
  594. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cli_wait.py +0 -0
  595. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_client.py +0 -0
  596. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_client_base_install.py +0 -0
  597. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_client_config_cache_atomic_3052.py +0 -0
  598. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_client_resource_migration_1946.py +0 -0
  599. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_commands_common.py +0 -0
  600. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_comments.py +0 -0
  601. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_completion_summary.py +0 -0
  602. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_config.py +0 -0
  603. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_config_acceptance.py +0 -0
  604. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_config_audit.py +0 -0
  605. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_config_drift_check.py +0 -0
  606. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_config_effective.py +0 -0
  607. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_config_pricing.py +0 -0
  608. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
  609. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_config_usage_gate.py +0 -0
  610. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_confirm_test.py +0 -0
  611. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_conflict_fix_semantic.py +0 -0
  612. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_coord_log_daemon_fallback_2547.py +0 -0
  613. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_coord_test.py +0 -0
  614. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_coord_test_runner_acceptance_toolchain_2936.py +0 -0
  615. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_coord_test_runner_baseline.py +0 -0
  616. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_coord_test_runner_populated_home.py +0 -0
  617. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_coord_test_runner_routing.py +0 -0
  618. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_coord_test_runner_toolchain.py +0 -0
  619. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_coord_uat.py +0 -0
  620. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_coord_web_sse_restart_live.py +0 -0
  621. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_coordinator_machine.py +0 -0
  622. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_cross_platform_imports.py +0 -0
  623. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_dao.py +0 -0
  624. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_dashboard.py +0 -0
  625. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_dashboard_api.py +0 -0
  626. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_dashboard_fixture.py +0 -0
  627. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_dashboard_server.py +0 -0
  628. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_dashboard_terminal.py +0 -0
  629. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_dashboard_terminal_live.py +0 -0
  630. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_db.py +0 -0
  631. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_dead_end.py +0 -0
  632. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_decomposition_chat.py +0 -0
  633. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_deploy_coord_db_backup.py +0 -0
  634. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_deploy_coord_web_dist.py +0 -0
  635. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_deploy_coord_web_rollback.py +0 -0
  636. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_deploy_db_backup_unit.py +0 -0
  637. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_deploy_drive_queue_unit.py +0 -0
  638. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_deploy_failure_notify_unit.py +0 -0
  639. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_deploy_manifest.py +0 -0
  640. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_deploy_notify_unit.py +0 -0
  641. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_deploy_units_lane.py +0 -0
  642. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_deploy_web_unit.py +0 -0
  643. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_deprecation_telemetry.py +0 -0
  644. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_deps.py +0 -0
  645. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_diagnose.py +0 -0
  646. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_dispatch.py +0 -0
  647. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_dispatch_liveness.py +0 -0
  648. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_dispatch_target_validation.py +0 -0
  649. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_dispatch_workers.py +0 -0
  650. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_dist_name.py +0 -0
  651. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_done_housekeeping.py +0 -0
  652. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_dr_azure_scripts.py +0 -0
  653. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_dr_promote.py +0 -0
  654. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_dr_verify.py +0 -0
  655. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_drive.py +0 -0
  656. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_drive_machine_fault.py +0 -0
  657. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_drive_queue.py +0 -0
  658. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_drive_queue_blocked_rendering.py +0 -0
  659. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_drive_queue_launch_argv.py +0 -0
  660. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_drive_queue_max_parallel_config.py +0 -0
  661. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_drive_queue_max_parallel_per_repo_config.py +0 -0
  662. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_drive_queue_roll_pending.py +0 -0
  663. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_drive_queue_self_cordon_escalation.py +0 -0
  664. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_drive_sessions_snapshot.py +0 -0
  665. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_drive_state.py +0 -0
  666. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_drive_tmux.py +0 -0
  667. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_epic_up_capability_detection.py +0 -0
  668. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
  669. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_epic_up_image_provenance.py +0 -0
  670. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_errors.py +0 -0
  671. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_events.py +0 -0
  672. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_failure_class.py +0 -0
  673. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_failure_classifier.py +0 -0
  674. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_filelock.py +0 -0
  675. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
  676. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_fix_escalation_classifier.py +0 -0
  677. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_fix_of_force_override.py +0 -0
  678. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_fleet_config_health.py +0 -0
  679. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_fleet_health_probes.py +0 -0
  680. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_fleet_health_snapshot.py +0 -0
  681. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_fleet_watchdog.py +0 -0
  682. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_forge_availability.py +0 -0
  683. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_freshness.py +0 -0
  684. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_gate_a.py +0 -0
  685. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_gate_b.py +0 -0
  686. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_gate_snapshot_staleness.py +0 -0
  687. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_gates.py +0 -0
  688. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_gather_fleet_tmux_sessions.py +0 -0
  689. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_gen_mock_index.py +0 -0
  690. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_generated_rust_fixture.py +0 -0
  691. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_generated_rust_requests.py +0 -0
  692. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_generated_types_fixture.py +0 -0
  693. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_github_ops.py +0 -0
  694. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_github_throttle.py +0 -0
  695. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_goal.py +0 -0
  696. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_graph_health.py +0 -0
  697. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_graph_selfheal_absent_2237.py +0 -0
  698. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_handoff.py +0 -0
  699. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_health_checks.py +0 -0
  700. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_health_cli.py +0 -0
  701. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_health_cli_graph.py +0 -0
  702. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_health_config.py +0 -0
  703. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_health_context.py +0 -0
  704. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_health_coord_tui_ci_pin.py +0 -0
  705. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_health_coord_web_ci_pin.py +0 -0
  706. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_health_deploy_lane_facts.py +0 -0
  707. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_health_fix.py +0 -0
  708. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_health_incident_regression.py +0 -0
  709. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_health_issues_sync_staleness.py +0 -0
  710. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_health_pr_churn.py +0 -0
  711. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_health_pypi.py +0 -0
  712. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_health_registry.py +0 -0
  713. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_health_release_cordon_probe.py +0 -0
  714. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_health_timer_active.py +0 -0
  715. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_health_toolchain.py +0 -0
  716. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_health_unit_drift.py +0 -0
  717. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_health_unit_enablement.py +0 -0
  718. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_health_wedged_drive_queue.py +0 -0
  719. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_hooks.py +0 -0
  720. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_housekeeping.py +0 -0
  721. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_human_attended_437.py +0 -0
  722. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_init.py +0 -0
  723. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_install_agent_venv_2911.py +0 -0
  724. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_integration.py +0 -0
  725. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_interactive.py +0 -0
  726. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_interactive_briefing_echo.py +0 -0
  727. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_interactive_pane_log_2541.py +0 -0
  728. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_interactive_prefill_state.py +0 -0
  729. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_interactive_session_relaunch.py +0 -0
  730. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_interactive_test_verdict_backstop.py +0 -0
  731. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_interactive_token_attribution.py +0 -0
  732. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_interactive_worktree.py +0 -0
  733. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_invariant_alarms.py +0 -0
  734. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_issue_store_seam.py +0 -0
  735. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_issues_sync_status.py +0 -0
  736. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_liveness_auditor.py +0 -0
  737. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_liveness_notify.py +0 -0
  738. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_lock_contention_ratchet.py +0 -0
  739. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_machine_fault.py +0 -0
  740. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_machine_metrics.py +0 -0
  741. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_machine_onboard.py +0 -0
  742. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_machine_pause.py +0 -0
  743. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_machine_stats.py +0 -0
  744. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_merge_queue.py +0 -0
  745. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_merge_verify.py +0 -0
  746. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_milestone_chat.py +0 -0
  747. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_milestone_dispatch.py +0 -0
  748. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_milestone_gate.py +0 -0
  749. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_milestone_order.py +0 -0
  750. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_milestone_seam.py +0 -0
  751. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_mock_author.py +0 -0
  752. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_model_tiering.py +0 -0
  753. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_models.py +0 -0
  754. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_models_config_labels.py +0 -0
  755. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_needs_attention.py +0 -0
  756. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_network.py +0 -0
  757. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_new_issue_chat.py +0 -0
  758. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_next_release_tag.py +0 -0
  759. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_node_shim.py +0 -0
  760. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_notifier_baseline.py +0 -0
  761. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_notifier_cli.py +0 -0
  762. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_notifier_collect.py +0 -0
  763. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_notifier_config.py +0 -0
  764. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_notifier_drive_seam.py +0 -0
  765. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_notifier_isolation.py +0 -0
  766. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_notifier_predicate.py +0 -0
  767. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_notifier_quiet_hours.py +0 -0
  768. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_notifier_service.py +0 -0
  769. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_notify_drain.py +0 -0
  770. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_openapi.py +0 -0
  771. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_operational_defaults.py +0 -0
  772. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_overlap_fence.py +0 -0
  773. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_overlap_predict.py +0 -0
  774. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_packaged_deploy_units.py +0 -0
  775. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_parentage.py +0 -0
  776. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_paste_landed.py +0 -0
  777. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_phantom_heal_venv_independence_2570.py +0 -0
  778. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_pipeline.py +0 -0
  779. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_plan_followup_approve_plan_command.py +0 -0
  780. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_plan_followup_pr_command.py +0 -0
  781. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_plan_followup_review_command.py +0 -0
  782. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_plan_only.py +0 -0
  783. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_plan_parser.py +0 -0
  784. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_platform_paths.py +0 -0
  785. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_portal_bridge.py +0 -0
  786. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_portal_config.py +0 -0
  787. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_portal_store.py +0 -0
  788. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_portal_sync.py +0 -0
  789. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_pr_body_lint.py +0 -0
  790. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_prereqs.py +0 -0
  791. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_production_db_guard.py +0 -0
  792. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_progress.py +0 -0
  793. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_provider_seam.py +0 -0
  794. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_providers.py +0 -0
  795. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_providers_config_labels.py +0 -0
  796. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_providers_pty.py +0 -0
  797. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_provision_core.py +0 -0
  798. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_provision_machine.py +0 -0
  799. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_py_rust_mirror_inventory.py +0 -0
  800. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_quiet_hours.py +0 -0
  801. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_quiet_hours_store_2146.py +0 -0
  802. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_reap_merged_sessions.py +0 -0
  803. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_reap_stale_interactive_tick.py +0 -0
  804. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_reconcile_branch.py +0 -0
  805. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_reconcile_completions.py +0 -0
  806. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_reconcile_late_agent_reports_2547.py +0 -0
  807. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_reconcile_merges.py +0 -0
  808. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_reconcile_no_agent_record.py +0 -0
  809. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_reconcile_tick.py +0 -0
  810. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_reconcile_usage_limit_done.py +0 -0
  811. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_refine_chat.py +0 -0
  812. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_release_cordon_2101.py +0 -0
  813. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
  814. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_release_cordon_deadlock_2240.py +0 -0
  815. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_release_cordon_drain_stall_3336.py +0 -0
  816. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_release_cordon_stuck_2490.py +0 -0
  817. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_release_propagate.py +0 -0
  818. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_release_propagate_threshold.py +0 -0
  819. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_release_roll_between_legs_2854.py +0 -0
  820. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_release_roll_window_handoff.py +0 -0
  821. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_release_unified_1242.py +0 -0
  822. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_release_verify.py +0 -0
  823. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_release_window.py +0 -0
  824. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_remote_auto_prune.py +0 -0
  825. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_remote_interactive_reaper.py +0 -0
  826. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_repo_add.py +0 -0
  827. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_repo_dormancy.py +0 -0
  828. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_repo_edit_2220.py +0 -0
  829. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_repo_graph_fleet_2237.py +0 -0
  830. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_repo_max_parallel_3423.py +0 -0
  831. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_repo_onboard_2220.py +0 -0
  832. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_report_result_push.py +0 -0
  833. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_reports.py +0 -0
  834. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_restart_cmd.py +0 -0
  835. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_retry.py +0 -0
  836. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_retry_advisory_1606.py +0 -0
  837. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_retry_escalation_classify_3360.py +0 -0
  838. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_retry_type_1636.py +0 -0
  839. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_revalidate.py +0 -0
  840. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_review.py +0 -0
  841. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_review_end_review_without_verdict.py +0 -0
  842. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_review_parse_failure_diagnostic.py +0 -0
  843. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_review_reaffirm.py +0 -0
  844. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_review_state.py +0 -0
  845. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_review_verdict_backstop.py +0 -0
  846. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_review_verdict_override_audit.py +0 -0
  847. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_review_verdict_relay.py +0 -0
  848. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_review_zero_commits.py +0 -0
  849. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_scoped_review_wiring.py +0 -0
  850. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_scorecard.py +0 -0
  851. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_self_health.py +0 -0
  852. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_serve.py +0 -0
  853. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_serve_app.py +0 -0
  854. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_serve_app_board_trim.py +0 -0
  855. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_serve_rest_routes.py +0 -0
  856. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_session.py +0 -0
  857. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_slice_issue_attribution.py +0 -0
  858. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_smoke.py +0 -0
  859. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_smoke_fanout_manifest_3333.py +0 -0
  860. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_smoke_live_checkout_restore.py +0 -0
  861. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_smoke_workflow.py +0 -0
  862. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_spend_ceiling.py +0 -0
  863. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_spend_ceiling_coordinator.py +0 -0
  864. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_split.py +0 -0
  865. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_split_work.py +0 -0
  866. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_sql_dialect.py +0 -0
  867. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_sqlite_connect_ratchet.py +0 -0
  868. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_stage_projection.py +0 -0
  869. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_stale_busy_reviewer_697.py +0 -0
  870. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_stalled_pipeline.py +0 -0
  871. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_state.py +0 -0
  872. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_state_review_findings_daemon.py +0 -0
  873. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_status_fleet_footer.py +0 -0
  874. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_stop_1567.py +0 -0
  875. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_store_contract.py +0 -0
  876. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_store_migrate.py +0 -0
  877. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_stuck.py +0 -0
  878. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_stuck_test_state_watchdog_2803.py +0 -0
  879. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_terminal_command.py +0 -0
  880. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_test_author.py +0 -0
  881. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_test_chat.py +0 -0
  882. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_test_orchestrator.py +0 -0
  883. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_test_report.py +0 -0
  884. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_test_verdict_parsing.py +0 -0
  885. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_test_verdict_transcript_floor.py +0 -0
  886. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_text_io_encoding_audit.py +0 -0
  887. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_thin_client_board_audit.py +0 -0
  888. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_thin_client_config_load_1080.py +0 -0
  889. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_thin_client_daemon_routing_906.py +0 -0
  890. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_throwaway_vm.py +0 -0
  891. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_tmux_host.py +0 -0
  892. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_tmux_session.py +0 -0
  893. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_transcript_floor.py +0 -0
  894. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_uat_checks.py +0 -0
  895. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_usage.py +0 -0
  896. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_usage_limits.py +0 -0
  897. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_usage_rollup.py +0 -0
  898. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_venv_live_install_2121.py +0 -0
  899. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_version_single_source.py +0 -0
  900. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_watch.py +0 -0
  901. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
  902. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_worker_env_venv_isolation.py +0 -0
  903. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_worker_events.py +0 -0
  904. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_worker_image_pin_sync.py +0 -0
  905. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_worker_safety.py +0 -0
  906. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_worker_test_scoping.py +0 -0
  907. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_worktree.py +0 -0
  908. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_worktree_rmtree_chokepoint.py +0 -0
  909. {code_coordinator-0.5.528 → code_coordinator-0.5.529}/tests/test_write_parity.py +0 -0
  910. {code_coordinator-0.5.528 → 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.528
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.528
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,7 +1,7 @@
1
1
  {
2
- "tag": "0.5.528",
2
+ "tag": "0.5.529",
3
3
  "distance": 0,
4
- "node": "g5d8c44f81e315b4c270cd5e0de714532c0ec9395",
4
+ "node": "g3f472c582029adafcec0ee12c3abf4df1ccd9b88",
5
5
  "dirty": false,
6
6
  "branch": "HEAD",
7
7
  "node_date": "2026-09-28"
@@ -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
@@ -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,