code-coordinator 0.5.660__tar.gz → 0.5.661__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 (981) hide show
  1. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/PKG-INFO +1 -1
  2. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/code_coordinator.egg-info/PKG-INFO +1 -1
  3. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/code_coordinator.egg-info/scm_version.json +2 -2
  4. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/merge.py +61 -42
  5. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/merge_queue.py +75 -11
  6. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_merge.py +43 -0
  7. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_epic_up_down_symlinked_config_1887.py +30 -1
  8. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_merge_queue.py +161 -1
  9. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/.claude/commands/board.md +0 -0
  10. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/.claude/commands/complete-session.md +0 -0
  11. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/.claude/commands/coordinator.md +0 -0
  12. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/.githooks/_lib.sh +0 -0
  13. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/.githooks/post-checkout +0 -0
  14. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/.githooks/post-commit +0 -0
  15. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/.githooks/post-merge +0 -0
  16. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  17. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/.github/coord-ci-acceptance.yml +0 -0
  18. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/.github/workflows/auto-release.yml +0 -0
  19. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/.github/workflows/publish.yml +0 -0
  20. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/.github/workflows/test.yml +0 -0
  21. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/.gitignore +0 -0
  22. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/CLAUDE.md +0 -0
  23. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/GOAL.md +0 -0
  24. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/LICENSE +0 -0
  25. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/MANIFEST.in +0 -0
  26. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/README.md +0 -0
  27. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/code_coordinator.egg-info/SOURCES.txt +0 -0
  28. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/code_coordinator.egg-info/dependency_links.txt +0 -0
  29. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/code_coordinator.egg-info/entry_points.txt +0 -0
  30. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/code_coordinator.egg-info/requires.txt +0 -0
  31. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/code_coordinator.egg-info/scm_file_list.json +0 -0
  32. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/code_coordinator.egg-info/top_level.txt +0 -0
  33. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/__init__.py +0 -0
  34. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/_board_mapping.py +0 -0
  35. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/acceptance.py +0 -0
  36. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/acceptance_drivers.py +0 -0
  37. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/agent.py +0 -0
  38. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/agent_app.py +0 -0
  39. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/agent_update.py +0 -0
  40. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/agents/opencode/.gitignore +0 -0
  41. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/agents/opencode/agents/work.md +0 -0
  42. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/agents/opencode/routing.jsonc +0 -0
  43. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/app_drive.py +0 -0
  44. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/app_drive_daemon.py +0 -0
  45. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/approved_work.py +0 -0
  46. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/audit.py +0 -0
  47. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/auto_loop.py +0 -0
  48. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/backup.py +0 -0
  49. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/block_log.py +0 -0
  50. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/board_schema.py +0 -0
  51. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/board_service.py +0 -0
  52. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/board_wire.py +0 -0
  53. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/brain.py +0 -0
  54. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/branch_model.py +0 -0
  55. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/briefing_lessons.py +0 -0
  56. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/bug_intake.py +0 -0
  57. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/bugbash.py +0 -0
  58. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/cargo_cache.py +0 -0
  59. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/ci_fix.py +0 -0
  60. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/ci_github.py +0 -0
  61. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/ci_gitlab.py +0 -0
  62. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/ci_store.py +0 -0
  63. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/claim.py +0 -0
  64. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/claude_setup_token.py +0 -0
  65. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/cli.py +0 -0
  66. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/client.py +0 -0
  67. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/codegen.py +0 -0
  68. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/__init__.py +0 -0
  69. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/_common.py +0 -0
  70. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/acceptance.py +0 -0
  71. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/agent_ops.py +0 -0
  72. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/app_drive.py +0 -0
  73. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/audit.py +0 -0
  74. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/backup.py +0 -0
  75. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/bugbash.py +0 -0
  76. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/chat.py +0 -0
  77. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/ci.py +0 -0
  78. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/codegen.py +0 -0
  79. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/dispatch.py +0 -0
  80. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/dispatch_workers.py +0 -0
  81. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/dr.py +0 -0
  82. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/drive.py +0 -0
  83. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/drive_queue.py +0 -0
  84. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/gate_a.py +0 -0
  85. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/gates.py +0 -0
  86. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/issues.py +0 -0
  87. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/lifecycle.py +0 -0
  88. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/machine.py +0 -0
  89. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/milestone.py +0 -0
  90. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/plan_followup.py +0 -0
  91. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/plans.py +0 -0
  92. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/portal.py +0 -0
  93. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/pr.py +0 -0
  94. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/release.py +0 -0
  95. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/repo.py +0 -0
  96. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/report.py +0 -0
  97. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/review.py +0 -0
  98. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/scorecard.py +0 -0
  99. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/sessions.py +0 -0
  100. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/setup.py +0 -0
  101. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/smoke.py +0 -0
  102. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/status.py +0 -0
  103. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/store_migrate.py +0 -0
  104. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/terminal.py +0 -0
  105. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/test_gate.py +0 -0
  106. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/commands/tui.py +0 -0
  107. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/comments.py +0 -0
  108. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/config.py +0 -0
  109. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/config_reload.py +0 -0
  110. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/confirm_test.py +0 -0
  111. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/conflict_fix.py +0 -0
  112. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/dao.py +0 -0
  113. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/dashboard/__init__.py +0 -0
  114. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/dashboard/fixture.py +0 -0
  115. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/dashboard/index.html +0 -0
  116. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/dashboard/reports.html +0 -0
  117. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/dashboard/server.py +0 -0
  118. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/dashboard/terminal.py +0 -0
  119. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/db.py +0 -0
  120. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/dead_end.py +0 -0
  121. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/decomposition_chat.py +0 -0
  122. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/deploy/README.md +0 -0
  123. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/deploy/coord-agent.service +0 -0
  124. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/deploy/coord-backup.service +0 -0
  125. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/deploy/coord-backup.timer +0 -0
  126. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/deploy/coord-db-backup.service +0 -0
  127. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/deploy/coord-db-backup.sh +0 -0
  128. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/deploy/coord-db-backup.timer +0 -0
  129. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/deploy/coord-dr-verify.service +0 -0
  130. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/deploy/coord-dr-verify.timer +0 -0
  131. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/deploy/coord-drive-queue.service +0 -0
  132. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/deploy/coord-drive-queue.timer +0 -0
  133. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/deploy/coord-failure-notify.service +0 -0
  134. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/deploy/coord-fleet-watchdog.service +0 -0
  135. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/deploy/coord-fleet-watchdog.timer +0 -0
  136. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/deploy/coord-nightly-smoke.service +0 -0
  137. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/deploy/coord-nightly-smoke.timer +0 -0
  138. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/deploy/coord-notify.service +0 -0
  139. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/deploy/coord-notify.timer +0 -0
  140. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/deploy/coord-release-propagate.service +0 -0
  141. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/deploy/coord-release-propagate.timer +0 -0
  142. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/deploy/coord-release-window.service +0 -0
  143. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/deploy/coord-release-window.timer +0 -0
  144. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/deploy/coord-serve.service +0 -0
  145. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/deploy/coord-web-dist-build.service +0 -0
  146. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/deploy/coord-web-dist-build.timer +0 -0
  147. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/deploy/coord-web.service +0 -0
  148. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/deploy_manifest.py +0 -0
  149. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/deploy_units.py +0 -0
  150. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/deprecation_telemetry.py +0 -0
  151. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/deps.py +0 -0
  152. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/diagnose.py +0 -0
  153. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/dirlink.py +0 -0
  154. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/dispatch.py +0 -0
  155. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/dispatch_liveness.py +0 -0
  156. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/dist_name.py +0 -0
  157. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/dr_promote.py +0 -0
  158. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/dr_verify.py +0 -0
  159. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/drive.py +0 -0
  160. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/drive_queue.py +0 -0
  161. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/drive_sessions_snapshot.py +0 -0
  162. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/drive_state.py +0 -0
  163. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/events.py +0 -0
  164. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/failure_class.py +0 -0
  165. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/failure_classifier.py +0 -0
  166. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/filelock.py +0 -0
  167. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/fleet_config_health.py +0 -0
  168. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/forge_availability.py +0 -0
  169. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/freshness.py +0 -0
  170. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/gate_a.py +0 -0
  171. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/gate_b.py +0 -0
  172. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/gate_snapshot.py +0 -0
  173. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/gates.py +0 -0
  174. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/gen_board_fixture.py +0 -0
  175. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/github_ops.py +0 -0
  176. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/github_throttle.py +0 -0
  177. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/goal.py +0 -0
  178. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/graph_health.py +0 -0
  179. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/gtk_native_driver.py +0 -0
  180. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/__init__.py +0 -0
  181. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/aggregate.py +0 -0
  182. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/checks/__init__.py +0 -0
  183. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/checks/_ci_pin.py +0 -0
  184. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/checks/agent_install.py +0 -0
  185. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/checks/cargo_targets.py +0 -0
  186. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/checks/claude_binary.py +0 -0
  187. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/checks/config_drift.py +0 -0
  188. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/checks/coord_tui_ci_pin.py +0 -0
  189. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/checks/coord_web_ci_pin.py +0 -0
  190. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/checks/deploy_lane_facts.py +0 -0
  191. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/checks/disk.py +0 -0
  192. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/checks/fleet_board.py +0 -0
  193. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/checks/fleet_deploy_lanes.py +0 -0
  194. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/checks/fleet_phantom.py +0 -0
  195. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/checks/fleet_unit_drift.py +0 -0
  196. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/checks/graph.py +0 -0
  197. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/checks/graphify_cli.py +0 -0
  198. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/checks/gui_lane_preflight.py +0 -0
  199. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/checks/index_lock.py +0 -0
  200. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/checks/issues_sync_staleness.py +0 -0
  201. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/checks/local_machine_identity.py +0 -0
  202. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/checks/plan_usage.py +0 -0
  203. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/checks/pr_churn.py +0 -0
  204. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/checks/release_cordon.py +0 -0
  205. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/checks/repo_state.py +0 -0
  206. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/checks/spawned_coord.py +0 -0
  207. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/checks/stalled_pipeline.py +0 -0
  208. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/checks/timer_active.py +0 -0
  209. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/checks/toolchain.py +0 -0
  210. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/checks/unit_drift.py +0 -0
  211. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/checks/unit_enablement.py +0 -0
  212. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/checks/wedged_drive_queue.py +0 -0
  213. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/checks/worktrees.py +0 -0
  214. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/cli.py +0 -0
  215. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/context.py +0 -0
  216. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/fleet_snapshot.py +0 -0
  217. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/models.py +0 -0
  218. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/pypi.py +0 -0
  219. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/registry.py +0 -0
  220. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/render.py +0 -0
  221. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/health/units.py +0 -0
  222. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/hooks.py +0 -0
  223. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/housekeeping.py +0 -0
  224. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/interactive.py +0 -0
  225. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/invariant_alarms.py +0 -0
  226. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/issue_store.py +0 -0
  227. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/issues_sync_status.py +0 -0
  228. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/key_spec.py +0 -0
  229. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/liveness_auditor.py +0 -0
  230. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/mac_native_driver.py +0 -0
  231. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/machine_fault.py +0 -0
  232. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/machine_metrics.py +0 -0
  233. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/machine_onboard.py +0 -0
  234. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/machine_pause.py +0 -0
  235. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/machine_stats.py +0 -0
  236. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/milestone_chat.py +0 -0
  237. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/milestone_dispatch.py +0 -0
  238. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/milestone_gate.py +0 -0
  239. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/milestone_order.py +0 -0
  240. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/mock_author.py +0 -0
  241. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/models.py +0 -0
  242. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/native_fs_wait.py +0 -0
  243. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/native_pixels.py +0 -0
  244. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/network.py +0 -0
  245. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/new_issue_chat.py +0 -0
  246. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/nightly_runner.py +0 -0
  247. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/nightly_smoke.py +0 -0
  248. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/nightly_status.py +0 -0
  249. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/nightly_store.py +0 -0
  250. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/notifier/__init__.py +0 -0
  251. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/notifier/baseline.py +0 -0
  252. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/notifier/cli.py +0 -0
  253. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/notifier/collect.py +0 -0
  254. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/notifier/digest.py +0 -0
  255. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/notifier/models.py +0 -0
  256. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/notifier/predicate.py +0 -0
  257. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/notifier/service.py +0 -0
  258. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/notifier/store.py +0 -0
  259. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/notifier/transport.py +0 -0
  260. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/notify.py +0 -0
  261. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/openapi.py +0 -0
  262. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/overlap_fence.py +0 -0
  263. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/overlap_predict.py +0 -0
  264. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/parentage.py +0 -0
  265. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/parentage_github.py +0 -0
  266. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/pipeline.py +0 -0
  267. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/plan_parser.py +0 -0
  268. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/plans.py +0 -0
  269. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/platform_paths.py +0 -0
  270. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/portal_bridge.py +0 -0
  271. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/portal_store.py +0 -0
  272. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/portal_sync.py +0 -0
  273. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/pr_body_lint.py +0 -0
  274. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/prereqs.py +0 -0
  275. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/prereview_gate.py +0 -0
  276. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/progress.py +0 -0
  277. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/providers/__init__.py +0 -0
  278. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/providers/base.py +0 -0
  279. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/providers/claude.py +0 -0
  280. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/providers/claude_pty.py +0 -0
  281. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/providers/opencode.py +0 -0
  282. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/queue_diagnose.py +0 -0
  283. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/reconcile.py +0 -0
  284. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/reconcile_tick.py +0 -0
  285. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/refine_chat.py +0 -0
  286. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/release_cordon.py +0 -0
  287. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/release_gate.py +0 -0
  288. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/release_propagate.py +0 -0
  289. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/release_verify.py +0 -0
  290. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/release_window.py +0 -0
  291. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/repo_dormancy.py +0 -0
  292. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/repo_edit.py +0 -0
  293. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/repo_onboard.py +0 -0
  294. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/reports.py +0 -0
  295. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/rest_schema.py +0 -0
  296. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/restart_cmd.py +0 -0
  297. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/revalidate.py +0 -0
  298. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/review.py +0 -0
  299. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/scorecard.py +0 -0
  300. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/self_health.py +0 -0
  301. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/serve_app.py +0 -0
  302. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/shell_exec_wrap.py +0 -0
  303. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/skills/coord-dispatch-verbs/SKILL.md +0 -0
  304. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/skills/drive-queue-preflight/SKILL.md +0 -0
  305. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/skills/fleet-restart-safety/SKILL.md +0 -0
  306. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/skills/merge-stuck-triage/SKILL.md +0 -0
  307. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/skills/pipeline-limbo-triage/SKILL.md +0 -0
  308. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/skills/portal-followup/SKILL.md +0 -0
  309. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/skills/release-now/SKILL.md +0 -0
  310. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/skills/review-verdict-recovery/SKILL.md +0 -0
  311. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/skills/tui-quadraui-workflow/SKILL.md +0 -0
  312. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/skills/update-issue/SKILL.md +0 -0
  313. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/smoke.py +0 -0
  314. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/smoke_tags.py +0 -0
  315. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/spend_ceiling.py +0 -0
  316. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/split_work.py +0 -0
  317. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/sql.py +0 -0
  318. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/stage_projection.py +0 -0
  319. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/state.py +0 -0
  320. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/store_migrate.py +0 -0
  321. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/store_parity.py +0 -0
  322. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/templates/deploy-cloudflare.node.yml +0 -0
  323. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/test_author.py +0 -0
  324. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/test_chat.py +0 -0
  325. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/test_orchestrator.py +0 -0
  326. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/test_report.py +0 -0
  327. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/tui_pty_driver.py +0 -0
  328. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/tui_release.py +0 -0
  329. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/uat_checks.py +0 -0
  330. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/upstream_gaps.py +0 -0
  331. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/usage.py +0 -0
  332. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/usage_limits.py +0 -0
  333. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/usage_rollup.py +0 -0
  334. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/win_native_bridge.py +0 -0
  335. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/win_native_driver.py +0 -0
  336. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coord/worker_events.py +0 -0
  337. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/coordinator.example.yml +0 -0
  338. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/deploy/coord-agent.service +0 -0
  339. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/deploy/coord-backup.service +0 -0
  340. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/deploy/coord-backup.timer +0 -0
  341. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/deploy/coord-db-backup.service +0 -0
  342. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/deploy/coord-db-backup.sh +0 -0
  343. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/deploy/coord-db-backup.timer +0 -0
  344. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/deploy/coord-dr-verify.service +0 -0
  345. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/deploy/coord-dr-verify.timer +0 -0
  346. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/deploy/coord-drive-queue.service +0 -0
  347. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/deploy/coord-drive-queue.timer +0 -0
  348. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/deploy/coord-failure-notify.service +0 -0
  349. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/deploy/coord-failure-notify.sh +0 -0
  350. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/deploy/coord-fleet-watchdog.service +0 -0
  351. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/deploy/coord-fleet-watchdog.timer +0 -0
  352. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/deploy/coord-nightly-smoke.service +0 -0
  353. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/deploy/coord-nightly-smoke.timer +0 -0
  354. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/deploy/coord-notify.service +0 -0
  355. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/deploy/coord-notify.timer +0 -0
  356. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/deploy/coord-release-propagate.service +0 -0
  357. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/deploy/coord-release-propagate.timer +0 -0
  358. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/deploy/coord-release-window.service +0 -0
  359. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/deploy/coord-release-window.timer +0 -0
  360. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/deploy/coord-serve.service +0 -0
  361. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/deploy/coord-web-dist-build.service +0 -0
  362. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/deploy/coord-web-dist-build.sh +0 -0
  363. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/deploy/coord-web-dist-build.timer +0 -0
  364. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/deploy/coord-web-rollback.sh +0 -0
  365. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/deploy/coord-web.service +0 -0
  366. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/deploy/node-shim.sh +0 -0
  367. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/ADR_COORD_TUI_CI.md +0 -0
  368. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/ADR_COORD_WEB_ACCEPTANCE_SUITE.md +0 -0
  369. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/ADR_COORD_WEB_CI.md +0 -0
  370. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/ADR_COORD_WEB_DIST.md +0 -0
  371. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/ADR_PY_RUST_MIRRORS.md +0 -0
  372. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/AGENT_OPERATIONS.md +0 -0
  373. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/ARCHITECTURE.md +0 -0
  374. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/ARCH_SECURITY_GATES.md +0 -0
  375. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/COCKPIT.md +0 -0
  376. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/CONTROL_CENTER.md +0 -0
  377. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/COST_DISCIPLINE.md +0 -0
  378. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/CROSS_PLATFORM.md +0 -0
  379. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/CUSTOMER_FACING_APPS.md +0 -0
  380. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/CUSTOMER_PORTAL.md +0 -0
  381. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/DATA_STORE_SELECTION.md +0 -0
  382. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/DISASTER_RECOVERY.md +0 -0
  383. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/DRIVE_QUEUE.md +0 -0
  384. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/EPHEMERAL_WORKERS.md +0 -0
  385. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/FORGE_MIGRATION.md +0 -0
  386. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/GRAPHIFY_SETUP.md +0 -0
  387. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/ISSUE_GUIDANCE.md +0 -0
  388. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/MAC_MINI.md +0 -0
  389. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
  390. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/NOTIFIER.md +0 -0
  391. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/OPENCODE_VERIFICATION.md +0 -0
  392. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/OPERATING_GOTCHAS.md +0 -0
  393. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/OPERATOR_GUIDES.md +0 -0
  394. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/ORACLE_LOOP.md +0 -0
  395. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/PHONE_WEBAPP.md +0 -0
  396. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/PIPELINE_V2.md +0 -0
  397. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/PLATFORM_EVOLUTION.md +0 -0
  398. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/SECOND_BACKEND.md +0 -0
  399. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/STORE_SERVICE.md +0 -0
  400. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/TEST_FIRST_BUG_LANE.md +0 -0
  401. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/WEB_CONTROL_CENTER.md +0 -0
  402. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/WSL_WINDOWS_WORKER.md +0 -0
  403. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/mocks/web/README.md +0 -0
  404. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/mocks/web/_tokens.css +0 -0
  405. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/mocks/web/issue-detail.html +0 -0
  406. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/mocks/web/pipeline-narrow.html +0 -0
  407. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/docs/mocks/web/pipeline-wide.html +0 -0
  408. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/graphify-out/.gitignore +0 -0
  409. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/install-agent.sh +0 -0
  410. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/pyproject.toml +0 -0
  411. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/audit_review_verdict_overrides.py +0 -0
  412. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/azure-workers/bootstrap-shared.sh +0 -0
  413. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/azure-workers/build-worker-image.sh +0 -0
  414. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/azure-workers/coordinator-machine.py +0 -0
  415. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/azure-workers/dr-down.sh +0 -0
  416. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/azure-workers/dr-up.sh +0 -0
  417. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/azure-workers/epic-down.sh +0 -0
  418. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/azure-workers/epic-up.sh +0 -0
  419. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/azure-workers/preflight.sh +0 -0
  420. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/azure-workers/provision-server.sh +0 -0
  421. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/azure-workers/provision-worker.sh +0 -0
  422. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
  423. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/azure-workers/tailnet-acl.hujson +0 -0
  424. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/azure-workers/throwaway-vm.sh +0 -0
  425. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/azure-workers/verify-github-token.sh +0 -0
  426. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/check_gh_argv_containment.py +0 -0
  427. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/codegen.py +0 -0
  428. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/comment_cruft.py +0 -0
  429. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/coord-test-runner.sh +0 -0
  430. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/coord-tui-scaffold/.github/coord-ci-acceptance.yml +0 -0
  431. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/coord-tui-scaffold/.github/workflows/cargo-test.yml +0 -0
  432. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/coord-tui-scaffold/.github/workflows/codegen-drift.yml +0 -0
  433. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/coord-tui-scaffold/CLAUDE.md +0 -0
  434. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/coord-venv-rollback.sh +0 -0
  435. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/drive-batch.sh +0 -0
  436. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/extract-coord-tui.sh +0 -0
  437. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/fleet_watchdog.py +0 -0
  438. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/gen_board_fixture.py +0 -0
  439. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/gen_mock_index.py +0 -0
  440. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/lib/provision-core.sh +0 -0
  441. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/next_release_tag.py +0 -0
  442. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/provision-machine.sh +0 -0
  443. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/run_tests_in_populated_home.sh +0 -0
  444. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/run_tests_without_gh.sh +0 -0
  445. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/setup-macmini.sh +0 -0
  446. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/smoke_437_interactive.py +0 -0
  447. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/verify-provision-noble.sh +0 -0
  448. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/verify_878_review_capture.py +0 -0
  449. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/verify_release_published.py +0 -0
  450. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/scripts/verify_release_wheel.py +0 -0
  451. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/setup.cfg +0 -0
  452. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/SMOKE_SET.md +0 -0
  453. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/__init__.py +0 -0
  454. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/acceptance/ms-37/conftest.py +0 -0
  455. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/acceptance/ms-37/contract.md +0 -0
  456. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/acceptance/ms-37/manifest.yml +0 -0
  457. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
  458. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
  459. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/acceptance/ms-51/contract.md +0 -0
  460. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
  461. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
  462. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/acceptance/ms-51/manifest.yml +0 -0
  463. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
  464. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/acceptance/ms-51/tsconfig.json +0 -0
  465. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
  466. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/backends.py +0 -0
  467. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/conftest.py +0 -0
  468. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/fixtures/board-pipeline-basic.json +0 -0
  469. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
  470. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
  471. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
  472. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/fixtures/opencode_run_sample.jsonl +0 -0
  473. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/fixtures/playwright/all_pass.json +0 -0
  474. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/fixtures/playwright/global_setup_crash.json +0 -0
  475. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/fixtures/playwright/mixed_fail.json +0 -0
  476. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/fixtures/playwright/retry_then_pass.json +0 -0
  477. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
  478. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/fixtures/playwright/skip.json +0 -0
  479. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/fixtures/playwright/truncated.json +0 -0
  480. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
  481. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
  482. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
  483. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
  484. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/fixtures/test_report/pytest_error_log_record.txt +0 -0
  485. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
  486. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
  487. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
  488. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
  489. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_acceptance.py +0 -0
  490. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_acceptance_drivers.py +0 -0
  491. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_agent.py +0 -0
  492. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_agent_api_error.py +0 -0
  493. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_agent_app.py +0 -0
  494. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_agent_branch_base.py +0 -0
  495. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_agent_branch_capture.py +0 -0
  496. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_agent_config_free_1712.py +0 -0
  497. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_agent_deploy_units_endpoint.py +0 -0
  498. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_agent_dirty_worktree.py +0 -0
  499. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_agent_drive_queue_reconcile_2373.py +0 -0
  500. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_agent_graceful_shutdown_3649.py +0 -0
  501. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_agent_graph_refresh.py +0 -0
  502. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_agent_graph_self_heal.py +0 -0
  503. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_agent_health_h3.py +0 -0
  504. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_agent_idle_restart.py +0 -0
  505. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_agent_push_failure.py +0 -0
  506. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_agent_reap.py +0 -0
  507. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_agent_repos_and_pull.py +0 -0
  508. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_agent_restart_services_endpoint.py +0 -0
  509. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_agent_skills_self_heal.py +0 -0
  510. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_agent_startup_diagnostics.py +0 -0
  511. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_agent_update.py +0 -0
  512. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_agent_update_bluegreen.py +0 -0
  513. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_agent_usage_limit.py +0 -0
  514. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_agent_zero_commit.py +0 -0
  515. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_ambient_home_isolation.py +0 -0
  516. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_app_drive.py +0 -0
  517. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_approve_capability_reroute_3241.py +0 -0
  518. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_approve_dependency_busy_2804.py +0 -0
  519. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_approve_reject_plan.py +0 -0
  520. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_approve_usage_gate.py +0 -0
  521. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_approved_work_2532.py +0 -0
  522. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_approved_work_2996.py +0 -0
  523. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_assignment_already_recorded_daemon.py +0 -0
  524. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_audit_log.py +0 -0
  525. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_audit_outcome.py +0 -0
  526. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_audit_query.py +0 -0
  527. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_auto_loop.py +0 -0
  528. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_auto_release_publish_2035.py +0 -0
  529. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_backend_selection.py +0 -0
  530. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_backup.py +0 -0
  531. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_base_checkout_restore.py +0 -0
  532. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_block_log.py +0 -0
  533. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_board_cap_762.py +0 -0
  534. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_board_fixture.py +0 -0
  535. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_board_nightly_status.py +0 -0
  536. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_board_read_path.py +0 -0
  537. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_board_schema.py +0 -0
  538. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_board_service.py +0 -0
  539. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_board_state.py +0 -0
  540. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_board_wire.py +0 -0
  541. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_brain.py +0 -0
  542. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_branch_model.py +0 -0
  543. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_briefing_lessons.py +0 -0
  544. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_bug_intake.py +0 -0
  545. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_bugbash.py +0 -0
  546. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_build_worker_image_env_update.py +0 -0
  547. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cargo_cache.py +0 -0
  548. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_check_gh_argv_containment.py +0 -0
  549. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_ci_acceptance_gate_1950.py +0 -0
  550. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_ci_fix.py +0 -0
  551. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_ci_github.py +0 -0
  552. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_ci_gitlab.py +0 -0
  553. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_ci_parity_2091.py +0 -0
  554. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_ci_store.py +0 -0
  555. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_claim.py +0 -0
  556. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_claude_md_budget.py +0 -0
  557. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_claude_setup_token.py +0 -0
  558. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_acceptance.py +0 -0
  559. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_assign.py +0 -0
  560. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
  561. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_assign_interactive_remote.py +0 -0
  562. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_assign_provider.py +0 -0
  563. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_assign_repo_drift_2219.py +0 -0
  564. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_audit.py +0 -0
  565. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_chat_continue.py +0 -0
  566. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_ci.py +0 -0
  567. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_codegen.py +0 -0
  568. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_decide.py +0 -0
  569. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_diagnose_capability_rules.py +0 -0
  570. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_diagnose_config_provenance.py +0 -0
  571. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_diagnose_forge_availability.py +0 -0
  572. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_diagnose_graph.py +0 -0
  573. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_diagnose_self.py +0 -0
  574. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_diagnose_test_coverage.py +0 -0
  575. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_doctor.py +0 -0
  576. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_doctor_config_free_1801.py +0 -0
  577. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
  578. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_doctor_store_backend_3084.py +0 -0
  579. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_drive.py +0 -0
  580. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_drive_queue.py +0 -0
  581. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_escalate.py +0 -0
  582. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_fix_headless_review.py +0 -0
  583. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_gate_a.py +0 -0
  584. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_inject_board_less.py +0 -0
  585. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_install_drift.py +0 -0
  586. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_install_skills.py +0 -0
  587. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_issue_close_wrong_repo.py +0 -0
  588. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_issue_comment.py +0 -0
  589. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_issue_create_label.py +0 -0
  590. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_issue_reopen.py +0 -0
  591. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_issue_view_list.py +0 -0
  592. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_issues.py +0 -0
  593. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_milestone_assign.py +0 -0
  594. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_milestone_capture.py +0 -0
  595. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_milestone_chat_add_child.py +0 -0
  596. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_milestone_dispatch.py +0 -0
  597. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_milestone_gate_b.py +0 -0
  598. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_milestone_gate_c.py +0 -0
  599. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_milestone_order.py +0 -0
  600. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
  601. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_milestone_ship.py +0 -0
  602. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_network.py +0 -0
  603. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_new_issue_chat.py +0 -0
  604. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_plans.py +0 -0
  605. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_portal.py +0 -0
  606. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_pr.py +0 -0
  607. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_pull_artifact.py +0 -0
  608. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_queue.py +0 -0
  609. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_reattach_sessions.py +0 -0
  610. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_refine_board.py +0 -0
  611. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_release_preflight.py +0 -0
  612. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_release_propagate.py +0 -0
  613. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_release_window.py +0 -0
  614. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_repo_2220.py +0 -0
  615. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_review_test_author_tracking_epic_2639.py +0 -0
  616. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_scorecard.py +0 -0
  617. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_serve_store_backend_3084.py +0 -0
  618. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_set_review_findings.py +0 -0
  619. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_smoke_nightly.py +0 -0
  620. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_smoke_nightly_sweep.py +0 -0
  621. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_status_advisory_terminal.py +0 -0
  622. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_status_contested_tag.py +0 -0
  623. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_status_invariant_alarms.py +0 -0
  624. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_status_machine_fault.py +0 -0
  625. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_status_merge_queue.py +0 -0
  626. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_status_nightly.py +0 -0
  627. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_status_provider.py +0 -0
  628. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_status_retried_3340.py +0 -0
  629. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_status_review_finalizing.py +0 -0
  630. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_status_supervisor_3366.py +0 -0
  631. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_status_test_failed_tag.py +0 -0
  632. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_status_usage_limit.py +0 -0
  633. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_sync_comments_873.py +0 -0
  634. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_test_plan.py +0 -0
  635. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_track.py +0 -0
  636. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_tui_update.py +0 -0
  637. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cli_wait.py +0 -0
  638. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_client.py +0 -0
  639. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_client_base_install.py +0 -0
  640. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_client_config_cache_atomic_3052.py +0 -0
  641. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_client_resource_migration_1946.py +0 -0
  642. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_commands_common.py +0 -0
  643. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_comment_cruft.py +0 -0
  644. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_comments.py +0 -0
  645. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_completion_summary.py +0 -0
  646. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_config.py +0 -0
  647. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_config_acceptance.py +0 -0
  648. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_config_audit.py +0 -0
  649. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_config_drift_check.py +0 -0
  650. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_config_effective.py +0 -0
  651. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_config_prereview_gate.py +0 -0
  652. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_config_pricing.py +0 -0
  653. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
  654. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_config_usage_gate.py +0 -0
  655. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_confirm_test.py +0 -0
  656. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_conflict_fix.py +0 -0
  657. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_conflict_fix_semantic.py +0 -0
  658. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_coord_log_daemon_fallback_2547.py +0 -0
  659. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_coord_test.py +0 -0
  660. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_coord_test_runner_acceptance_toolchain_2936.py +0 -0
  661. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_coord_test_runner_baseline.py +0 -0
  662. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_coord_test_runner_populated_home.py +0 -0
  663. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_coord_test_runner_routing.py +0 -0
  664. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_coord_test_runner_toolchain.py +0 -0
  665. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_coord_uat.py +0 -0
  666. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_coord_web_sse_restart_live.py +0 -0
  667. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_coordinator_machine.py +0 -0
  668. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_cross_platform_imports.py +0 -0
  669. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_dao.py +0 -0
  670. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_dashboard.py +0 -0
  671. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_dashboard_api.py +0 -0
  672. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_dashboard_fixture.py +0 -0
  673. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_dashboard_reports.py +0 -0
  674. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_dashboard_server.py +0 -0
  675. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_dashboard_terminal.py +0 -0
  676. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_dashboard_terminal_live.py +0 -0
  677. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_db.py +0 -0
  678. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_dead_end.py +0 -0
  679. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_decomposition_chat.py +0 -0
  680. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_deploy_coord_db_backup.py +0 -0
  681. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_deploy_coord_web_dist.py +0 -0
  682. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_deploy_coord_web_rollback.py +0 -0
  683. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_deploy_db_backup_unit.py +0 -0
  684. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_deploy_drive_queue_unit.py +0 -0
  685. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_deploy_failure_notify_unit.py +0 -0
  686. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_deploy_manifest.py +0 -0
  687. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_deploy_notify_unit.py +0 -0
  688. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_deploy_units_lane.py +0 -0
  689. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_deploy_web_unit.py +0 -0
  690. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_deprecation_telemetry.py +0 -0
  691. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_deps.py +0 -0
  692. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_diagnose.py +0 -0
  693. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_dirlink.py +0 -0
  694. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_dispatch.py +0 -0
  695. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_dispatch_liveness.py +0 -0
  696. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_dispatch_target_validation.py +0 -0
  697. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_dispatch_workers.py +0 -0
  698. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_dist_name.py +0 -0
  699. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_done_housekeeping.py +0 -0
  700. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_dr_azure_scripts.py +0 -0
  701. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_dr_promote.py +0 -0
  702. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_dr_verify.py +0 -0
  703. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_drive.py +0 -0
  704. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_drive_machine_fault.py +0 -0
  705. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_drive_queue.py +0 -0
  706. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_drive_queue_blocked_rendering.py +0 -0
  707. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_drive_queue_launch_argv.py +0 -0
  708. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_drive_queue_max_parallel_config.py +0 -0
  709. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_drive_queue_max_parallel_per_repo_config.py +0 -0
  710. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_drive_queue_roll_pending.py +0 -0
  711. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_drive_queue_self_cordon_escalation.py +0 -0
  712. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_drive_sessions_snapshot.py +0 -0
  713. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_drive_state.py +0 -0
  714. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_drive_tmux.py +0 -0
  715. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_epic_up_capability_detection.py +0 -0
  716. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_epic_up_image_provenance.py +0 -0
  717. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_errors.py +0 -0
  718. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_events.py +0 -0
  719. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_failure_class.py +0 -0
  720. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_failure_classifier.py +0 -0
  721. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_filelock.py +0 -0
  722. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
  723. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_fix_escalation_classifier.py +0 -0
  724. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_fix_of_force_override.py +0 -0
  725. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_fleet_config_health.py +0 -0
  726. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_fleet_health_probes.py +0 -0
  727. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_fleet_health_snapshot.py +0 -0
  728. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_fleet_watchdog.py +0 -0
  729. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_forge_availability.py +0 -0
  730. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_freshness.py +0 -0
  731. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_gate_a.py +0 -0
  732. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_gate_b.py +0 -0
  733. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_gate_snapshot_staleness.py +0 -0
  734. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_gates.py +0 -0
  735. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_gather_fleet_tmux_sessions.py +0 -0
  736. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_gen_mock_index.py +0 -0
  737. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_generated_rust_fixture.py +0 -0
  738. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_generated_rust_requests.py +0 -0
  739. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_generated_types_fixture.py +0 -0
  740. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_github_ops.py +0 -0
  741. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_github_throttle.py +0 -0
  742. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_goal.py +0 -0
  743. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_graph_health.py +0 -0
  744. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_graph_selfheal_absent_2237.py +0 -0
  745. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_gtk_native_driver.py +0 -0
  746. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_handoff.py +0 -0
  747. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_health_checks.py +0 -0
  748. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_health_cli.py +0 -0
  749. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_health_cli_graph.py +0 -0
  750. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_health_config.py +0 -0
  751. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_health_context.py +0 -0
  752. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_health_coord_tui_ci_pin.py +0 -0
  753. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_health_coord_web_ci_pin.py +0 -0
  754. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_health_deploy_lane_facts.py +0 -0
  755. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_health_fix.py +0 -0
  756. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_health_incident_regression.py +0 -0
  757. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_health_issues_sync_staleness.py +0 -0
  758. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_health_pr_churn.py +0 -0
  759. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_health_pypi.py +0 -0
  760. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_health_registry.py +0 -0
  761. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_health_release_cordon_probe.py +0 -0
  762. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_health_timer_active.py +0 -0
  763. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_health_toolchain.py +0 -0
  764. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_health_unit_drift.py +0 -0
  765. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_health_unit_enablement.py +0 -0
  766. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_health_wedged_drive_queue.py +0 -0
  767. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_hooks.py +0 -0
  768. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_housekeeping.py +0 -0
  769. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_human_attended_437.py +0 -0
  770. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_init.py +0 -0
  771. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_install_agent_capabilities_3515.py +0 -0
  772. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_install_agent_venv_2911.py +0 -0
  773. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_install_agent_wsl_bridge_3515.py +0 -0
  774. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_integration.py +0 -0
  775. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_interactive.py +0 -0
  776. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_interactive_briefing_echo.py +0 -0
  777. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_interactive_pane_log_2541.py +0 -0
  778. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_interactive_prefill_state.py +0 -0
  779. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_interactive_session_relaunch.py +0 -0
  780. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_interactive_test_verdict_backstop.py +0 -0
  781. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_interactive_token_attribution.py +0 -0
  782. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_interactive_worktree.py +0 -0
  783. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_invariant_alarms.py +0 -0
  784. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_issue_store_seam.py +0 -0
  785. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_issues_sync_status.py +0 -0
  786. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_key_spec.py +0 -0
  787. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_liveness_auditor.py +0 -0
  788. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_liveness_notify.py +0 -0
  789. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_lock_contention_ratchet.py +0 -0
  790. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_mac_native_driver.py +0 -0
  791. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_machine_fault.py +0 -0
  792. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_machine_metrics.py +0 -0
  793. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_machine_onboard.py +0 -0
  794. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_machine_pause.py +0 -0
  795. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_machine_stats.py +0 -0
  796. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_merge_verification.py +0 -0
  797. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_merge_verify.py +0 -0
  798. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_milestone_chat.py +0 -0
  799. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_milestone_dispatch.py +0 -0
  800. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_milestone_gate.py +0 -0
  801. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_milestone_order.py +0 -0
  802. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_milestone_seam.py +0 -0
  803. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_mock_author.py +0 -0
  804. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_model_tiering.py +0 -0
  805. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_models.py +0 -0
  806. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_models_config_labels.py +0 -0
  807. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_models_pinned_1650.py +0 -0
  808. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_native_fs_wait.py +0 -0
  809. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_native_pixels.py +0 -0
  810. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_needs_attention.py +0 -0
  811. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_network.py +0 -0
  812. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_new_issue_chat.py +0 -0
  813. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_next_release_tag.py +0 -0
  814. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_nightly_runner.py +0 -0
  815. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_nightly_smoke.py +0 -0
  816. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_nightly_status.py +0 -0
  817. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_nightly_store.py +0 -0
  818. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_no_eligible_host_3600.py +0 -0
  819. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_node_shim.py +0 -0
  820. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_notifier_baseline.py +0 -0
  821. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_notifier_cli.py +0 -0
  822. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_notifier_collect.py +0 -0
  823. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_notifier_config.py +0 -0
  824. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_notifier_drive_seam.py +0 -0
  825. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_notifier_isolation.py +0 -0
  826. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_notifier_predicate.py +0 -0
  827. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_notifier_quiet_hours.py +0 -0
  828. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_notifier_service.py +0 -0
  829. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_notify.py +0 -0
  830. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_notify_drain.py +0 -0
  831. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_openapi.py +0 -0
  832. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_operational_defaults.py +0 -0
  833. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_overlap_fence.py +0 -0
  834. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_overlap_predict.py +0 -0
  835. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_packaged_deploy_units.py +0 -0
  836. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_parentage.py +0 -0
  837. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_paste_landed.py +0 -0
  838. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_phantom_heal_venv_independence_2570.py +0 -0
  839. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_pipeline.py +0 -0
  840. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_plain_runner_smoke_3673.py +0 -0
  841. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_plan_followup_approve_plan_command.py +0 -0
  842. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_plan_followup_pr_command.py +0 -0
  843. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_plan_followup_review_command.py +0 -0
  844. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_plan_only.py +0 -0
  845. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_plan_parser.py +0 -0
  846. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_platform_paths.py +0 -0
  847. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_portal_bridge.py +0 -0
  848. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_portal_config.py +0 -0
  849. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_portal_store.py +0 -0
  850. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_portal_sync.py +0 -0
  851. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_pr_body_lint.py +0 -0
  852. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_prereqs.py +0 -0
  853. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_prereview_gate.py +0 -0
  854. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_production_db_guard.py +0 -0
  855. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_progress.py +0 -0
  856. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_provider_seam.py +0 -0
  857. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_providers.py +0 -0
  858. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_providers_config_labels.py +0 -0
  859. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_providers_pty.py +0 -0
  860. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_provision_core.py +0 -0
  861. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_provision_machine.py +0 -0
  862. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_py_rust_mirror_inventory.py +0 -0
  863. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_quiet_hours.py +0 -0
  864. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_quiet_hours_store_2146.py +0 -0
  865. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_reap_merged_sessions.py +0 -0
  866. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_reap_stale_interactive_tick.py +0 -0
  867. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_reconcile.py +0 -0
  868. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_reconcile_branch.py +0 -0
  869. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_reconcile_completions.py +0 -0
  870. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_reconcile_late_agent_reports_2547.py +0 -0
  871. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_reconcile_merges.py +0 -0
  872. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_reconcile_no_agent_record.py +0 -0
  873. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_reconcile_tick.py +0 -0
  874. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_reconcile_usage_limit_done.py +0 -0
  875. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_refine_chat.py +0 -0
  876. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_release_cordon_2101.py +0 -0
  877. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
  878. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_release_cordon_deadlock_2240.py +0 -0
  879. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_release_cordon_drain_stall_3336.py +0 -0
  880. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_release_cordon_stuck_2490.py +0 -0
  881. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_release_gate.py +0 -0
  882. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_release_propagate.py +0 -0
  883. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_release_propagate_threshold.py +0 -0
  884. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_release_roll_between_legs_2854.py +0 -0
  885. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_release_roll_window_handoff.py +0 -0
  886. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_release_unified_1242.py +0 -0
  887. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_release_verify.py +0 -0
  888. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_release_window.py +0 -0
  889. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_remote_auto_prune.py +0 -0
  890. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_remote_interactive_reaper.py +0 -0
  891. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_repo_add.py +0 -0
  892. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_repo_dormancy.py +0 -0
  893. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_repo_edit_2220.py +0 -0
  894. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_repo_graph_fleet_2237.py +0 -0
  895. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_repo_max_parallel_3423.py +0 -0
  896. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_repo_onboard_2220.py +0 -0
  897. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_report_public_export.py +0 -0
  898. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_report_result_push.py +0 -0
  899. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_reports.py +0 -0
  900. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_restart_cmd.py +0 -0
  901. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_retry.py +0 -0
  902. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_retry_advisory_1606.py +0 -0
  903. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_retry_escalation_classify_3360.py +0 -0
  904. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_retry_type_1636.py +0 -0
  905. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_revalidate.py +0 -0
  906. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_review.py +0 -0
  907. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_review_end_review_without_verdict.py +0 -0
  908. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_review_parse_failure_diagnostic.py +0 -0
  909. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_review_reaffirm.py +0 -0
  910. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_review_state.py +0 -0
  911. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_review_verdict_backstop.py +0 -0
  912. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_review_verdict_override_audit.py +0 -0
  913. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_review_verdict_relay.py +0 -0
  914. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_review_zero_commits.py +0 -0
  915. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_scoped_review_wiring.py +0 -0
  916. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_scorecard.py +0 -0
  917. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_self_health.py +0 -0
  918. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_serve.py +0 -0
  919. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_serve_app.py +0 -0
  920. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_serve_app_board_trim.py +0 -0
  921. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_serve_rest_routes.py +0 -0
  922. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_session.py +0 -0
  923. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_slice_issue_attribution.py +0 -0
  924. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_smoke.py +0 -0
  925. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_smoke_fanout_manifest_3333.py +0 -0
  926. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_smoke_live_checkout_restore.py +0 -0
  927. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_smoke_plain_runner_3673.py +0 -0
  928. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_smoke_workflow.py +0 -0
  929. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_spend_ceiling.py +0 -0
  930. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_spend_ceiling_coordinator.py +0 -0
  931. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_split.py +0 -0
  932. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_split_work.py +0 -0
  933. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_sql_dialect.py +0 -0
  934. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_sqlite_connect_ratchet.py +0 -0
  935. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_stage_projection.py +0 -0
  936. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_stale_busy_reviewer_697.py +0 -0
  937. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_stalled_pipeline.py +0 -0
  938. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_state.py +0 -0
  939. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_state_review_findings_daemon.py +0 -0
  940. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_status_fleet_footer.py +0 -0
  941. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_stop_1567.py +0 -0
  942. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_store_contract.py +0 -0
  943. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_store_migrate.py +0 -0
  944. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_stuck.py +0 -0
  945. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_stuck_test_state_watchdog_2803.py +0 -0
  946. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_terminal_command.py +0 -0
  947. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_test_author.py +0 -0
  948. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_test_chat.py +0 -0
  949. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_test_orchestrator.py +0 -0
  950. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_test_report.py +0 -0
  951. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_test_verdict_parsing.py +0 -0
  952. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_test_verdict_transcript_floor.py +0 -0
  953. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_text_io_encoding_audit.py +0 -0
  954. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_thin_client_board_audit.py +0 -0
  955. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_thin_client_config_load_1080.py +0 -0
  956. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_thin_client_daemon_routing_906.py +0 -0
  957. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_throwaway_vm.py +0 -0
  958. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_tmux_host.py +0 -0
  959. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_tmux_session.py +0 -0
  960. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_transcript_floor.py +0 -0
  961. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_tui_pty_driver.py +0 -0
  962. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_uat_checks.py +0 -0
  963. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_upstream_gaps.py +0 -0
  964. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_usage.py +0 -0
  965. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_usage_limits.py +0 -0
  966. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_usage_rollup.py +0 -0
  967. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_venv_live_install_2121.py +0 -0
  968. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_version_single_source.py +0 -0
  969. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_watch.py +0 -0
  970. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_win_native_bridge.py +0 -0
  971. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_win_native_driver.py +0 -0
  972. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
  973. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_worker_env_venv_isolation.py +0 -0
  974. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_worker_events.py +0 -0
  975. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_worker_image_pin_sync.py +0 -0
  976. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_worker_safety.py +0 -0
  977. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_worker_test_scoping.py +0 -0
  978. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_worktree.py +0 -0
  979. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_worktree_rmtree_chokepoint.py +0 -0
  980. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/tests/test_write_parity.py +0 -0
  981. {code_coordinator-0.5.660 → code_coordinator-0.5.661}/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.660
3
+ Version: 0.5.661
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.660
3
+ Version: 0.5.661
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.660",
2
+ "tag": "0.5.661",
3
3
  "distance": 0,
4
- "node": "g84e0243c5811e3c81d1a5513d483f0637e3c0f74",
4
+ "node": "g1152ba357daaa2b42b64f3ba32ee103d459ff668",
5
5
  "dirty": false,
6
6
  "branch": "HEAD",
7
7
  "node_date": "2026-10-22"
@@ -2114,7 +2114,12 @@ def merge(
2114
2114
  # #1477: re-test any parked CONFLICT entry before resolving
2115
2115
  # --only — a branch repaired since the last tick should be eligible
2116
2116
  # for --only the moment it's clean, not only after a manual --drop.
2117
+ # Keep the events so the --override-human-required check below can
2118
+ # tell "already HUMAN_REQUIRED" apart from "just auto-cleared by this
2119
+ # same reconcile pass" instead of treating the latter as a usage error.
2120
+ _reconciled_assignment_ids = set()
2117
2121
  for _ev in mq.reconcile_conflict_entries(gh_ops):
2122
+ _reconciled_assignment_ids.add(_ev.entry.assignment_id)
2118
2123
  click.echo(
2119
2124
  f" {_ev.entry.repo_name} #{_ev.entry.issue_number} "
2120
2125
  f"({_ev.entry.branch}): {_ev.kind} — {_ev.message}"
@@ -2173,49 +2178,63 @@ def merge(
2173
2178
  # so it gets its own flag, its own validation, and its own audit
2174
2179
  # row, never bundled into --force-merge.
2175
2180
  if override_human_required:
2181
+ _override_already_moot = False
2176
2182
  if only_entry.state != HUMAN_REQUIRED:
2177
- click.echo(
2178
- "error: --override-human-required only applies to a "
2179
- f"HUMAN_REQUIRED entry; {only_assignment!r} is in state "
2180
- f"{only_entry.state!r}",
2181
- err=True,
2182
- )
2183
- sys.exit(1)
2184
- if dry_run:
2185
- click.echo(
2186
- " --override-human-required: (dry run) would clear "
2187
- f"HUMAN_REQUIRED on {only_assignment!r} — "
2188
- f"{override_human_required!r}"
2189
- )
2190
- else:
2191
- from coord.audit import record_audit # noqa: PLC0415
2192
-
2193
- record_audit(
2194
- tier="business",
2195
- category="merge",
2196
- event_type="human_required_override",
2197
- actor="user",
2198
- summary=(
2199
- f"human_required override: {only_entry.repo_name}"
2200
- f"#{only_entry.issue_number} ({only_assignment}) — "
2201
- f"{override_human_required}"
2202
- ),
2203
- repo=only_entry.repo_name,
2204
- issue=only_entry.issue_number,
2205
- assignment_id=only_entry.assignment_id,
2206
- details={"reason": override_human_required},
2207
- )
2208
- click.echo(
2209
- " --override-human-required: cleared HUMAN_REQUIRED on "
2210
- f"{only_assignment!r} — {override_human_required!r} — "
2211
- "requeued as PENDING"
2212
- )
2213
- # Reset in-memory state either way so the dry-run event stream
2214
- # below reflects what a real run would do (matching the review/
2215
- # smoke gate dry-run convention); actual persistence is still
2216
- # gated on `not dry_run` in the save block further down.
2217
- only_entry.state = PENDING
2218
- only_entry.error = None
2183
+ if only_entry.assignment_id in _reconciled_assignment_ids:
2184
+ # The reconcile pass just above this already found the
2185
+ # PR mergeable again and cleared the latch itself — the
2186
+ # override the operator asked for is moot, not an error.
2187
+ _override_already_moot = True
2188
+ click.echo(
2189
+ " --override-human-required: not needed — "
2190
+ f"{only_assignment!r} was already auto-cleared to "
2191
+ f"{only_entry.state!r} by the conflict reconcile pass"
2192
+ )
2193
+ else:
2194
+ click.echo(
2195
+ "error: --override-human-required only applies to a "
2196
+ f"HUMAN_REQUIRED entry; {only_assignment!r} is in state "
2197
+ f"{only_entry.state!r}",
2198
+ err=True,
2199
+ )
2200
+ sys.exit(1)
2201
+ if not _override_already_moot:
2202
+ if dry_run:
2203
+ click.echo(
2204
+ " --override-human-required: (dry run) would clear "
2205
+ f"HUMAN_REQUIRED on {only_assignment!r} — "
2206
+ f"{override_human_required!r}"
2207
+ )
2208
+ else:
2209
+ from coord.audit import record_audit # noqa: PLC0415
2210
+
2211
+ record_audit(
2212
+ tier="business",
2213
+ category="merge",
2214
+ event_type="human_required_override",
2215
+ actor="user",
2216
+ summary=(
2217
+ f"human_required override: {only_entry.repo_name}"
2218
+ f"#{only_entry.issue_number} ({only_assignment}) — "
2219
+ f"{override_human_required}"
2220
+ ),
2221
+ repo=only_entry.repo_name,
2222
+ issue=only_entry.issue_number,
2223
+ assignment_id=only_entry.assignment_id,
2224
+ details={"reason": override_human_required},
2225
+ )
2226
+ click.echo(
2227
+ " --override-human-required: cleared HUMAN_REQUIRED on "
2228
+ f"{only_assignment!r} — {override_human_required!r} — "
2229
+ "requeued as PENDING"
2230
+ )
2231
+ # Reset in-memory state either way so the dry-run event
2232
+ # stream below reflects what a real run would do (matching
2233
+ # the review/smoke gate dry-run convention); actual
2234
+ # persistence is still gated on `not dry_run` in the save
2235
+ # block further down.
2236
+ only_entry.state = PENDING
2237
+ only_entry.error = None
2219
2238
  # #2157: MERGED is the one non-PENDING state that is not a failure.
2220
2239
  # An exit code reports whether the CALLER's postcondition holds, and
2221
2240
  # for `--only <aid>` that postcondition is "aid's branch is on the
@@ -5763,21 +5763,69 @@ def refresh_entry_assignment(
5763
5763
 
5764
5764
  # ── Stale-conflict reconciliation (#1477) ───────────────────────────────────
5765
5765
 
5766
+ # A HUMAN_REQUIRED entry's `error` is not always the pristine original
5767
+ # conflict message: `coord.reconcile`'s conflict-fix completion hook builds
5768
+ # several of its own escalation messages as `f"{existing_error}; ..."`,
5769
+ # prefixing a fresh explanation onto whatever was already there rather than
5770
+ # replacing it. `classify_conflict` only pattern-matches wording, so a
5771
+ # message carrying one of these prefixes can still contain a `_REBASEABLE_
5772
+ # SIGNALS` phrase from the ORIGINAL conflict text and classify as
5773
+ # "rebaseable" even though the actual latch reason has nothing to do with
5774
+ # mergeability (the branch's content already landed elsewhere, a worker was
5775
+ # killed by a usage-limit reset, a reword was refused as non-content-
5776
+ # preserving, or an escalation attempt itself could not be dispatched).
5777
+ # These phrases are the ones `reconcile_conflict_entries` must still
5778
+ # recognize and refuse to unpark, even when `classify_conflict` disagrees.
5779
+ _NON_MERGEABILITY_HUMAN_REQUIRED_SIGNALS = (
5780
+ "not a real conflict", # usage-limit kill — never was a conflict
5781
+ "nothing to merge", # already-upstream — content already landed elsewhere
5782
+ "manual reword required", # reword worker declined a non-content-preserving rewrite
5783
+ "escalation could not be dispatched", # ordinary conflict-fix escalation itself declined
5784
+ )
5785
+
5786
+
5787
+ def _is_non_mergeability_human_latch(error: str | None) -> bool:
5788
+ """True when ``error`` carries a known non-mergeability escalation
5789
+ phrase, even though it may also contain conflict wording from a
5790
+ prefixed original message (see ``_NON_MERGEABILITY_HUMAN_REQUIRED_
5791
+ SIGNALS`` above).
5792
+ """
5793
+ if not error:
5794
+ return False
5795
+ text = error.lower()
5796
+ return any(sig in text for sig in _NON_MERGEABILITY_HUMAN_REQUIRED_SIGNALS)
5797
+
5798
+
5766
5799
  def reconcile_conflict_entries(gh_ops: "GhOps") -> list["MergeEvent"]:
5767
- """Re-test every ``CONFLICT`` entry's mergeability and clear stale verdicts.
5800
+ """Re-test stale conflict verdicts (``CONFLICT``, and retry-cap-latched
5801
+ ``HUMAN_REQUIRED``) against live mergeability and clear them when stale.
5768
5802
 
5769
5803
  A ``CONFLICT`` entry caches the ``gh pr merge`` failure message from
5770
5804
  whenever the queue last attempted it, and ``process()`` never looks at it
5771
5805
  again — it only ever iterates ``PENDING`` entries. When a conflict-fix
5772
- worker (#241) lands a rebase, or a human pushes a fix by hand, the branch
5806
+ worker lands a rebase, or a human pushes a fix by hand, the branch
5773
5807
  becomes clean but the entry sits parked on the old verdict forever,
5774
- requiring the three-step manual incantation described in #1477
5775
- (``--drop`` → a bare re-enqueue → ``--only``) to notice.
5776
-
5777
- This re-tests GitHub's own mergeability computation for every
5778
- ``CONFLICT`` entry that has an open PR and, when it now reports clean,
5779
- returns the entry to ``PENDING`` and clears the stored error so it
5780
- re-enters the ordinary merge flow on this tick — no manual archaeology.
5808
+ requiring a manual ``--drop`` → re-enqueue → ``--only`` incantation to
5809
+ notice.
5810
+
5811
+ The same staleness bites a ``HUMAN_REQUIRED`` entry escalated after a
5812
+ conflict-fix retry-cap hit: if the branch was rebased or the conflict
5813
+ resolved by hand afterwards (e.g. a develop merge that happened to land
5814
+ after the latch), the cached error is now pure archaeology and nothing
5815
+ else re-checks it — a clean, approved branch stays blocked until a
5816
+ manual ``--override-human-required``. Eligibility here requires BOTH
5817
+ that :func:`classify_conflict` reads the message as ``"rebaseable"``
5818
+ AND that it does not carry one of the ``_NON_MERGEABILITY_HUMAN_
5819
+ REQUIRED_SIGNALS`` phrases — a permission/protection latch
5820
+ (``classify_conflict(...) == "human"``), and any latch whose actual
5821
+ cause was never a mergeability question in the first place (content
5822
+ already upstream, a usage-limit kill, a declined reword, a declined
5823
+ escalation), are left untouched.
5824
+
5825
+ This re-tests GitHub's own mergeability computation for every eligible
5826
+ entry that has an open PR and, when it now reports clean, returns the
5827
+ entry to ``PENDING`` and clears the stored error so it re-enters the
5828
+ ordinary merge flow on this tick — no manual archaeology.
5781
5829
 
5782
5830
  Fail-closed by design: an entry with no PR yet, or whose mergeability
5783
5831
  can't be determined (``gh`` error, or GitHub still computing it — both
@@ -5812,7 +5860,22 @@ def reconcile_conflict_entries(gh_ops: "GhOps") -> list["MergeEvent"]:
5812
5860
  events: list[MergeEvent] = []
5813
5861
  changed = False
5814
5862
  for entry in items:
5815
- if entry.state != CONFLICT or not entry.pr_number:
5863
+ if not entry.pr_number:
5864
+ continue
5865
+ was_human_required = entry.state == HUMAN_REQUIRED
5866
+ if was_human_required:
5867
+ # Only a conflict-fix retry-cap latch is a mergeability
5868
+ # question — a permission/protection latch, or a latch whose
5869
+ # message merely contains leftover conflict wording from a
5870
+ # prefixed original error but was actually caused by something
5871
+ # re-checking `check_pr_mergeable` could never resolve, is left
5872
+ # alone.
5873
+ if (
5874
+ classify_conflict(entry.error) != "rebaseable"
5875
+ or _is_non_mergeability_human_latch(entry.error)
5876
+ ):
5877
+ continue
5878
+ elif entry.state != CONFLICT:
5816
5879
  continue
5817
5880
  try:
5818
5881
  mergeable = gh_ops.check_pr_mergeable(entry.repo_github, entry.pr_number)
@@ -5835,9 +5898,10 @@ def reconcile_conflict_entries(gh_ops: "GhOps") -> list["MergeEvent"]:
5835
5898
  entry.state = PENDING
5836
5899
  entry.error = None
5837
5900
  changed = True
5901
+ cleared_kind = "human_required latch" if was_human_required else "conflict"
5838
5902
  events.append(MergeEvent(
5839
5903
  entry, "reopened",
5840
- f"conflict cleared — PR #{entry.pr_number} ({entry.branch}) is "
5904
+ f"{cleared_kind} cleared — PR #{entry.pr_number} ({entry.branch}) is "
5841
5905
  "mergeable again, returned to pending",
5842
5906
  ))
5843
5907
  if changed:
@@ -1132,6 +1132,49 @@ class TestMergeOverrideHumanRequired:
1132
1132
  ).fetchall()
1133
1133
  assert rows == []
1134
1134
 
1135
+ def test_override_moot_when_reconcile_already_cleared_entry(
1136
+ self, config_file: Path, coord_dir: Path, coord_db,
1137
+ ) -> None:
1138
+ """`--only`'s own stale-conflict reconcile pass (#1477) runs before
1139
+ this validation and can itself unpark a HUMAN_REQUIRED retry-cap
1140
+ latch the moment GitHub reports the PR mergeable again. That is not
1141
+ a usage error — the override the operator asked for is simply no
1142
+ longer needed — so it must not be reported as one, and must not
1143
+ write a spurious `human_required_override` audit row for an
1144
+ override that never actually applied."""
1145
+ entry = mq.QueuedMerge(
1146
+ assignment_id="h1", repo_name="api", repo_github="acme/api",
1147
+ branch="worker/h1", target_branch="main", issue_number=1,
1148
+ issue_title="t", state=mq.HUMAN_REQUIRED, pr_number=900,
1149
+ error="gh pr merge 900 ... --rebase failed: not mergeable",
1150
+ )
1151
+ _seed_queue([entry])
1152
+
1153
+ def fake_merge(repo, number, method="rebase"):
1154
+ return True, "ok"
1155
+
1156
+ with patch("coord.github_ops.check_pr_mergeable", return_value=True), \
1157
+ patch("coord.github_ops.create_pr") as create, \
1158
+ patch("coord.github_ops.get_pr_size", return_value=10), \
1159
+ patch("coord.github_ops.merge_pr", side_effect=fake_merge):
1160
+ result = CliRunner().invoke(
1161
+ main,
1162
+ [
1163
+ "merge", "--config", str(config_file),
1164
+ "--only", "h1",
1165
+ "--override-human-required", "no longer needed",
1166
+ ],
1167
+ )
1168
+
1169
+ assert result.exit_code == 0, result.output
1170
+ assert "not needed" in result.output
1171
+ assert "cleared HUMAN_REQUIRED" not in result.output
1172
+
1173
+ rows = coord_db.execute(
1174
+ "SELECT * FROM audit_log WHERE event_type='human_required_override'"
1175
+ ).fetchall()
1176
+ assert rows == []
1177
+
1135
1178
  def test_override_dry_run_does_not_persist_or_audit(
1136
1179
  self, config_file: Path, coord_dir: Path, coord_db,
1137
1180
  ) -> None:
@@ -120,17 +120,46 @@ def _fake_coord_home(tmp_path: Path) -> Path:
120
120
  return home
121
121
 
122
122
 
123
+ def _venv_pythonpath() -> str:
124
+ """site-packages (for PyYAML) and REPO_ROOT (for `coord`), as the block's
125
+ `PYBIN` subprocess sees them.
126
+
127
+ The real daemon host's ~/.coord-venv/bin/python is a venv interpreter that
128
+ finds `coord` and its deps in its own site-packages. `_fake_coord_home`
129
+ fakes that interpreter with a bare symlink to this test process's
130
+ executable -- but a symlink with no adjacent `pyvenv.cfg` is not a venv, so
131
+ the subprocess resolves its prefix to the base interpreter and cannot see
132
+ the test venv's site-packages (notably PyYAML, which `coord.config` imports
133
+ at module top). Python 3.13 made this prefix resolution stricter, so the
134
+ bare symlink no longer happens to import `yaml`. Hand the subprocess the
135
+ exact directories where `yaml` and `coord` live for this interpreter, which
136
+ stands in for the real venv having them installed."""
137
+ import coord
138
+ import yaml
139
+
140
+ return os.pathsep.join(
141
+ str(p)
142
+ for p in (
143
+ Path(yaml.__file__).resolve().parent.parent, # site-packages
144
+ Path(coord.__file__).resolve().parent.parent, # REPO_ROOT
145
+ )
146
+ )
147
+
148
+
123
149
  def _run_remote_block(body: str, home: Path, *args: str):
124
150
  import subprocess
125
151
 
126
152
  driver = f"set -euo pipefail\n{body}\n"
153
+ extra_path = _venv_pythonpath()
154
+ existing = os.environ.get("PYTHONPATH")
155
+ pythonpath = f"{extra_path}{os.pathsep}{existing}" if existing else extra_path
127
156
  return subprocess.run(
128
157
  [POSIX_BASH, "-c", driver, "bash", *args],
129
158
  capture_output=True,
130
159
  text=True,
131
160
  timeout=30,
132
161
  cwd=REPO_ROOT,
133
- env={**os.environ, "HOME": str(home)},
162
+ env={**os.environ, "HOME": str(home), "PYTHONPATH": pythonpath},
134
163
  check=False,
135
164
  )
136
165
 
@@ -7235,7 +7235,10 @@ class TestReconcileConflictEntries:
7235
7235
  assert load_queue()[0].state == CONFLICT
7236
7236
 
7237
7237
  def test_only_touches_conflict_entries(self, coord_db) -> None:
7238
- """PENDING/MERGED/HUMAN_REQUIRED entries are never re-tested."""
7238
+ """PENDING/MERGED entries, and a HUMAN_REQUIRED entry with no
7239
+ conflict-shaped error (e.g. a permission/protection latch), are
7240
+ never re-tested. A retry-cap-latched conflict IS re-tested — see
7241
+ ``TestReconcileHumanRequiredConflictLatch`` below (#3750)."""
7239
7242
  pending = _q("p", state=PENDING, pr=200)
7240
7243
  merged = _q("m", state=MERGED, pr=201)
7241
7244
  human = _q("h", state=mq.HUMAN_REQUIRED, pr=202)
@@ -7274,6 +7277,163 @@ class TestReconcileConflictEntries:
7274
7277
  assert states == {"clean": PENDING, "broken": CONFLICT}
7275
7278
 
7276
7279
 
7280
+ class TestReconcileHumanRequiredConflictLatch:
7281
+ """A HUMAN_REQUIRED entry escalated by the conflict-fix retry cap must
7282
+ be re-tested against live mergeability exactly like a plain CONFLICT
7283
+ entry, instead of staying latched forever once the branch is actually
7284
+ clean again. Eligibility requires both a ``"rebaseable"``
7285
+ classification AND the absence of a known non-mergeability escalation
7286
+ phrase (``_NON_MERGEABILITY_HUMAN_REQUIRED_SIGNALS``) — several
7287
+ HUMAN_REQUIRED escalations build their message as
7288
+ ``f"{existing_error}; ..."``, so the original conflict wording can
7289
+ survive into a message whose actual cause was never a mergeability
7290
+ question at all."""
7291
+
7292
+ def test_unparks_human_required_conflict_latch_when_now_mergeable(self, coord_db) -> None:
7293
+ entry = _q("a", state=mq.HUMAN_REQUIRED, pr=100)
7294
+ entry.error = "Pull request #100 is not mergeable"
7295
+ save_queue([entry])
7296
+
7297
+ gh = FakeGh(mergeable_results={100: True})
7298
+ events = mq.reconcile_conflict_entries(gh)
7299
+
7300
+ assert len(events) == 1
7301
+ assert events[0].kind == "reopened"
7302
+ assert "human_required latch cleared" in events[0].message
7303
+ reloaded = load_queue()[0]
7304
+ assert reloaded.state == PENDING
7305
+ assert reloaded.error is None
7306
+
7307
+ def test_leaves_human_required_conflict_latch_parked_when_still_conflicting(
7308
+ self, coord_db,
7309
+ ) -> None:
7310
+ entry = _q("a", state=mq.HUMAN_REQUIRED, pr=100)
7311
+ entry.error = "Pull request #100 is not mergeable"
7312
+ save_queue([entry])
7313
+
7314
+ gh = FakeGh(mergeable_results={100: False})
7315
+ events = mq.reconcile_conflict_entries(gh)
7316
+
7317
+ assert events == []
7318
+ reloaded = load_queue()[0]
7319
+ assert reloaded.state == mq.HUMAN_REQUIRED
7320
+ assert reloaded.error == "Pull request #100 is not mergeable"
7321
+
7322
+ def test_leaves_permission_human_required_latch_untouched(self, coord_db) -> None:
7323
+ """A permission/protection HUMAN_REQUIRED latch is not a
7324
+ mergeability question — it must never be probed at all."""
7325
+ entry = _q("a", state=mq.HUMAN_REQUIRED, pr=100)
7326
+ entry.error = "GraphQL: protected branch rules violation"
7327
+ save_queue([entry])
7328
+
7329
+ gh = FakeGh(mergeable_results={100: True})
7330
+ events = mq.reconcile_conflict_entries(gh)
7331
+
7332
+ assert events == []
7333
+ assert gh.mergeable_calls == []
7334
+ reloaded = load_queue()[0]
7335
+ assert reloaded.state == mq.HUMAN_REQUIRED
7336
+ assert reloaded.error == "GraphQL: protected branch rules violation"
7337
+
7338
+ def test_leaves_already_upstream_latch_untouched_despite_conflict_wording(
7339
+ self, coord_db,
7340
+ ) -> None:
7341
+ """quadraui #3462: the stale-rebase worker found the branch's
7342
+ content already landed elsewhere — not a conflict at all — but the
7343
+ escalation message is built as ``f"{existing_error}; ..."``, so the
7344
+ ORIGINAL ``"is not mergeable"`` wording survives into it. That
7345
+ prefix must not make the entry eligible for re-probing: GitHub will
7346
+ happily read MERGEABLE for a no-op branch, and unparking here would
7347
+ re-enter the merge flow for a PR the system already determined has
7348
+ nothing to merge."""
7349
+ entry = _q("a", state=mq.HUMAN_REQUIRED, pr=100)
7350
+ entry.error = (
7351
+ "Pull request #100 is not mergeable; stale-rebase worker "
7352
+ "found: no unique commits. Branch content is already present "
7353
+ "on main (landed via another change) — nothing to merge; "
7354
+ "close the issue or `coord drive-queue remove`."
7355
+ )
7356
+ save_queue([entry])
7357
+
7358
+ gh = FakeGh(mergeable_results={100: True})
7359
+ events = mq.reconcile_conflict_entries(gh)
7360
+
7361
+ assert events == []
7362
+ assert gh.mergeable_calls == []
7363
+ reloaded = load_queue()[0]
7364
+ assert reloaded.state == mq.HUMAN_REQUIRED
7365
+
7366
+ def test_leaves_usage_limit_latch_untouched_despite_conflict_wording(
7367
+ self, coord_db,
7368
+ ) -> None:
7369
+ """A conflict-fix worker killed by the account's usage limit never
7370
+ resolved (or failed to resolve) anything — the original conflict
7371
+ wording surviving in the prefixed message must not make this
7372
+ eligible."""
7373
+ entry = _q("a", state=mq.HUMAN_REQUIRED, pr=100)
7374
+ entry.error = (
7375
+ "Pull request #100 is not mergeable; conflict-fix worker was "
7376
+ "killed by the account's 5-hour usage limit — not a real "
7377
+ "conflict. Wait for the reset, then re-run `coord merge` to "
7378
+ "retry unchanged."
7379
+ )
7380
+ save_queue([entry])
7381
+
7382
+ gh = FakeGh(mergeable_results={100: True})
7383
+ events = mq.reconcile_conflict_entries(gh)
7384
+
7385
+ assert events == []
7386
+ assert gh.mergeable_calls == []
7387
+ reloaded = load_queue()[0]
7388
+ assert reloaded.state == mq.HUMAN_REQUIRED
7389
+
7390
+ def test_leaves_reword_mismatch_latch_untouched_despite_conflict_wording(
7391
+ self, coord_db,
7392
+ ) -> None:
7393
+ """A reword-commit worker's refusal to push a non-content-
7394
+ preserving rewrite is not a mergeability question either."""
7395
+ entry = _q("a", state=mq.HUMAN_REQUIRED, pr=100)
7396
+ entry.error = (
7397
+ "Pull request #100 is not mergeable; reword-commit worker "
7398
+ "refused to push: a conflict marker appeared mid-rebase. "
7399
+ "Manual reword required."
7400
+ )
7401
+ save_queue([entry])
7402
+
7403
+ gh = FakeGh(mergeable_results={100: True})
7404
+ events = mq.reconcile_conflict_entries(gh)
7405
+
7406
+ assert events == []
7407
+ assert gh.mergeable_calls == []
7408
+ reloaded = load_queue()[0]
7409
+ assert reloaded.state == mq.HUMAN_REQUIRED
7410
+
7411
+ def test_leaves_declined_escalation_latch_untouched_despite_conflict_wording(
7412
+ self, coord_db,
7413
+ ) -> None:
7414
+ """quadraui #3444: when the ordinary conflict-fix escalation that
7415
+ follows a stale-rebase mismatch itself couldn't be dispatched, the
7416
+ resulting latch is about dispatch capacity, not live
7417
+ mergeability."""
7418
+ entry = _q("a", state=mq.HUMAN_REQUIRED, pr=100)
7419
+ entry.error = (
7420
+ "Pull request #100 is not mergeable; stale-rebase worker "
7421
+ "refused to push: a conflict marker appeared. The rebase was "
7422
+ "not content-preserving against the new base, and the "
7423
+ "ordinary conflict-fix escalation could not be dispatched "
7424
+ "either — manual resolution required."
7425
+ )
7426
+ save_queue([entry])
7427
+
7428
+ gh = FakeGh(mergeable_results={100: True})
7429
+ events = mq.reconcile_conflict_entries(gh)
7430
+
7431
+ assert events == []
7432
+ assert gh.mergeable_calls == []
7433
+ reloaded = load_queue()[0]
7434
+ assert reloaded.state == mq.HUMAN_REQUIRED
7435
+
7436
+
7277
7437
  class TestReconcileConflictEntriesRebaseRefusalGuard:
7278
7438
  """#1467: a `mergeable: MERGEABLE` verdict is not evidence that a
7279
7439
  *rebase* merge will succeed — GitHub reports a branch carrying a merge