code-coordinator 0.5.262__tar.gz → 0.5.264__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 (875) hide show
  1. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/PKG-INFO +1 -1
  2. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/code_coordinator.egg-info/PKG-INFO +1 -1
  3. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/code_coordinator.egg-info/SOURCES.txt +1 -0
  4. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/code_coordinator.egg-info/scm_file_list.json +1 -0
  5. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/code_coordinator.egg-info/scm_version.json +2 -2
  6. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/release.py +23 -1
  7. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-release-propagate.service +32 -11
  8. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-release-window.service +52 -15
  9. code_coordinator-0.5.264/coord/deploy/coord-release-window.timer +55 -0
  10. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/housekeeping.py +42 -10
  11. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/merge_queue.py +57 -6
  12. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/serve_app.py +8 -4
  13. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/skills/coord-dispatch-verbs/SKILL.md +6 -0
  14. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/skills/drive-queue-preflight/SKILL.md +6 -0
  15. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/skills/fleet-restart-safety/SKILL.md +6 -0
  16. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/skills/merge-stuck-triage/SKILL.md +6 -0
  17. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/skills/pipeline-limbo-triage/SKILL.md +6 -0
  18. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/skills/portal-followup/SKILL.md +6 -0
  19. code_coordinator-0.5.264/coord/skills/release-now/SKILL.md +177 -0
  20. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/skills/review-verdict-recovery/SKILL.md +6 -0
  21. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/skills/tui-quadraui-workflow/SKILL.md +6 -0
  22. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/skills/update-issue/SKILL.md +6 -0
  23. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-release-propagate.service +32 -11
  24. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-release-window.service +52 -15
  25. code_coordinator-0.5.264/deploy/coord-release-window.timer +55 -0
  26. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_board_cap_762.py +100 -0
  27. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_install_skills.py +33 -0
  28. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_release_window.py +62 -0
  29. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_thin_client_board_audit.py +5 -0
  30. code_coordinator-0.5.262/coord/deploy/coord-release-window.timer +0 -39
  31. code_coordinator-0.5.262/deploy/coord-release-window.timer +0 -39
  32. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/.claude/commands/board.md +0 -0
  33. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/.claude/commands/complete-session.md +0 -0
  34. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/.claude/commands/coordinator.md +0 -0
  35. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/.githooks/_lib.sh +0 -0
  36. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/.githooks/post-checkout +0 -0
  37. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/.githooks/post-commit +0 -0
  38. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/.githooks/post-merge +0 -0
  39. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  40. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/.github/coord-ci-acceptance.yml +0 -0
  41. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/.github/workflows/auto-release.yml +0 -0
  42. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/.github/workflows/cargo-test.yml +0 -0
  43. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/.github/workflows/publish.yml +0 -0
  44. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/.github/workflows/release-tui.yml +0 -0
  45. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/.github/workflows/test.yml +0 -0
  46. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/.gitignore +0 -0
  47. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/CLAUDE.md +0 -0
  48. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/GOAL.md +0 -0
  49. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/LICENSE +0 -0
  50. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/MANIFEST.in +0 -0
  51. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/README.md +0 -0
  52. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/code_coordinator.egg-info/dependency_links.txt +0 -0
  53. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/code_coordinator.egg-info/entry_points.txt +0 -0
  54. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/code_coordinator.egg-info/requires.txt +0 -0
  55. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/code_coordinator.egg-info/top_level.txt +0 -0
  56. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/__init__.py +0 -0
  57. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/_board_mapping.py +0 -0
  58. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/acceptance.py +0 -0
  59. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/acceptance_drivers.py +0 -0
  60. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/agent.py +0 -0
  61. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/agent_app.py +0 -0
  62. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/agent_update.py +0 -0
  63. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/agents/opencode/.gitignore +0 -0
  64. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/agents/opencode/agents/work.md +0 -0
  65. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/agents/opencode/routing.jsonc +0 -0
  66. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/approved_work.py +0 -0
  67. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/audit.py +0 -0
  68. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/auto_loop.py +0 -0
  69. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/block_log.py +0 -0
  70. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/board_bool_guard.py +0 -0
  71. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/board_schema.py +0 -0
  72. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/board_service.py +0 -0
  73. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/board_wire.py +0 -0
  74. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/brain.py +0 -0
  75. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/branch_model.py +0 -0
  76. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/bug_intake.py +0 -0
  77. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/cargo_cache.py +0 -0
  78. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/ci_fix.py +0 -0
  79. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/ci_github.py +0 -0
  80. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/ci_gitlab.py +0 -0
  81. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/ci_store.py +0 -0
  82. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/claim.py +0 -0
  83. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/cli.py +0 -0
  84. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/client.py +0 -0
  85. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/__init__.py +0 -0
  86. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/_common.py +0 -0
  87. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/acceptance.py +0 -0
  88. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/agent_ops.py +0 -0
  89. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/audit.py +0 -0
  90. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/chat.py +0 -0
  91. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/dispatch.py +0 -0
  92. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/dispatch_workers.py +0 -0
  93. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/drive.py +0 -0
  94. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/drive_queue.py +0 -0
  95. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/gate_a.py +0 -0
  96. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/gates.py +0 -0
  97. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/issues.py +0 -0
  98. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/lifecycle.py +0 -0
  99. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/merge.py +0 -0
  100. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/milestone.py +0 -0
  101. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/plan_followup.py +0 -0
  102. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/plans.py +0 -0
  103. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/portal.py +0 -0
  104. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/pr.py +0 -0
  105. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/repo.py +0 -0
  106. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/report.py +0 -0
  107. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/review.py +0 -0
  108. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/scorecard.py +0 -0
  109. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/sessions.py +0 -0
  110. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/setup.py +0 -0
  111. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/status.py +0 -0
  112. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/terminal.py +0 -0
  113. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/test_gate.py +0 -0
  114. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/tui.py +0 -0
  115. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/comments.py +0 -0
  116. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/config.py +0 -0
  117. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/config_reload.py +0 -0
  118. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/confirm_test.py +0 -0
  119. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/conflict_fix.py +0 -0
  120. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/dao.py +0 -0
  121. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/dashboard/__init__.py +0 -0
  122. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/dashboard/fixture.py +0 -0
  123. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/dashboard/index.html +0 -0
  124. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/dashboard/server.py +0 -0
  125. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/dashboard/terminal.py +0 -0
  126. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/db.py +0 -0
  127. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/dead_end.py +0 -0
  128. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/decomposition_chat.py +0 -0
  129. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/README.md +0 -0
  130. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-agent.service +0 -0
  131. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-db-backup.service +0 -0
  132. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-db-backup.sh +0 -0
  133. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-db-backup.timer +0 -0
  134. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-drive-queue.service +0 -0
  135. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-drive-queue.timer +0 -0
  136. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-failure-notify.service +0 -0
  137. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-fleet-watchdog.service +0 -0
  138. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-fleet-watchdog.timer +0 -0
  139. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-notify.service +0 -0
  140. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-notify.timer +0 -0
  141. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-release-propagate.timer +0 -0
  142. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-serve.service +0 -0
  143. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-web-dist-build.service +0 -0
  144. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-web-dist-build.timer +0 -0
  145. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-web.service +0 -0
  146. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy_manifest.py +0 -0
  147. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy_units.py +0 -0
  148. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deps.py +0 -0
  149. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/diagnose.py +0 -0
  150. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/dispatch.py +0 -0
  151. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/dist_name.py +0 -0
  152. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/drive.py +0 -0
  153. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/drive_queue.py +0 -0
  154. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/drive_state.py +0 -0
  155. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/events.py +0 -0
  156. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/failure_class.py +0 -0
  157. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/filelock.py +0 -0
  158. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/fleet_config_health.py +0 -0
  159. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/forge_availability.py +0 -0
  160. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/freshness.py +0 -0
  161. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/gate_a.py +0 -0
  162. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/gate_b.py +0 -0
  163. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/gate_snapshot.py +0 -0
  164. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/gates.py +0 -0
  165. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/github_ops.py +0 -0
  166. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/github_throttle.py +0 -0
  167. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/goal.py +0 -0
  168. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/graph_health.py +0 -0
  169. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/__init__.py +0 -0
  170. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/aggregate.py +0 -0
  171. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/__init__.py +0 -0
  172. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/agent_install.py +0 -0
  173. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/cargo_targets.py +0 -0
  174. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/claude_binary.py +0 -0
  175. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/coord_web_ci_pin.py +0 -0
  176. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/deploy_lane_facts.py +0 -0
  177. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/disk.py +0 -0
  178. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/fleet_board.py +0 -0
  179. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/fleet_deploy_lanes.py +0 -0
  180. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/fleet_phantom.py +0 -0
  181. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/fleet_unit_drift.py +0 -0
  182. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/graph.py +0 -0
  183. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/graphify_cli.py +0 -0
  184. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/index_lock.py +0 -0
  185. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/issues_sync_staleness.py +0 -0
  186. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/plan_usage.py +0 -0
  187. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/release_cordon.py +0 -0
  188. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/repo_state.py +0 -0
  189. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/spawned_coord.py +0 -0
  190. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/stalled_pipeline.py +0 -0
  191. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/timer_active.py +0 -0
  192. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/toolchain.py +0 -0
  193. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/unit_drift.py +0 -0
  194. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/unit_enablement.py +0 -0
  195. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/worktrees.py +0 -0
  196. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/cli.py +0 -0
  197. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/context.py +0 -0
  198. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/fleet_snapshot.py +0 -0
  199. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/models.py +0 -0
  200. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/pypi.py +0 -0
  201. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/registry.py +0 -0
  202. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/render.py +0 -0
  203. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/units.py +0 -0
  204. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/hooks.py +0 -0
  205. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/interactive.py +0 -0
  206. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/issue_store.py +0 -0
  207. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/issues_sync_status.py +0 -0
  208. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/liveness_auditor.py +0 -0
  209. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/machine_pause.py +0 -0
  210. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/milestone_chat.py +0 -0
  211. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/milestone_dispatch.py +0 -0
  212. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/milestone_gate.py +0 -0
  213. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/milestone_order.py +0 -0
  214. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/mock_author.py +0 -0
  215. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/models.py +0 -0
  216. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/network.py +0 -0
  217. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/new_issue_chat.py +0 -0
  218. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/notifier/__init__.py +0 -0
  219. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/notifier/baseline.py +0 -0
  220. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/notifier/cli.py +0 -0
  221. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/notifier/collect.py +0 -0
  222. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/notifier/digest.py +0 -0
  223. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/notifier/models.py +0 -0
  224. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/notifier/predicate.py +0 -0
  225. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/notifier/service.py +0 -0
  226. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/notifier/store.py +0 -0
  227. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/notifier/transport.py +0 -0
  228. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/notify.py +0 -0
  229. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/openapi.py +0 -0
  230. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/overlap_fence.py +0 -0
  231. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/overlap_predict.py +0 -0
  232. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/parentage.py +0 -0
  233. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/parentage_github.py +0 -0
  234. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/pipeline.py +0 -0
  235. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/plan_parser.py +0 -0
  236. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/plans.py +0 -0
  237. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/platform_paths.py +0 -0
  238. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/portal_bridge.py +0 -0
  239. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/portal_store.py +0 -0
  240. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/portal_sync.py +0 -0
  241. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/pr_body_lint.py +0 -0
  242. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/prereqs.py +0 -0
  243. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/progress.py +0 -0
  244. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/providers/__init__.py +0 -0
  245. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/providers/base.py +0 -0
  246. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/providers/claude.py +0 -0
  247. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/providers/claude_pty.py +0 -0
  248. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/providers/opencode.py +0 -0
  249. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/queue_diagnose.py +0 -0
  250. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/reconcile.py +0 -0
  251. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/reconcile_tick.py +0 -0
  252. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/refine_chat.py +0 -0
  253. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/release_cordon.py +0 -0
  254. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/release_propagate.py +0 -0
  255. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/release_verify.py +0 -0
  256. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/release_window.py +0 -0
  257. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/repo_edit.py +0 -0
  258. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/repo_onboard.py +0 -0
  259. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/reports.py +0 -0
  260. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/revalidate.py +0 -0
  261. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/review.py +0 -0
  262. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/scorecard.py +0 -0
  263. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/self_health.py +0 -0
  264. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/smoke.py +0 -0
  265. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/spend_ceiling.py +0 -0
  266. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/split_work.py +0 -0
  267. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/sql.py +0 -0
  268. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/stage_projection.py +0 -0
  269. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/state.py +0 -0
  270. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/test_author.py +0 -0
  271. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/test_chat.py +0 -0
  272. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/test_orchestrator.py +0 -0
  273. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/test_report.py +0 -0
  274. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/tui_release.py +0 -0
  275. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/usage.py +0 -0
  276. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/usage_limits.py +0 -0
  277. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/usage_rollup.py +0 -0
  278. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/worker_events.py +0 -0
  279. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coordinator.example.yml +0 -0
  280. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-agent.service +0 -0
  281. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-db-backup.service +0 -0
  282. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-db-backup.sh +0 -0
  283. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-db-backup.timer +0 -0
  284. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-drive-queue.service +0 -0
  285. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-drive-queue.timer +0 -0
  286. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-failure-notify.service +0 -0
  287. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-failure-notify.sh +0 -0
  288. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-fleet-watchdog.service +0 -0
  289. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-fleet-watchdog.timer +0 -0
  290. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-notify.service +0 -0
  291. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-notify.timer +0 -0
  292. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-release-propagate.timer +0 -0
  293. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-serve.service +0 -0
  294. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-web-dist-build.service +0 -0
  295. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-web-dist-build.sh +0 -0
  296. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-web-dist-build.timer +0 -0
  297. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-web-rollback.sh +0 -0
  298. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-web.service +0 -0
  299. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/node-shim.sh +0 -0
  300. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/ADR_COORD_WEB_ACCEPTANCE_SUITE.md +0 -0
  301. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/ADR_COORD_WEB_CI.md +0 -0
  302. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/ADR_COORD_WEB_DIST.md +0 -0
  303. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/AGENT_OPERATIONS.md +0 -0
  304. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/ARCHITECTURE.md +0 -0
  305. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/ARCH_SECURITY_GATES.md +0 -0
  306. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/COCKPIT.md +0 -0
  307. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/CONTROL_CENTER.md +0 -0
  308. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/COST_DISCIPLINE.md +0 -0
  309. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/CROSS_PLATFORM.md +0 -0
  310. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/CUSTOMER_FACING_APPS.md +0 -0
  311. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/CUSTOMER_PORTAL.md +0 -0
  312. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/DRIVE_QUEUE.md +0 -0
  313. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/EPHEMERAL_WORKERS.md +0 -0
  314. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/FORGE_MIGRATION.md +0 -0
  315. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/GRAPHIFY_SETUP.md +0 -0
  316. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/ISSUE_GUIDANCE.md +0 -0
  317. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/MAC_MINI.md +0 -0
  318. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
  319. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/NOTIFIER.md +0 -0
  320. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/OPENCODE_VERIFICATION.md +0 -0
  321. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/OPERATING_GOTCHAS.md +0 -0
  322. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/OPERATOR_GUIDES.md +0 -0
  323. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/ORACLE_LOOP.md +0 -0
  324. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/PHONE_WEBAPP.md +0 -0
  325. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/PIPELINE_V2.md +0 -0
  326. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/PLATFORM_EVOLUTION.md +0 -0
  327. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/SECOND_BACKEND.md +0 -0
  328. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/STORE_SERVICE.md +0 -0
  329. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/TEST_FIRST_BUG_LANE.md +0 -0
  330. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/WEB_CONTROL_CENTER.md +0 -0
  331. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/WSL_WINDOWS_WORKER.md +0 -0
  332. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/mocks/web/README.md +0 -0
  333. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/mocks/web/_tokens.css +0 -0
  334. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/mocks/web/issue-detail.html +0 -0
  335. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/mocks/web/pipeline-narrow.html +0 -0
  336. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/mocks/web/pipeline-wide.html +0 -0
  337. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/graphify-out/.gitignore +0 -0
  338. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/install-agent.sh +0 -0
  339. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/pyproject.toml +0 -0
  340. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/audit_review_verdict_overrides.py +0 -0
  341. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/azure-workers/bootstrap-shared.sh +0 -0
  342. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/azure-workers/build-worker-image.sh +0 -0
  343. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/azure-workers/coordinator-machine.py +0 -0
  344. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/azure-workers/epic-down.sh +0 -0
  345. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/azure-workers/epic-up.sh +0 -0
  346. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/azure-workers/preflight.sh +0 -0
  347. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/azure-workers/provision-worker.sh +0 -0
  348. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
  349. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/azure-workers/tailnet-acl.hujson +0 -0
  350. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/azure-workers/verify-github-token.sh +0 -0
  351. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/check_gh_argv_containment.py +0 -0
  352. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/codegen.py +0 -0
  353. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/coord-test-runner.sh +0 -0
  354. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/coord-venv-rollback.sh +0 -0
  355. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/drive-batch.sh +0 -0
  356. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/fleet_watchdog.py +0 -0
  357. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/gen_board_fixture.py +0 -0
  358. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/gen_mock_index.py +0 -0
  359. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/next_release_tag.py +0 -0
  360. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/run_tests_in_populated_home.sh +0 -0
  361. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/run_tests_without_gh.sh +0 -0
  362. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/smoke_437_interactive.py +0 -0
  363. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/verify_878_review_capture.py +0 -0
  364. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/verify_release_published.py +0 -0
  365. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/verify_release_wheel.py +0 -0
  366. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/setup.cfg +0 -0
  367. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/SMOKE_SET.md +0 -0
  368. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/__init__.py +0 -0
  369. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-33/audit_1039.rs +0 -0
  370. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-33/contract.md +0 -0
  371. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-33/manifest.yml +0 -0
  372. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-33/mocks/audit-panel-detail.screen +0 -0
  373. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-33/mocks/audit-panel-empty.screen +0 -0
  374. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-33/mocks/audit-panel-filters.screen +0 -0
  375. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-33/mocks/audit-panel-populated.screen +0 -0
  376. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-37/conftest.py +0 -0
  377. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-37/contract.md +0 -0
  378. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-37/manifest.yml +0 -0
  379. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
  380. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
  381. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-38/contract.md +0 -0
  382. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-38/manifest.yml +0 -0
  383. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-38/mocks/plans-base.screen +0 -0
  384. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-38/mocks/plans-detail-pane.screen +0 -0
  385. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-38/mocks/plans-help-overlay.screen +0 -0
  386. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-38/mocks/plans-palette.screen +0 -0
  387. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-38/mocks/plans-rightclick-epic.screen +0 -0
  388. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-38/mocks/plans-rightclick-header.screen +0 -0
  389. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-38/mocks/plans-rightclick-stub.screen +0 -0
  390. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-38/plans_detail_1122.rs +0 -0
  391. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-38/plans_help_1124.rs +0 -0
  392. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-38/plans_rightclick_1123.rs +0 -0
  393. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-51/contract.md +0 -0
  394. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
  395. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
  396. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-51/manifest.yml +0 -0
  397. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
  398. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-51/tsconfig.json +0 -0
  399. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-65/board_split_2288.rs +0 -0
  400. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-65/board_tabs_2282.rs +0 -0
  401. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-65/board_tabs_close_2283.rs +0 -0
  402. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-65/contract.md +0 -0
  403. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-65/detail_substate_2285.rs +0 -0
  404. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-65/manifest.yml +0 -0
  405. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-65/mocks/board-baseline-no-tabs.screen +0 -0
  406. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-65/mocks/board-pinned-3-tabs.screen +0 -0
  407. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-65/mocks/board-preview-tab.screen +0 -0
  408. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-65/mocks/board-split-side-by-side.screen +0 -0
  409. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-65/mocks/board-tab-context-menu.screen +0 -0
  410. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-65/mocks/board-tabs-help-overlay.screen +0 -0
  411. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-65/mocks/board-tabs-overflow.screen +0 -0
  412. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-65/mocks/pipeline-tabs-independent.screen +0 -0
  413. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-65/pipeline_tabs_2284.rs +0 -0
  414. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-65/tabs_discoverability_2287.rs +0 -0
  415. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-65/tabs_persistence_2286.rs +0 -0
  416. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-67/approved_items_2532.rs +0 -0
  417. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-67/contract.md +0 -0
  418. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-67/manifest.d/2533.yml +0 -0
  419. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-67/manifest.yml +0 -0
  420. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-67/mocks/approved-items-chat-opened.screen +0 -0
  421. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-67/mocks/approved-items-context-menu.screen +0 -0
  422. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-67/mocks/approved-items-detail.screen +0 -0
  423. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-67/mocks/approved-items-empty.screen +0 -0
  424. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-67/mocks/approved-items-populated.screen +0 -0
  425. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-67/pull_decomposition_2533.rs +0 -0
  426. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
  427. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/conftest.py +0 -0
  428. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/board-pipeline-basic.json +0 -0
  429. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
  430. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
  431. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
  432. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/opencode_run_sample.jsonl +0 -0
  433. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/playwright/all_pass.json +0 -0
  434. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/playwright/global_setup_crash.json +0 -0
  435. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/playwright/mixed_fail.json +0 -0
  436. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/playwright/retry_then_pass.json +0 -0
  437. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
  438. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/playwright/skip.json +0 -0
  439. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/playwright/truncated.json +0 -0
  440. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
  441. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
  442. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
  443. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
  444. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
  445. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
  446. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
  447. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
  448. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_acceptance.py +0 -0
  449. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_acceptance_drivers.py +0 -0
  450. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent.py +0 -0
  451. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_api_error.py +0 -0
  452. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_app.py +0 -0
  453. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_branch_base.py +0 -0
  454. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_branch_capture.py +0 -0
  455. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_config_free_1712.py +0 -0
  456. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_deploy_units_endpoint.py +0 -0
  457. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_dirty_worktree.py +0 -0
  458. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_drive_queue_reconcile_2373.py +0 -0
  459. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_graph_self_heal.py +0 -0
  460. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_health_h3.py +0 -0
  461. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_idle_restart.py +0 -0
  462. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_push_failure.py +0 -0
  463. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_reap.py +0 -0
  464. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_repos_and_pull.py +0 -0
  465. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_restart_services_endpoint.py +0 -0
  466. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_skills_self_heal.py +0 -0
  467. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_startup_diagnostics.py +0 -0
  468. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_update.py +0 -0
  469. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_update_bluegreen.py +0 -0
  470. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_usage_limit.py +0 -0
  471. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_zero_commit.py +0 -0
  472. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_ambient_home_isolation.py +0 -0
  473. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_approve_dependency_busy_2804.py +0 -0
  474. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_approve_reject_plan.py +0 -0
  475. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_approve_usage_gate.py +0 -0
  476. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_approved_work_2532.py +0 -0
  477. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_assignment_already_recorded_daemon.py +0 -0
  478. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_audit_log.py +0 -0
  479. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_audit_outcome.py +0 -0
  480. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_audit_query.py +0 -0
  481. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_auto_loop.py +0 -0
  482. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_auto_release_publish_2035.py +0 -0
  483. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_base_checkout_restore.py +0 -0
  484. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_block_log.py +0 -0
  485. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_board_fixture.py +0 -0
  486. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_board_read_path.py +0 -0
  487. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_board_schema.py +0 -0
  488. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_board_service.py +0 -0
  489. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_board_state.py +0 -0
  490. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_board_wire.py +0 -0
  491. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_brain.py +0 -0
  492. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_branch_model.py +0 -0
  493. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_bug_intake.py +0 -0
  494. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_build_worker_image_env_update.py +0 -0
  495. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cargo_cache.py +0 -0
  496. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_check_gh_argv_containment.py +0 -0
  497. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_ci_acceptance_gate_1950.py +0 -0
  498. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_ci_fix.py +0 -0
  499. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_ci_gitlab.py +0 -0
  500. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_ci_parity_2091.py +0 -0
  501. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_ci_store.py +0 -0
  502. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_claim.py +0 -0
  503. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_claude_md_budget.py +0 -0
  504. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_acceptance.py +0 -0
  505. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_assign.py +0 -0
  506. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
  507. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_assign_interactive_remote.py +0 -0
  508. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_assign_provider.py +0 -0
  509. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_assign_repo_drift_2219.py +0 -0
  510. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_audit.py +0 -0
  511. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_chat_continue.py +0 -0
  512. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_decide.py +0 -0
  513. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_diagnose_config_provenance.py +0 -0
  514. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_diagnose_forge_availability.py +0 -0
  515. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_diagnose_graph.py +0 -0
  516. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_diagnose_self.py +0 -0
  517. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_doctor.py +0 -0
  518. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_doctor_config_free_1801.py +0 -0
  519. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
  520. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_drive.py +0 -0
  521. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_drive_queue.py +0 -0
  522. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_escalate.py +0 -0
  523. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_fix_headless_review.py +0 -0
  524. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_gate_a.py +0 -0
  525. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_install_drift.py +0 -0
  526. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_issue_comment.py +0 -0
  527. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_issue_create_label.py +0 -0
  528. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_issue_reopen.py +0 -0
  529. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_issue_view_list.py +0 -0
  530. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_merge.py +0 -0
  531. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_milestone_assign.py +0 -0
  532. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_milestone_capture.py +0 -0
  533. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_milestone_chat_add_child.py +0 -0
  534. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_milestone_dispatch.py +0 -0
  535. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_milestone_gate_b.py +0 -0
  536. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_milestone_gate_c.py +0 -0
  537. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_milestone_order.py +0 -0
  538. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
  539. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_milestone_ship.py +0 -0
  540. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_network.py +0 -0
  541. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_new_issue_chat.py +0 -0
  542. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_plans.py +0 -0
  543. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_portal.py +0 -0
  544. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_pr.py +0 -0
  545. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_pull_artifact.py +0 -0
  546. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_queue.py +0 -0
  547. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_reattach_sessions.py +0 -0
  548. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_refine_board.py +0 -0
  549. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_release_preflight.py +0 -0
  550. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_release_propagate.py +0 -0
  551. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_repo_2220.py +0 -0
  552. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_review_test_author_tracking_epic_2639.py +0 -0
  553. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_scorecard.py +0 -0
  554. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_set_review_findings.py +0 -0
  555. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_status_advisory_terminal.py +0 -0
  556. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_status_contested_tag.py +0 -0
  557. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_status_merge_queue.py +0 -0
  558. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_status_provider.py +0 -0
  559. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_status_review_finalizing.py +0 -0
  560. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_status_test_failed_tag.py +0 -0
  561. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_status_usage_limit.py +0 -0
  562. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_sync_comments_873.py +0 -0
  563. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_test_plan.py +0 -0
  564. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_track.py +0 -0
  565. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_tui_update.py +0 -0
  566. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_wait.py +0 -0
  567. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_client_base_install.py +0 -0
  568. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_commands_common.py +0 -0
  569. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_comments.py +0 -0
  570. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_completion_summary.py +0 -0
  571. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_config.py +0 -0
  572. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_config_acceptance.py +0 -0
  573. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_config_audit.py +0 -0
  574. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_config_pricing.py +0 -0
  575. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
  576. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_config_usage_gate.py +0 -0
  577. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_confirm_test.py +0 -0
  578. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_conflict_fix.py +0 -0
  579. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_conflict_fix_semantic.py +0 -0
  580. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_coord_log_daemon_fallback_2547.py +0 -0
  581. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_coord_test.py +0 -0
  582. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_coord_test_runner_baseline.py +0 -0
  583. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_coord_test_runner_populated_home.py +0 -0
  584. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_coord_test_runner_routing.py +0 -0
  585. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_coord_test_runner_toolchain.py +0 -0
  586. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_coord_uat.py +0 -0
  587. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_coord_web_sse_restart_live.py +0 -0
  588. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_coordinator_machine.py +0 -0
  589. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cross_platform_imports.py +0 -0
  590. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_dao.py +0 -0
  591. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_dashboard.py +0 -0
  592. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_dashboard_fixture.py +0 -0
  593. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_dashboard_terminal.py +0 -0
  594. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_dashboard_terminal_live.py +0 -0
  595. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_db.py +0 -0
  596. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_dead_end.py +0 -0
  597. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_decomposition_chat.py +0 -0
  598. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_deploy_coord_db_backup.py +0 -0
  599. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_deploy_coord_web_dist.py +0 -0
  600. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_deploy_coord_web_rollback.py +0 -0
  601. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_deploy_drive_queue_unit.py +0 -0
  602. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_deploy_failure_notify_unit.py +0 -0
  603. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_deploy_manifest.py +0 -0
  604. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_deploy_notify_unit.py +0 -0
  605. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_deploy_units_lane.py +0 -0
  606. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_deploy_web_unit.py +0 -0
  607. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_deps.py +0 -0
  608. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_diagnose.py +0 -0
  609. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_dispatch.py +0 -0
  610. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_dispatch_target_validation.py +0 -0
  611. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_dist_name.py +0 -0
  612. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_done_housekeeping.py +0 -0
  613. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_drive.py +0 -0
  614. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_drive_queue.py +0 -0
  615. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_drive_queue_blocked_rendering.py +0 -0
  616. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_drive_queue_launch_argv.py +0 -0
  617. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_drive_queue_max_parallel_per_repo_config.py +0 -0
  618. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_drive_queue_roll_pending.py +0 -0
  619. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_drive_queue_self_cordon_escalation.py +0 -0
  620. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_drive_state.py +0 -0
  621. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_drive_tmux.py +0 -0
  622. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_epic_up_capability_detection.py +0 -0
  623. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
  624. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_epic_up_image_provenance.py +0 -0
  625. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_errors.py +0 -0
  626. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_events.py +0 -0
  627. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_failure_class.py +0 -0
  628. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_filelock.py +0 -0
  629. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
  630. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_fix_of_force_override.py +0 -0
  631. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_fleet_config_health.py +0 -0
  632. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_fleet_health_probes.py +0 -0
  633. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_fleet_health_snapshot.py +0 -0
  634. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_fleet_watchdog.py +0 -0
  635. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_forge_availability.py +0 -0
  636. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_freshness.py +0 -0
  637. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_gate_a.py +0 -0
  638. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_gate_b.py +0 -0
  639. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_gate_snapshot_staleness.py +0 -0
  640. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_gates.py +0 -0
  641. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_gather_fleet_tmux_sessions.py +0 -0
  642. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_gen_mock_index.py +0 -0
  643. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_generated_rust_fixture.py +0 -0
  644. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_generated_types_fixture.py +0 -0
  645. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_github_ops.py +0 -0
  646. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_github_throttle.py +0 -0
  647. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_goal.py +0 -0
  648. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_graph_health.py +0 -0
  649. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_graph_selfheal_absent_2237.py +0 -0
  650. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_handoff.py +0 -0
  651. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_health_checks.py +0 -0
  652. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_health_cli.py +0 -0
  653. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_health_cli_graph.py +0 -0
  654. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_health_config.py +0 -0
  655. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_health_context.py +0 -0
  656. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_health_coord_web_ci_pin.py +0 -0
  657. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_health_deploy_lane_facts.py +0 -0
  658. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_health_fix.py +0 -0
  659. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_health_incident_regression.py +0 -0
  660. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_health_issues_sync_staleness.py +0 -0
  661. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_health_pypi.py +0 -0
  662. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_health_registry.py +0 -0
  663. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_health_release_cordon_probe.py +0 -0
  664. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_health_timer_active.py +0 -0
  665. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_health_toolchain.py +0 -0
  666. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_health_unit_drift.py +0 -0
  667. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_health_unit_enablement.py +0 -0
  668. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_hooks.py +0 -0
  669. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_human_attended_437.py +0 -0
  670. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_init.py +0 -0
  671. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_integration.py +0 -0
  672. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_interactive_briefing_echo.py +0 -0
  673. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_interactive_pane_log_2541.py +0 -0
  674. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_interactive_prefill_state.py +0 -0
  675. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_interactive_session_relaunch.py +0 -0
  676. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_interactive_test_verdict_backstop.py +0 -0
  677. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_interactive_token_attribution.py +0 -0
  678. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_interactive_worktree.py +0 -0
  679. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_issue_store_seam.py +0 -0
  680. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_issues_sync_status.py +0 -0
  681. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_liveness_auditor.py +0 -0
  682. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_liveness_notify.py +0 -0
  683. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_lock_contention_ratchet.py +0 -0
  684. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_machine_pause.py +0 -0
  685. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_merge_queue.py +0 -0
  686. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_merge_verify.py +0 -0
  687. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_milestone_chat.py +0 -0
  688. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_milestone_dispatch.py +0 -0
  689. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_milestone_gate.py +0 -0
  690. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_milestone_order.py +0 -0
  691. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_milestone_seam.py +0 -0
  692. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_mock_author.py +0 -0
  693. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_model_tiering.py +0 -0
  694. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_models.py +0 -0
  695. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_models_config_labels.py +0 -0
  696. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_needs_attention.py +0 -0
  697. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_network.py +0 -0
  698. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_new_issue_chat.py +0 -0
  699. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_next_release_tag.py +0 -0
  700. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_node_shim.py +0 -0
  701. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_notifier_baseline.py +0 -0
  702. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_notifier_cli.py +0 -0
  703. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_notifier_collect.py +0 -0
  704. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_notifier_config.py +0 -0
  705. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_notifier_drive_seam.py +0 -0
  706. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_notifier_isolation.py +0 -0
  707. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_notifier_predicate.py +0 -0
  708. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_notifier_quiet_hours.py +0 -0
  709. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_notifier_service.py +0 -0
  710. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_notify.py +0 -0
  711. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_notify_drain.py +0 -0
  712. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_openapi.py +0 -0
  713. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_operational_defaults.py +0 -0
  714. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_overlap_fence.py +0 -0
  715. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_overlap_predict.py +0 -0
  716. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_packaged_deploy_units.py +0 -0
  717. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_parentage.py +0 -0
  718. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_paste_landed.py +0 -0
  719. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_phantom_heal_venv_independence_2570.py +0 -0
  720. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_pipeline.py +0 -0
  721. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_plan_followup_approve_plan_command.py +0 -0
  722. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_plan_followup_pr_command.py +0 -0
  723. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_plan_followup_review_command.py +0 -0
  724. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_plan_only.py +0 -0
  725. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_plan_parser.py +0 -0
  726. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_platform_paths.py +0 -0
  727. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_portal_bridge.py +0 -0
  728. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_portal_config.py +0 -0
  729. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_portal_store.py +0 -0
  730. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_portal_sync.py +0 -0
  731. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_pr_body_lint.py +0 -0
  732. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_prereqs.py +0 -0
  733. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_production_db_guard.py +0 -0
  734. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_progress.py +0 -0
  735. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_provider_seam.py +0 -0
  736. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_providers.py +0 -0
  737. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_providers_config_labels.py +0 -0
  738. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_providers_pty.py +0 -0
  739. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_quiet_hours.py +0 -0
  740. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_quiet_hours_store_2146.py +0 -0
  741. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_reap_merged_sessions.py +0 -0
  742. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_reap_stale_interactive_tick.py +0 -0
  743. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_reconcile.py +0 -0
  744. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_reconcile_branch.py +0 -0
  745. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_reconcile_completions.py +0 -0
  746. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_reconcile_late_agent_reports_2547.py +0 -0
  747. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_reconcile_merges.py +0 -0
  748. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_reconcile_no_agent_record.py +0 -0
  749. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_reconcile_tick.py +0 -0
  750. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_reconcile_usage_limit_done.py +0 -0
  751. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_refine_chat.py +0 -0
  752. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_release_cordon_2101.py +0 -0
  753. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
  754. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_release_cordon_deadlock_2240.py +0 -0
  755. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_release_cordon_stuck_2490.py +0 -0
  756. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_release_propagate.py +0 -0
  757. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_release_propagate_threshold.py +0 -0
  758. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_release_roll_between_legs_2854.py +0 -0
  759. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_release_roll_window_handoff.py +0 -0
  760. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_release_unified_1242.py +0 -0
  761. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_release_verify.py +0 -0
  762. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_release_window.py +0 -0
  763. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_remote_auto_prune.py +0 -0
  764. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_remote_interactive_reaper.py +0 -0
  765. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_repo_add.py +0 -0
  766. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_repo_edit_2220.py +0 -0
  767. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_repo_graph_fleet_2237.py +0 -0
  768. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_repo_onboard_2220.py +0 -0
  769. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_report_result_push.py +0 -0
  770. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_reports.py +0 -0
  771. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_retry.py +0 -0
  772. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_retry_advisory_1606.py +0 -0
  773. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_retry_type_1636.py +0 -0
  774. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_revalidate.py +0 -0
  775. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_review.py +0 -0
  776. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_review_end_review_without_verdict.py +0 -0
  777. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_review_parse_failure_diagnostic.py +0 -0
  778. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_review_reaffirm.py +0 -0
  779. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_review_state.py +0 -0
  780. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_review_verdict_backstop.py +0 -0
  781. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_review_verdict_override_audit.py +0 -0
  782. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_review_verdict_relay.py +0 -0
  783. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_review_zero_commits.py +0 -0
  784. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_scoped_review_wiring.py +0 -0
  785. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_scorecard.py +0 -0
  786. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_self_health.py +0 -0
  787. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_serve.py +0 -0
  788. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_serve_app_board_trim.py +0 -0
  789. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_session.py +0 -0
  790. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_slice_issue_attribution.py +0 -0
  791. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_smoke.py +0 -0
  792. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_smoke_live_checkout_restore.py +0 -0
  793. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_smoke_workflow.py +0 -0
  794. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_spend_ceiling.py +0 -0
  795. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_spend_ceiling_coordinator.py +0 -0
  796. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_split.py +0 -0
  797. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_split_work.py +0 -0
  798. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_sql_dialect.py +0 -0
  799. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_stage_projection.py +0 -0
  800. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_stalled_pipeline.py +0 -0
  801. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_state.py +0 -0
  802. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_state_review_findings_daemon.py +0 -0
  803. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_status_fleet_footer.py +0 -0
  804. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_stop_1567.py +0 -0
  805. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_store_contract.py +0 -0
  806. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_stuck.py +0 -0
  807. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_stuck_test_state_watchdog_2803.py +0 -0
  808. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_terminal_command.py +0 -0
  809. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_test_author.py +0 -0
  810. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_test_chat.py +0 -0
  811. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_test_orchestrator.py +0 -0
  812. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_test_report.py +0 -0
  813. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_test_verdict_parsing.py +0 -0
  814. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_test_verdict_transcript_floor.py +0 -0
  815. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_text_io_encoding_audit.py +0 -0
  816. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_thin_client_config_load_1080.py +0 -0
  817. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_thin_client_daemon_routing_906.py +0 -0
  818. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_tmux_host.py +0 -0
  819. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_tmux_session.py +0 -0
  820. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_transcript_floor.py +0 -0
  821. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_usage.py +0 -0
  822. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_usage_limits.py +0 -0
  823. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_usage_rollup.py +0 -0
  824. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_venv_live_install_2121.py +0 -0
  825. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_version_single_source.py +0 -0
  826. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_watch.py +0 -0
  827. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
  828. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_worker_env_venv_isolation.py +0 -0
  829. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_worker_events.py +0 -0
  830. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_worker_image_pin_sync.py +0 -0
  831. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_worker_safety.py +0 -0
  832. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_worker_test_scoping.py +0 -0
  833. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_worktree.py +0 -0
  834. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_worktree_rmtree_chokepoint.py +0 -0
  835. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/Cargo.lock +0 -0
  836. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/Cargo.toml +0 -0
  837. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/cargo-config-local-quadraui.toml.example +0 -0
  838. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/approved.rs +0 -0
  839. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/audit.rs +0 -0
  840. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/chat.rs +0 -0
  841. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/data.rs +0 -0
  842. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/dialogs.rs +0 -0
  843. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/doc_tabs.rs +0 -0
  844. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/drive.rs +0 -0
  845. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/drive_queue.rs +0 -0
  846. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/escalation.rs +0 -0
  847. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/events.rs +0 -0
  848. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/fixtures.rs +0 -0
  849. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/fleet_health.rs +0 -0
  850. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/fleet_sessions.rs +0 -0
  851. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/fleet_terminals.rs +0 -0
  852. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/format.rs +0 -0
  853. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/milestone_dag.rs +0 -0
  854. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/mod.rs +0 -0
  855. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/msv.rs +0 -0
  856. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/pipeline.rs +0 -0
  857. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/plans.rs +0 -0
  858. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/render.rs +0 -0
  859. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/reports.rs +0 -0
  860. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/sessions.rs +0 -0
  861. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/settings_ui.rs +0 -0
  862. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/sidebar.rs +0 -0
  863. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/terminal.rs +0 -0
  864. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/tests.rs +0 -0
  865. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/types/generated.rs +0 -0
  866. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/types.rs +0 -0
  867. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/workspace.rs +0 -0
  868. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/bin/gtk.rs +0 -0
  869. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/commands.rs +0 -0
  870. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/lib.rs +0 -0
  871. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/main.rs +0 -0
  872. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/settings.rs +0 -0
  873. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/tests/acceptance.rs +0 -0
  874. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/tests/cli.rs +0 -0
  875. {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/tests/fixtures/board_sample.json +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-coordinator
3
- Version: 0.5.262
3
+ Version: 0.5.264
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.262
3
+ Version: 0.5.264
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
@@ -265,6 +265,7 @@ coord/skills/fleet-restart-safety/SKILL.md
265
265
  coord/skills/merge-stuck-triage/SKILL.md
266
266
  coord/skills/pipeline-limbo-triage/SKILL.md
267
267
  coord/skills/portal-followup/SKILL.md
268
+ coord/skills/release-now/SKILL.md
268
269
  coord/skills/review-verdict-recovery/SKILL.md
269
270
  coord/skills/tui-quadraui-workflow/SKILL.md
270
271
  coord/skills/update-issue/SKILL.md
@@ -241,6 +241,7 @@
241
241
  "coord/skills/merge-stuck-triage/SKILL.md",
242
242
  "coord/skills/pipeline-limbo-triage/SKILL.md",
243
243
  "coord/skills/portal-followup/SKILL.md",
244
+ "coord/skills/release-now/SKILL.md",
244
245
  "coord/skills/review-verdict-recovery/SKILL.md",
245
246
  "coord/skills/tui-quadraui-workflow/SKILL.md",
246
247
  "coord/skills/update-issue/SKILL.md",
@@ -1,7 +1,7 @@
1
1
  {
2
- "tag": "0.5.262",
2
+ "tag": "0.5.264",
3
3
  "distance": 0,
4
- "node": "g0ef4d9fe88b17a02b984541dc5f936ddefb6ec56",
4
+ "node": "g037604ea4782108f989df77750337682d26f2a36",
5
5
  "dirty": false,
6
6
  "branch": "HEAD",
7
7
  "node_date": "2026-08-28"
@@ -3146,7 +3146,29 @@ def release_nightly_window(
3146
3146
  existing = read_roll_pending()
3147
3147
 
3148
3148
  if dry_run:
3149
- if existing is not None:
3149
+ # #2866: a marker naming a STALE target (not equal to the freshly
3150
+ # resolved `record.target_version` — PyPI's "latest" moved, or the
3151
+ # daemon reached/passed it some other way since the marker was set)
3152
+ # must never be echoed back as "would attempt ... --target <stale>".
3153
+ # This is the exact 2026-08-28 incident: a `propagate`-set marker
3154
+ # for v0.5.254 survived on disk after the daemon had already
3155
+ # reached v0.5.258 by other means, and `nightly-window --dry-run`
3156
+ # read it back and printed a proposal to roll BACKWARDS to
3157
+ # v0.5.254 — cleared by hand with `coord drive-queue cancel-roll`
3158
+ # at the time. In reality a NON-dry-run run never fires a stale
3159
+ # target either (section 3 below replaces it with
3160
+ # `record.target_version` instead, whenever it differs) — this
3161
+ # branch only makes the --dry-run description match that real
3162
+ # behaviour instead of quoting the stale value as if it would run.
3163
+ if existing is not None and existing.target_version != record.target_version:
3164
+ click.echo(
3165
+ f"a roll is pending for a stale target ({existing.describe()}) — "
3166
+ f"would replace it with v{record.target_version} ({daemon_name} "
3167
+ f"currently reports v{record.daemon_version or '?'}) rather than "
3168
+ "ever firing the stale value (#2866); its original set_at/"
3169
+ "deferrals would be preserved (#2607)"
3170
+ )
3171
+ elif existing is not None:
3150
3172
  click.echo(
3151
3173
  f"a roll is already pending ({existing.describe()}) — would "
3152
3174
  f"attempt `coord release propagate --daemon-host {daemon_name} "
@@ -64,17 +64,38 @@
64
64
  #
65
65
  # MIN-RELEASES-BEHIND GATE (#2583) — OFF BY DEFAULT, NOT SET HERE
66
66
  # -----------------------------------------------------------------
67
- # `coord release propagate` (and `coord release nightly-window`, below)
68
- # support holding a run below a configurable delta —
69
- # `propagation.min_releases_behind` in coordinator.yml, or `--min-behind` on
70
- # either command — instead of attempting a roll on ANY delta at all (today's
71
- # default, `min_releases_behind=1`, unchanged unless configured). This
72
- # `ExecStart=` deliberately does NOT pass `--min-behind`: the threshold is
73
- # meant to be set (or left alone) via coordinator.yml so both this timer and
74
- # `coord-release-window.service` read the SAME value, and — per
75
- # `docs/AGENT_OPERATIONS.md`'s "Auto-roll threshold gate" section — must NOT
76
- # be raised above 1 on a fleet that has not first taken one manual roll onto
77
- # a fixed propagation lane. Below the threshold, this unit's own run reports
67
+ # `coord release propagate` (and `coord release nightly-window`, its sibling
68
+ # in `coord-release-window.service`) support holding a run below a
69
+ # configurable delta — `propagation.min_releases_behind` in coordinator.yml,
70
+ # or `--min-behind` on either command — instead of attempting a roll on ANY
71
+ # delta at all (the default, `min_releases_behind=1`, unchanged unless
72
+ # configured). This `ExecStart=` deliberately does NOT pass `--min-behind`:
73
+ # THIS timer reads `propagation.min_releases_behind` straight from
74
+ # coordinator.yml, un-overridden, and that is intentional — see #2866's
75
+ # split:
76
+ #
77
+ # | Trigger | Threshold | Role |
78
+ # |-----------------------------------|-----------|----------------------|
79
+ # | coord-release-propagate.timer | 5 (config)| opportunistic — must |
80
+ # | (this unit, every 20 min) | | not cordon/drain the |
81
+ # | | | fleet every ~45 min, |
82
+ # | | | auto-release.yml's |
83
+ # | | | measured cadence |
84
+ # | | | (12 releases on |
85
+ # | | | 2026-08-27) |
86
+ # | coord-release-window.timer | 1 (fixed | the guarantee — one |
87
+ # | (daily) | via | painless roll a day, |
88
+ # | | --min-behind)| whatever accumulated|
89
+ #
90
+ # `coordinator.yml` is a SHARED value read by both commands — raising it
91
+ # here to spare this 20-minute cadence from over-eager rolls would ALSO
92
+ # raise `coord-release-window.service`'s threshold if that unit read the
93
+ # same unqualified default, which is exactly why THAT unit pins
94
+ # `--min-behind 1` explicitly on its own `ExecStart=` rather than relying on
95
+ # this shared config value. Per `docs/AGENT_OPERATIONS.md`'s "Auto-roll
96
+ # threshold gate" section, `propagation.min_releases_behind` must NOT be
97
+ # raised above 1 on a fleet that has not first taken one manual roll onto a
98
+ # fixed propagation lane. Below the threshold, this unit's own run reports
78
99
  # `holding: N behind, threshold M` and exits 0, exactly like an ordinary
79
100
  # deferral — no cordon, no host touched.
80
101
 
@@ -126,20 +126,53 @@
126
126
  #
127
127
  # MIN-RELEASES-BEHIND GATE (#2583) — OFF BY DEFAULT, NOT SET HERE
128
128
  # -----------------------------------------------------------------
129
- # This unit is the PREFERRED vehicle for the #2583 threshold: it is the one
130
- # place `coord release nightly-window` itself decides whether the daemon
131
- # host needs a roll at all, so a `propagation.min_releases_behind` set in
132
- # coordinator.yml (or a `--min-behind` appended to `ExecStart=` below) holds
133
- # it there — no roll-pending marker set, no `coord release propagate`
134
- # subprocess spawned — until the daemon is genuinely that many releases
135
- # behind PyPI's latest. Left unset here on purpose: `min_releases_behind=1`
136
- # (any delta at all, today's behaviour) is the safe default until an
137
- # operator deliberately raises it — see `docs/AGENT_OPERATIONS.md`'s
138
- # "Auto-roll threshold gate" section for why the CURRENT fleet must take one
139
- # manual roll first, onto a fixed propagation lane, before this is ever
140
- # turned up. A held run reports `holding: N behind, threshold M` in its own
141
- # journal (`coord release window-history`) and exits 0, same as a normal
142
- # `roll-pending`/`up-to-date` outcome.
129
+ # #2866: `--min-behind 1` is set EXPLICITLY on `ExecStart=` below — this is
130
+ # the packaged default now, not "left unset" as an earlier revision of this
131
+ # comment said. The two release timers want DIFFERENT thresholds, and
132
+ # `propagation.min_releases_behind` in coordinator.yml is shared by both
133
+ # `coord release propagate` (step 3a) and `coord release nightly-window`
134
+ # (step 2b) — raising it to spare the 20-minute propagate cadence from
135
+ # cordoning/draining the fleet on every delta would ALSO raise it here,
136
+ # which defeats the entire point of this unit (a guaranteed daily roll,
137
+ # whatever accumulated):
138
+ #
139
+ # | Trigger | Threshold | Role |
140
+ # |-----------------------------------|-----------|----------------------|
141
+ # | coord-release-propagate.timer | 5 (config)| opportunistic — must |
142
+ # | (every 20 min) | | not cordon/drain the |
143
+ # | | | fleet every ~45 min, |
144
+ # | | | auto-release.yml's |
145
+ # | | | measured cadence |
146
+ # | | | (12 releases on |
147
+ # | | | 2026-08-27) |
148
+ # | coord-release-window.timer | 1 (here) | the guarantee — one |
149
+ # | (daily) | | painless roll a day, |
150
+ # | | | whatever accumulated |
151
+ #
152
+ # Measured on dellserver at 1 release behind: without `--min-behind` this
153
+ # unit inherited the shared config's `min_releases_behind=5` and reported
154
+ # `holding: 1 behind, threshold 5` — the daily guarantee was silently
155
+ # count-based instead of time-based. `--min-behind` on `ExecStart=` always
156
+ # wins over `propagation.min_releases_behind` (see `coord release
157
+ # nightly-window --help`), so this unit's threshold stays 1 regardless of
158
+ # what the shared config sets for the propagate timer. See
159
+ # `docs/AGENT_OPERATIONS.md`'s "Auto-roll threshold gate" section for why a
160
+ # threshold above 1 requires one manual roll first onto a fixed propagation
161
+ # lane — that requirement is about `propagation.min_releases_behind`
162
+ # (the propagate timer's knob), not this unit's hardcoded 1. A held run
163
+ # reports `holding: N behind, threshold M` in its own journal (`coord
164
+ # release window-history`) and exits 0, same as a normal `roll-pending`/
165
+ # `up-to-date` outcome.
166
+ #
167
+ # The dellserver drop-in this superseded
168
+ # (`~/.config/systemd/user/coord-release-window.service.d/override.conf`,
169
+ # added as the interim fix before this landed) can now be deleted — this
170
+ # `ExecStart=` reproduces it exactly, so removing the drop-in changes
171
+ # nothing. `coord agent update` rewrites this unit file on every roll but
172
+ # never touches a drop-in, which is why that override survived every roll
173
+ # since it was added but would NOT have survived a from-scratch rebuild of
174
+ # this host — the whole reason this is now the packaged default instead of
175
+ # operator-local state.
143
176
 
144
177
  [Unit]
145
178
  Description=Release window: set/fire the #2587 roll-pending marker on the daemon host
@@ -153,7 +186,11 @@ Type=oneshot
153
186
  # it shells out to when firing an already-pending marker. A fleet that is
154
187
  # still busy is reported and left for the drive-queue tick to keep
155
188
  # watching, never overridden.
156
- ExecStart=%h/.local/bin/coord release nightly-window --config %h/.coord/coordinator.yml
189
+ # #2866: --min-behind 1 is the daily guarantee's own threshold, deliberately
190
+ # independent of `propagation.min_releases_behind` (which the 20-minute
191
+ # coord-release-propagate.service alone should govern) — see the
192
+ # MIN-RELEASES-BEHIND GATE comment above for the full split.
193
+ ExecStart=%h/.local/bin/coord release nightly-window --config %h/.coord/coordinator.yml --min-behind 1
157
194
  # Bounded by the SAME ceiling coord-release-propagate.service uses: the
158
195
  # "marker already pending -> attempt a fire" branch shells out to `coord
159
196
  # release propagate` with its own 1800s subprocess timeout
@@ -0,0 +1,55 @@
1
+ # coord release nightly-window — fires coord-release-window.service
2
+ # (Type=oneshot) once a night. See that unit's header for the full
3
+ # rationale (#2112, rewritten #2587).
4
+ #
5
+ # 10:00 America/Chicago — #2866: this is what the fleet actually runs
6
+ # (dellserver carried it as an untracked
7
+ # `coord-release-window.timer.d/override.conf` drop-in from 2026-08-26
8
+ # until this became the packaged default), replacing the earlier packaged
9
+ # 03:00 UTC. Named with an explicit zone rather than a bare local wall-clock
10
+ # time specifically so a DST transition cannot drift the fire time by an
11
+ # hour twice a year — `systemd.time(7)`'s `OnCalendar=` resolves a
12
+ # zone-qualified spec against that zone's own clock, DST included. Still
13
+ # inside a low-drive-activity part of the day; the exact hour matters far
14
+ # less than picking ONE the operator can reason about, since #2587 already
15
+ # means a late/early firing costs nothing (see below). #2587: this firing
16
+ # itself is now fast (resolve the target, set-or-fire the roll-pending
17
+ # marker, return) — there is no multi-hour drain to leave room for any
18
+ # more. The ACTUAL roll may still land well after this fires if the fleet
19
+ # stays busy; that is fine and by design, since it fires the instant `coord
20
+ # drive-queue tick` sees the fleet's own next inter-drive gap rather than
21
+ # waiting for THIS timer's next fire, and never stops any timer to get
22
+ # there.
23
+ #
24
+ # The dellserver drop-in this superseded can now be deleted — this
25
+ # `OnCalendar=` reproduces it exactly (same zone-qualified spec), so
26
+ # removing the drop-in changes nothing. A from-scratch rebuild of that host
27
+ # would otherwise have silently reverted to 03:00 UTC with no warning,
28
+ # which is the whole reason this moved from operator-local override to
29
+ # packaged default.
30
+ #
31
+ # RandomizedDelaySec is small and exists only to avoid firing at the exact
32
+ # same wall-clock instant `coord-drive-queue.timer`'s own OnCalendar-free
33
+ # interval schedule might land on, not because two hosts might race this
34
+ # unit — it belongs on the daemon host ONLY (same rule as
35
+ # coord-release-propagate.timer; see that unit's header for why a second
36
+ # copy elsewhere is the #1440 two-overseers failure in a new costume).
37
+ #
38
+ # Persistent=true (#2112 trap 4 / acceptance-adjacent): a host that was
39
+ # asleep or rebooted through 03:00 still catches up on the next boot, rather
40
+ # than silently skipping a whole night. `coord release nightly-window`
41
+ # itself is idempotent — see its module docstring's `needs_roll`: a fleet
42
+ # already current at whatever time this actually fires touches nothing at
43
+ # all.
44
+
45
+ [Unit]
46
+ Description=Nightly release window on the daemon host (#2112, #2587)
47
+
48
+ [Timer]
49
+ OnCalendar=*-*-* 10:00:00 America/Chicago
50
+ RandomizedDelaySec=5min
51
+ AccuracySec=1min
52
+ Persistent=true
53
+
54
+ [Install]
55
+ WantedBy=timers.target
@@ -21,6 +21,18 @@ Two guarantees make the sweep safe:
21
21
  The sweep runs automatically on a low-cadence daemon tick and on demand via
22
22
  ``coord housekeeping`` (which routes through the daemon — the canonical DB lives
23
23
  there).
24
+
25
+ #1107 Part 3: the same sweep also archives ``merge_queue`` rows in the
26
+ ``MERGED`` terminal state once they're older than the retention window, into
27
+ ``merge_queue_archive`` — mirroring the move-not-delete pattern above.
28
+ ``merge_queue`` has no natural "close" event of its own (unlike assignments,
29
+ which age out via ``TERMINAL_STATUSES``), so without this a MERGED row lives
30
+ forever: 192 such rows had accumulated by 2026-07-12 and 61 more by
31
+ 2026-07-30, both requiring a manual one-off ``DELETE``/``coord merge --drop``
32
+ declog. ``coord.merge_queue.merged_issue_keys()`` unions the live table with
33
+ the archive so the "already merged, don't re-enqueue" dedup in
34
+ ``enqueue_approved_work``/``staging_items`` keeps working after a row ages
35
+ out.
24
36
  """
25
37
 
26
38
  from __future__ import annotations
@@ -48,6 +60,9 @@ _ASSIGNMENTS = "assignments"
48
60
  _ASSIGNMENTS_ARCHIVE = "assignments_archive"
49
61
  _NOTIFICATIONS = "notifications"
50
62
  _NOTIFICATIONS_ARCHIVE = "notifications_archive"
63
+ _MERGE_QUEUE = "merge_queue"
64
+ _MERGE_QUEUE_ARCHIVE = "merge_queue_archive"
65
+ _MERGE_QUEUE_MERGED_STATE = "merged"
51
66
  _BATCH = 400 # keep IN(...) clauses well under SQLite's 999-variable limit
52
67
 
53
68
 
@@ -124,20 +139,26 @@ def _move_rows(
124
139
 
125
140
 
126
141
  def sweep(*, dry_run: bool = False, now: float | None = None) -> dict:
127
- """Archive stale terminal assignments + their notifications.
142
+ """Archive stale terminal assignments + their notifications + merged
143
+ merge_queue entries.
128
144
 
129
145
  Returns ``{"archived_assignments": N, "archived_notifications": M,
130
- "dry_run": bool, "retention_days": D}``. ``archived_*`` are the counts that
131
- were (or, for ``dry_run``, would be) moved. A no-op returns zeros.
146
+ "archived_merge_queue": K, "dry_run": bool, "retention_days": D}``.
147
+ ``archived_*`` are the counts that were (or, for ``dry_run``, would be)
148
+ moved. A no-op returns zeros.
132
149
 
133
150
  Conservative by construction: nothing active, recent (within the archive
134
151
  window), queued-for-merge, latest-of-an-open-issue, or review-linked to any
135
- such row is ever moved.
152
+ such row is ever moved. Merge queue entries are archived only once they
153
+ are in the terminal ``MERGED`` state (#1107 Part 3) — non-terminal /
154
+ conflicted entries are left for ``prune_stale_queue_entries`` or manual
155
+ ``coord merge --drop``.
136
156
  """
137
157
  cutoff = _archive_cutoff(now)
138
158
  result = {
139
159
  "archived_assignments": 0,
140
160
  "archived_notifications": 0,
161
+ "archived_merge_queue": 0,
141
162
  "dry_run": dry_run,
142
163
  "retention_days": _archive_retention_days(),
143
164
  }
@@ -151,13 +172,19 @@ def sweep(*, dry_run: bool = False, now: float | None = None) -> dict:
151
172
  conn, f"SELECT {_KEEP_INDEX_COLUMNS} FROM {_ASSIGNMENTS}" # noqa: S608
152
173
  ).fetchall()
153
174
  ]
154
- mq_ids = {
175
+ mq_rows = sql.execute(
176
+ conn,
177
+ "SELECT assignment_id, state, last_attempt, enqueued_at " # noqa: S608
178
+ f"FROM {_MERGE_QUEUE}",
179
+ ).fetchall()
180
+ mq_ids = {r["assignment_id"] for r in mq_rows if r["assignment_id"]}
181
+ mq_merged_ids = [
155
182
  r["assignment_id"]
156
- for r in sql.execute(
157
- conn, f"SELECT assignment_id FROM merge_queue" # noqa: S608
158
- ).fetchall()
183
+ for r in mq_rows
159
184
  if r["assignment_id"]
160
- }
185
+ and (r["state"] or "").lower() == _MERGE_QUEUE_MERGED_STATE
186
+ and (r["last_attempt"] or r["enqueued_at"] or 0) < cutoff
187
+ ]
161
188
  open_keys = {
162
189
  (r["repo_name"], r["number"])
163
190
  for r in sql.execute(
@@ -194,7 +221,8 @@ def sweep(*, dry_run: bool = False, now: float | None = None) -> dict:
194
221
 
195
222
  result["archived_assignments"] = len(candidates)
196
223
  result["archived_notifications"] = len(notif_ids)
197
- if dry_run or (not candidates and not notif_ids):
224
+ result["archived_merge_queue"] = len(mq_merged_ids)
225
+ if dry_run or (not candidates and not notif_ids and not mq_merged_ids):
198
226
  return result
199
227
 
200
228
  with conn:
@@ -206,4 +234,8 @@ def sweep(*, dry_run: bool = False, now: float | None = None) -> dict:
206
234
  _move_rows(
207
235
  conn, _ASSIGNMENTS, _ASSIGNMENTS_ARCHIVE, "assignment_id", candidates
208
236
  )
237
+ if mq_merged_ids:
238
+ _move_rows(
239
+ conn, _MERGE_QUEUE, _MERGE_QUEUE_ARCHIVE, "assignment_id", mq_merged_ids
240
+ )
209
241
  return result
@@ -12,6 +12,7 @@ from __future__ import annotations
12
12
  import inspect
13
13
  import json
14
14
  import logging
15
+ import sqlite3
15
16
  import time
16
17
  from dataclasses import dataclass, field
17
18
  from datetime import datetime, timezone
@@ -3753,6 +3754,58 @@ def save_queue(items: list[QueuedMerge]) -> None:
3753
3754
  retry_on_locked(_write)
3754
3755
 
3755
3756
 
3757
+ # ── Merged-history lookups (#1107 Part 3) ───────────────────────────────────
3758
+ #
3759
+ # `housekeeping.sweep()` archives MERGED merge_queue rows older than the
3760
+ # archive retention window into `merge_queue_archive` (same move-not-delete
3761
+ # pattern as `assignments`/`notifications`) so the live table stays bounded
3762
+ # instead of growing forever. `enqueue_approved_work()` and `staging_items()`
3763
+ # both dedup on "(repo, issue) already merged" to avoid re-surfacing an issue
3764
+ # whose prior work attempt already shipped — once the winning entry ages out
3765
+ # of the live table, that check must still see it, so it consults the
3766
+ # archive too.
3767
+
3768
+ def _archived_merged_issue_keys(conn: sqlite3.Connection) -> set[tuple[str, int]]:
3769
+ """(repo_name, issue_number) pairs recorded MERGED in the archive.
3770
+
3771
+ `merge_queue_archive` only exists once a housekeeping sweep has archived
3772
+ at least one row (or archiving is disabled entirely), so this is
3773
+ defensive against the table being absent.
3774
+ """
3775
+ try:
3776
+ rows = sql.execute(
3777
+ conn,
3778
+ "SELECT repo_name, issue_number FROM merge_queue_archive WHERE state = ?",
3779
+ (MERGED,),
3780
+ ).fetchall()
3781
+ except sql.driver_errors(): # #2784: not just sqlite3.OperationalError
3782
+ # "no such table" surfaces as a *different* driver-named exception
3783
+ # per backend (sqlite3.OperationalError vs psycopg.errors.
3784
+ # UndefinedTable), so this must go through the dialect seam or the
3785
+ # not-yet-archived case becomes an uncaught crash on Postgres.
3786
+ return set()
3787
+ return {(r["repo_name"], r["issue_number"]) for r in rows}
3788
+
3789
+
3790
+ def merged_issue_keys() -> set[tuple[str, int]]:
3791
+ """All ``(repo_name, issue_number)`` pairs ever recorded MERGED.
3792
+
3793
+ Unions the live ``merge_queue`` table with ``merge_queue_archive`` so
3794
+ callers get a correct answer regardless of whether the winning entry has
3795
+ since been archived by ``housekeeping.sweep()``.
3796
+ """
3797
+ conn = get_connection()
3798
+ live = {
3799
+ (r["repo_name"], r["issue_number"])
3800
+ for r in sql.execute(
3801
+ conn,
3802
+ "SELECT repo_name, issue_number FROM merge_queue WHERE state = ?",
3803
+ (MERGED,),
3804
+ ).fetchall()
3805
+ }
3806
+ return live | _archived_merged_issue_keys(conn)
3807
+
3808
+
3756
3809
  # ── Enqueue ──────────────────────────────────────────────────────────────
3757
3810
 
3758
3811
  def enqueue(
@@ -5403,12 +5456,10 @@ def staging_items(board, config, gh_ops: "GhOps | None" = None) -> list[StagingI
5403
5456
  queued_branches: set[str] = {x.branch for x in existing_queue if x.branch}
5404
5457
 
5405
5458
  # Fast-lookup: (repo_name, issue_number) pairs already MERGED so we skip
5406
- # issues whose prior attempt was already shipped.
5407
- already_merged: set[tuple[str, int]] = {
5408
- (x.repo_name, x.issue_number)
5409
- for x in existing_queue
5410
- if x.state == MERGED
5411
- }
5459
+ # issues whose prior attempt was already shipped. Consults the archive
5460
+ # too (#1107 Part 3) since the winning entry may have aged out of the
5461
+ # live table by the time a later duplicate work item shows up here.
5462
+ already_merged = merged_issue_keys()
5412
5463
 
5413
5464
  result: list[StagingItem] = []
5414
5465
  completed = list(getattr(board, "completed", []) or [])
@@ -677,7 +677,8 @@ def _audit_housekeeping_sweep(swept: dict) -> None:
677
677
  summary=(
678
678
  f"housekeeping: archived {swept.get('archived_assignments', 0)} "
679
679
  f"assignment(s), {swept.get('archived_notifications', 0)} "
680
- "notification(s)"
680
+ f"notification(s), {swept.get('archived_merge_queue', 0)} "
681
+ "merge_queue entry(ies)"
681
682
  ),
682
683
  details=swept,
683
684
  )
@@ -8500,14 +8501,17 @@ def build_app(store: CoordStore, config: Config, *, token: str | None = None) ->
8500
8501
 
8501
8502
  os.environ["COORD_HOUSEKEEPING_ON_DAEMON"] = "1"
8502
8503
  swept = await run_in_threadpool(_hk.sweep)
8503
- if swept.get("archived_assignments") or swept.get(
8504
- "archived_notifications"
8504
+ if (
8505
+ swept.get("archived_assignments")
8506
+ or swept.get("archived_notifications")
8507
+ or swept.get("archived_merge_queue")
8505
8508
  ):
8506
8509
  log.info(
8507
8510
  "housekeeping: archived %d assignment(s), "
8508
- "%d notification(s)",
8511
+ "%d notification(s), %d merge_queue entry(ies)",
8509
8512
  swept["archived_assignments"],
8510
8513
  swept["archived_notifications"],
8514
+ swept.get("archived_merge_queue", 0),
8511
8515
  )
8512
8516
  _audit_housekeeping_sweep(swept)
8513
8517
  except Exception: # noqa: BLE001
@@ -1,3 +1,9 @@
1
+ ---
2
+ name: coord-dispatch-verbs
3
+ description: "Use before running a `coord` CLI command to enqueue, dispatch, stage, or otherwise move a GitHub issue through the coordinator — disambiguates ~70 top-level commands with similarly-named pairs that silently do the wrong thing instead of erroring."
4
+ trigger: About to run a `coord` command to move an issue forward, especially when unsure of the exact subcommand, or a command exited 0 but the expected effect didn't happen.
5
+ ---
6
+
1
7
  # coord-dispatch-verbs skill
2
8
 
3
9
  **Trigger:** About to run a `coord` command to enqueue, dispatch, stage, or
@@ -1,3 +1,9 @@
1
+ ---
2
+ name: drive-queue-preflight
3
+ description: "Use before queuing more than ~2 issues on one repo with `coord drive-queue add`, setting up an overnight/unattended run, or seeing a QUEUE: STALLED/BLOCKED status-bar alert — gives the real cost model and the read-the-alert table."
4
+ trigger: "About to `coord drive-queue add` deep on one repo, or looking at a QUEUE: STALLED/BLOCKED alert."
5
+ ---
6
+
1
7
  # drive-queue-preflight skill
2
8
 
3
9
  **Trigger:** About to `coord drive-queue add` more than ~2 issues on one repo,
@@ -1,3 +1,9 @@
1
+ ---
2
+ name: fleet-restart-safety
3
+ description: "Use before restarting coord-agent/coord-serve or editing coordinator.yml on a live fleet — the two restarts kill different things (headless workers vs. interactive finalize) and neither warns you the way you'd expect."
4
+ trigger: About to restart coord-agent (incl. `coord agent update`) or coord-serve, or edit coordinator.yml/coordinator.remote.yml on a live fleet.
5
+ ---
6
+
1
7
  # fleet-restart-safety skill
2
8
 
3
9
  **Trigger:** About to restart `coord-agent` (including `coord agent update`)
@@ -1,3 +1,9 @@
1
+ ---
2
+ name: merge-stuck-triage
3
+ description: "Use when a story won't merge — the TUI Go does nothing, `coord merge` skips it, or the queue box stays grey/pending — walks the merge gates in the order they actually block instead of guessing."
4
+ trigger: A story won't merge, or an operator asks why something isn't merging.
5
+ ---
6
+
1
7
  # merge-stuck-triage skill
2
8
 
3
9
  **Trigger:** A story won't merge — the TUI "Go" does nothing, `coord merge` skips
@@ -1,3 +1,9 @@
1
+ ---
2
+ name: pipeline-limbo-triage
3
+ description: "Use when an issue sits in the Pipeline with no dispatch or visible activity — explains that Board vs Pipeline membership is label-driven, not assignment-driven, and gives the one-command fix."
4
+ trigger: An issue shows up in the Pipeline but nobody dispatched it, or a Pipeline card looks stuck.
5
+ ---
6
+
1
7
  # pipeline-limbo-triage skill
2
8
 
3
9
  **Trigger:** An issue shows up in the Pipeline but nobody dispatched it, a
@@ -1,3 +1,9 @@
1
+ ---
2
+ name: portal-followup
3
+ description: "Use when investigating a customer-portal signoff/event that hasn't shown up, or troubleshooting `coord portal` state — gets a straight answer out of outbox/events/sync instead of confusing local-machine state with the bridge's own."
4
+ trigger: Investigating a stuck customer-portal signoff/event, or any `coord portal` state troubleshooting.
5
+ ---
6
+
1
7
  # portal-followup skill
2
8
 
3
9
  **Trigger:** Investigating a customer-portal signoff/event that "hasn't shown up"