code-coordinator 0.5.511__tar.gz → 0.5.513__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 (909) hide show
  1. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/PKG-INFO +1 -1
  2. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/code_coordinator.egg-info/PKG-INFO +1 -1
  3. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/code_coordinator.egg-info/SOURCES.txt +3 -0
  4. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/code_coordinator.egg-info/scm_file_list.json +3 -0
  5. code_coordinator-0.5.513/code_coordinator.egg-info/scm_version.json +8 -0
  6. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/board_schema.py +235 -0
  7. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/issues.py +63 -1
  8. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/milestone.py +52 -38
  9. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/drive_queue.py +103 -0
  10. code_coordinator-0.5.513/coord/drive_sessions_snapshot.py +177 -0
  11. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/serve_app.py +226 -0
  12. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_board_read_path.py +22 -7
  13. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_board_schema.py +122 -0
  14. code_coordinator-0.5.513/tests/test_cli_issues.py +274 -0
  15. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_config_effective.py +96 -0
  16. code_coordinator-0.5.513/tests/test_drive_sessions_snapshot.py +120 -0
  17. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_serve.py +390 -0
  18. code_coordinator-0.5.511/code_coordinator.egg-info/scm_version.json +0 -8
  19. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/.claude/commands/board.md +0 -0
  20. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/.claude/commands/complete-session.md +0 -0
  21. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/.claude/commands/coordinator.md +0 -0
  22. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/.githooks/_lib.sh +0 -0
  23. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/.githooks/post-checkout +0 -0
  24. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/.githooks/post-commit +0 -0
  25. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/.githooks/post-merge +0 -0
  26. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  27. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/.github/coord-ci-acceptance.yml +0 -0
  28. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/.github/workflows/auto-release.yml +0 -0
  29. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/.github/workflows/publish.yml +0 -0
  30. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/.github/workflows/test.yml +0 -0
  31. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/.gitignore +0 -0
  32. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/CLAUDE.md +0 -0
  33. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/GOAL.md +0 -0
  34. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/LICENSE +0 -0
  35. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/MANIFEST.in +0 -0
  36. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/README.md +0 -0
  37. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/code_coordinator.egg-info/dependency_links.txt +0 -0
  38. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/code_coordinator.egg-info/entry_points.txt +0 -0
  39. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/code_coordinator.egg-info/requires.txt +0 -0
  40. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/code_coordinator.egg-info/top_level.txt +0 -0
  41. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/__init__.py +0 -0
  42. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/_board_mapping.py +0 -0
  43. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/acceptance.py +0 -0
  44. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/acceptance_drivers.py +0 -0
  45. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/agent.py +0 -0
  46. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/agent_app.py +0 -0
  47. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/agent_update.py +0 -0
  48. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/agents/opencode/.gitignore +0 -0
  49. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/agents/opencode/agents/work.md +0 -0
  50. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/agents/opencode/routing.jsonc +0 -0
  51. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/approved_work.py +0 -0
  52. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/audit.py +0 -0
  53. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/auto_loop.py +0 -0
  54. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/backup.py +0 -0
  55. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/block_log.py +0 -0
  56. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/board_service.py +0 -0
  57. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/board_wire.py +0 -0
  58. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/brain.py +0 -0
  59. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/branch_model.py +0 -0
  60. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/bug_intake.py +0 -0
  61. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/cargo_cache.py +0 -0
  62. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/ci_fix.py +0 -0
  63. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/ci_github.py +0 -0
  64. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/ci_gitlab.py +0 -0
  65. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/ci_store.py +0 -0
  66. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/claim.py +0 -0
  67. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/claude_setup_token.py +0 -0
  68. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/cli.py +0 -0
  69. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/client.py +0 -0
  70. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/codegen.py +0 -0
  71. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/__init__.py +0 -0
  72. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/_common.py +0 -0
  73. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/acceptance.py +0 -0
  74. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/agent_ops.py +0 -0
  75. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/audit.py +0 -0
  76. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/backup.py +0 -0
  77. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/chat.py +0 -0
  78. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/ci.py +0 -0
  79. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/codegen.py +0 -0
  80. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/dispatch.py +0 -0
  81. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/dispatch_workers.py +0 -0
  82. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/dr.py +0 -0
  83. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/drive.py +0 -0
  84. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/drive_queue.py +0 -0
  85. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/gate_a.py +0 -0
  86. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/gates.py +0 -0
  87. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/lifecycle.py +0 -0
  88. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/machine.py +0 -0
  89. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/merge.py +0 -0
  90. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/plan_followup.py +0 -0
  91. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/plans.py +0 -0
  92. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/portal.py +0 -0
  93. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/pr.py +0 -0
  94. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/release.py +0 -0
  95. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/repo.py +0 -0
  96. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/report.py +0 -0
  97. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/review.py +0 -0
  98. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/scorecard.py +0 -0
  99. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/sessions.py +0 -0
  100. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/setup.py +0 -0
  101. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/status.py +0 -0
  102. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/store_migrate.py +0 -0
  103. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/terminal.py +0 -0
  104. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/test_gate.py +0 -0
  105. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/tui.py +0 -0
  106. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/comments.py +0 -0
  107. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/config.py +0 -0
  108. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/config_reload.py +0 -0
  109. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/confirm_test.py +0 -0
  110. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/conflict_fix.py +0 -0
  111. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/dao.py +0 -0
  112. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/dashboard/__init__.py +0 -0
  113. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/dashboard/fixture.py +0 -0
  114. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/dashboard/index.html +0 -0
  115. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/dashboard/server.py +0 -0
  116. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/dashboard/terminal.py +0 -0
  117. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/db.py +0 -0
  118. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/dead_end.py +0 -0
  119. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/decomposition_chat.py +0 -0
  120. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/README.md +0 -0
  121. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-agent.service +0 -0
  122. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-backup.service +0 -0
  123. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-backup.timer +0 -0
  124. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-db-backup.service +0 -0
  125. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-db-backup.sh +0 -0
  126. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-db-backup.timer +0 -0
  127. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-dr-verify.service +0 -0
  128. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-dr-verify.timer +0 -0
  129. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-drive-queue.service +0 -0
  130. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-drive-queue.timer +0 -0
  131. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-failure-notify.service +0 -0
  132. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-fleet-watchdog.service +0 -0
  133. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-fleet-watchdog.timer +0 -0
  134. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-notify.service +0 -0
  135. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-notify.timer +0 -0
  136. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-release-propagate.service +0 -0
  137. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-release-propagate.timer +0 -0
  138. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-release-window.service +0 -0
  139. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-release-window.timer +0 -0
  140. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-serve.service +0 -0
  141. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-web-dist-build.service +0 -0
  142. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-web-dist-build.timer +0 -0
  143. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-web.service +0 -0
  144. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy_manifest.py +0 -0
  145. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy_units.py +0 -0
  146. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deprecation_telemetry.py +0 -0
  147. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deps.py +0 -0
  148. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/diagnose.py +0 -0
  149. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/dispatch.py +0 -0
  150. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/dispatch_liveness.py +0 -0
  151. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/dist_name.py +0 -0
  152. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/dr_promote.py +0 -0
  153. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/dr_verify.py +0 -0
  154. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/drive.py +0 -0
  155. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/drive_state.py +0 -0
  156. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/events.py +0 -0
  157. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/failure_class.py +0 -0
  158. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/failure_classifier.py +0 -0
  159. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/filelock.py +0 -0
  160. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/fleet_config_health.py +0 -0
  161. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/forge_availability.py +0 -0
  162. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/freshness.py +0 -0
  163. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/gate_a.py +0 -0
  164. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/gate_b.py +0 -0
  165. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/gate_snapshot.py +0 -0
  166. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/gates.py +0 -0
  167. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/gen_board_fixture.py +0 -0
  168. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/github_ops.py +0 -0
  169. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/github_throttle.py +0 -0
  170. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/goal.py +0 -0
  171. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/graph_health.py +0 -0
  172. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/__init__.py +0 -0
  173. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/aggregate.py +0 -0
  174. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/__init__.py +0 -0
  175. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/_ci_pin.py +0 -0
  176. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/agent_install.py +0 -0
  177. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/cargo_targets.py +0 -0
  178. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/claude_binary.py +0 -0
  179. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/config_drift.py +0 -0
  180. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/coord_tui_ci_pin.py +0 -0
  181. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/coord_web_ci_pin.py +0 -0
  182. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/deploy_lane_facts.py +0 -0
  183. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/disk.py +0 -0
  184. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/fleet_board.py +0 -0
  185. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/fleet_deploy_lanes.py +0 -0
  186. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/fleet_phantom.py +0 -0
  187. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/fleet_unit_drift.py +0 -0
  188. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/graph.py +0 -0
  189. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/graphify_cli.py +0 -0
  190. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/index_lock.py +0 -0
  191. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/issues_sync_staleness.py +0 -0
  192. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/plan_usage.py +0 -0
  193. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/pr_churn.py +0 -0
  194. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/release_cordon.py +0 -0
  195. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/repo_state.py +0 -0
  196. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/spawned_coord.py +0 -0
  197. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/stalled_pipeline.py +0 -0
  198. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/timer_active.py +0 -0
  199. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/toolchain.py +0 -0
  200. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/unit_drift.py +0 -0
  201. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/unit_enablement.py +0 -0
  202. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/wedged_drive_queue.py +0 -0
  203. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/worktrees.py +0 -0
  204. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/cli.py +0 -0
  205. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/context.py +0 -0
  206. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/fleet_snapshot.py +0 -0
  207. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/models.py +0 -0
  208. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/pypi.py +0 -0
  209. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/registry.py +0 -0
  210. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/render.py +0 -0
  211. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/units.py +0 -0
  212. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/hooks.py +0 -0
  213. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/housekeeping.py +0 -0
  214. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/interactive.py +0 -0
  215. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/invariant_alarms.py +0 -0
  216. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/issue_store.py +0 -0
  217. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/issues_sync_status.py +0 -0
  218. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/liveness_auditor.py +0 -0
  219. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/machine_fault.py +0 -0
  220. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/machine_metrics.py +0 -0
  221. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/machine_onboard.py +0 -0
  222. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/machine_pause.py +0 -0
  223. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/machine_stats.py +0 -0
  224. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/merge_queue.py +0 -0
  225. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/milestone_chat.py +0 -0
  226. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/milestone_dispatch.py +0 -0
  227. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/milestone_gate.py +0 -0
  228. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/milestone_order.py +0 -0
  229. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/mock_author.py +0 -0
  230. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/models.py +0 -0
  231. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/network.py +0 -0
  232. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/new_issue_chat.py +0 -0
  233. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/notifier/__init__.py +0 -0
  234. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/notifier/baseline.py +0 -0
  235. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/notifier/cli.py +0 -0
  236. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/notifier/collect.py +0 -0
  237. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/notifier/digest.py +0 -0
  238. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/notifier/models.py +0 -0
  239. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/notifier/predicate.py +0 -0
  240. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/notifier/service.py +0 -0
  241. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/notifier/store.py +0 -0
  242. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/notifier/transport.py +0 -0
  243. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/notify.py +0 -0
  244. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/openapi.py +0 -0
  245. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/overlap_fence.py +0 -0
  246. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/overlap_predict.py +0 -0
  247. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/parentage.py +0 -0
  248. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/parentage_github.py +0 -0
  249. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/pipeline.py +0 -0
  250. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/plan_parser.py +0 -0
  251. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/plans.py +0 -0
  252. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/platform_paths.py +0 -0
  253. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/portal_bridge.py +0 -0
  254. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/portal_store.py +0 -0
  255. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/portal_sync.py +0 -0
  256. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/pr_body_lint.py +0 -0
  257. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/prereqs.py +0 -0
  258. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/progress.py +0 -0
  259. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/providers/__init__.py +0 -0
  260. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/providers/base.py +0 -0
  261. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/providers/claude.py +0 -0
  262. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/providers/claude_pty.py +0 -0
  263. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/providers/opencode.py +0 -0
  264. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/queue_diagnose.py +0 -0
  265. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/reconcile.py +0 -0
  266. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/reconcile_tick.py +0 -0
  267. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/refine_chat.py +0 -0
  268. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/release_cordon.py +0 -0
  269. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/release_propagate.py +0 -0
  270. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/release_verify.py +0 -0
  271. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/release_window.py +0 -0
  272. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/repo_dormancy.py +0 -0
  273. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/repo_edit.py +0 -0
  274. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/repo_onboard.py +0 -0
  275. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/reports.py +0 -0
  276. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/rest_schema.py +0 -0
  277. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/restart_cmd.py +0 -0
  278. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/revalidate.py +0 -0
  279. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/review.py +0 -0
  280. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/scorecard.py +0 -0
  281. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/self_health.py +0 -0
  282. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/skills/coord-dispatch-verbs/SKILL.md +0 -0
  283. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/skills/drive-queue-preflight/SKILL.md +0 -0
  284. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/skills/fleet-restart-safety/SKILL.md +0 -0
  285. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/skills/merge-stuck-triage/SKILL.md +0 -0
  286. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/skills/pipeline-limbo-triage/SKILL.md +0 -0
  287. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/skills/portal-followup/SKILL.md +0 -0
  288. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/skills/release-now/SKILL.md +0 -0
  289. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/skills/review-verdict-recovery/SKILL.md +0 -0
  290. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/skills/tui-quadraui-workflow/SKILL.md +0 -0
  291. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/skills/update-issue/SKILL.md +0 -0
  292. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/smoke.py +0 -0
  293. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/spend_ceiling.py +0 -0
  294. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/split_work.py +0 -0
  295. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/sql.py +0 -0
  296. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/stage_projection.py +0 -0
  297. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/state.py +0 -0
  298. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/store_migrate.py +0 -0
  299. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/store_parity.py +0 -0
  300. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/templates/deploy-cloudflare.node.yml +0 -0
  301. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/test_author.py +0 -0
  302. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/test_chat.py +0 -0
  303. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/test_orchestrator.py +0 -0
  304. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/test_report.py +0 -0
  305. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/tui_release.py +0 -0
  306. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/uat_checks.py +0 -0
  307. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/usage.py +0 -0
  308. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/usage_limits.py +0 -0
  309. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/usage_rollup.py +0 -0
  310. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/worker_events.py +0 -0
  311. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coordinator.example.yml +0 -0
  312. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-agent.service +0 -0
  313. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-backup.service +0 -0
  314. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-backup.timer +0 -0
  315. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-db-backup.service +0 -0
  316. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-db-backup.sh +0 -0
  317. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-db-backup.timer +0 -0
  318. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-dr-verify.service +0 -0
  319. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-dr-verify.timer +0 -0
  320. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-drive-queue.service +0 -0
  321. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-drive-queue.timer +0 -0
  322. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-failure-notify.service +0 -0
  323. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-failure-notify.sh +0 -0
  324. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-fleet-watchdog.service +0 -0
  325. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-fleet-watchdog.timer +0 -0
  326. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-notify.service +0 -0
  327. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-notify.timer +0 -0
  328. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-release-propagate.service +0 -0
  329. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-release-propagate.timer +0 -0
  330. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-release-window.service +0 -0
  331. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-release-window.timer +0 -0
  332. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-serve.service +0 -0
  333. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-web-dist-build.service +0 -0
  334. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-web-dist-build.sh +0 -0
  335. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-web-dist-build.timer +0 -0
  336. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-web-rollback.sh +0 -0
  337. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-web.service +0 -0
  338. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/node-shim.sh +0 -0
  339. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/ADR_COORD_TUI_CI.md +0 -0
  340. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/ADR_COORD_WEB_ACCEPTANCE_SUITE.md +0 -0
  341. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/ADR_COORD_WEB_CI.md +0 -0
  342. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/ADR_COORD_WEB_DIST.md +0 -0
  343. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/ADR_PY_RUST_MIRRORS.md +0 -0
  344. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/AGENT_OPERATIONS.md +0 -0
  345. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/ARCHITECTURE.md +0 -0
  346. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/ARCH_SECURITY_GATES.md +0 -0
  347. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/COCKPIT.md +0 -0
  348. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/CONTROL_CENTER.md +0 -0
  349. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/COST_DISCIPLINE.md +0 -0
  350. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/CROSS_PLATFORM.md +0 -0
  351. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/CUSTOMER_FACING_APPS.md +0 -0
  352. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/CUSTOMER_PORTAL.md +0 -0
  353. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/DATA_STORE_SELECTION.md +0 -0
  354. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/DISASTER_RECOVERY.md +0 -0
  355. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/DRIVE_QUEUE.md +0 -0
  356. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/EPHEMERAL_WORKERS.md +0 -0
  357. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/FORGE_MIGRATION.md +0 -0
  358. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/GRAPHIFY_SETUP.md +0 -0
  359. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/ISSUE_GUIDANCE.md +0 -0
  360. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/MAC_MINI.md +0 -0
  361. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
  362. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/NOTIFIER.md +0 -0
  363. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/OPENCODE_VERIFICATION.md +0 -0
  364. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/OPERATING_GOTCHAS.md +0 -0
  365. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/OPERATOR_GUIDES.md +0 -0
  366. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/ORACLE_LOOP.md +0 -0
  367. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/PHONE_WEBAPP.md +0 -0
  368. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/PIPELINE_V2.md +0 -0
  369. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/PLATFORM_EVOLUTION.md +0 -0
  370. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/SECOND_BACKEND.md +0 -0
  371. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/STORE_SERVICE.md +0 -0
  372. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/TEST_FIRST_BUG_LANE.md +0 -0
  373. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/WEB_CONTROL_CENTER.md +0 -0
  374. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/WSL_WINDOWS_WORKER.md +0 -0
  375. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/mocks/web/README.md +0 -0
  376. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/mocks/web/_tokens.css +0 -0
  377. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/mocks/web/issue-detail.html +0 -0
  378. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/mocks/web/pipeline-narrow.html +0 -0
  379. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/mocks/web/pipeline-wide.html +0 -0
  380. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/graphify-out/.gitignore +0 -0
  381. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/install-agent.sh +0 -0
  382. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/pyproject.toml +0 -0
  383. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/audit_review_verdict_overrides.py +0 -0
  384. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/azure-workers/bootstrap-shared.sh +0 -0
  385. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/azure-workers/build-worker-image.sh +0 -0
  386. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/azure-workers/coordinator-machine.py +0 -0
  387. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/azure-workers/dr-down.sh +0 -0
  388. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/azure-workers/dr-up.sh +0 -0
  389. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/azure-workers/epic-down.sh +0 -0
  390. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/azure-workers/epic-up.sh +0 -0
  391. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/azure-workers/preflight.sh +0 -0
  392. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/azure-workers/provision-server.sh +0 -0
  393. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/azure-workers/provision-worker.sh +0 -0
  394. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
  395. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/azure-workers/tailnet-acl.hujson +0 -0
  396. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/azure-workers/throwaway-vm.sh +0 -0
  397. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/azure-workers/verify-github-token.sh +0 -0
  398. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/check_gh_argv_containment.py +0 -0
  399. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/codegen.py +0 -0
  400. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/coord-test-runner.sh +0 -0
  401. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/coord-tui-scaffold/.github/coord-ci-acceptance.yml +0 -0
  402. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/coord-tui-scaffold/.github/workflows/cargo-test.yml +0 -0
  403. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/coord-tui-scaffold/.github/workflows/codegen-drift.yml +0 -0
  404. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/coord-tui-scaffold/CLAUDE.md +0 -0
  405. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/coord-venv-rollback.sh +0 -0
  406. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/drive-batch.sh +0 -0
  407. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/extract-coord-tui.sh +0 -0
  408. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/fleet_watchdog.py +0 -0
  409. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/gen_board_fixture.py +0 -0
  410. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/gen_mock_index.py +0 -0
  411. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/lib/provision-core.sh +0 -0
  412. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/next_release_tag.py +0 -0
  413. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/provision-machine.sh +0 -0
  414. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/run_tests_in_populated_home.sh +0 -0
  415. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/run_tests_without_gh.sh +0 -0
  416. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/setup-macmini.sh +0 -0
  417. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/smoke_437_interactive.py +0 -0
  418. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/verify-provision-noble.sh +0 -0
  419. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/verify_878_review_capture.py +0 -0
  420. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/verify_release_published.py +0 -0
  421. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/verify_release_wheel.py +0 -0
  422. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/setup.cfg +0 -0
  423. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/SMOKE_SET.md +0 -0
  424. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/__init__.py +0 -0
  425. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/acceptance/ms-37/conftest.py +0 -0
  426. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/acceptance/ms-37/contract.md +0 -0
  427. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/acceptance/ms-37/manifest.yml +0 -0
  428. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
  429. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
  430. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/acceptance/ms-51/contract.md +0 -0
  431. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
  432. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
  433. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/acceptance/ms-51/manifest.yml +0 -0
  434. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
  435. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/acceptance/ms-51/tsconfig.json +0 -0
  436. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
  437. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/backends.py +0 -0
  438. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/conftest.py +0 -0
  439. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/board-pipeline-basic.json +0 -0
  440. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
  441. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
  442. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
  443. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/opencode_run_sample.jsonl +0 -0
  444. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/playwright/all_pass.json +0 -0
  445. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/playwright/global_setup_crash.json +0 -0
  446. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/playwright/mixed_fail.json +0 -0
  447. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/playwright/retry_then_pass.json +0 -0
  448. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
  449. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/playwright/skip.json +0 -0
  450. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/playwright/truncated.json +0 -0
  451. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
  452. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
  453. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
  454. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
  455. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
  456. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
  457. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
  458. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
  459. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_acceptance.py +0 -0
  460. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_acceptance_drivers.py +0 -0
  461. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent.py +0 -0
  462. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_api_error.py +0 -0
  463. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_app.py +0 -0
  464. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_branch_base.py +0 -0
  465. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_branch_capture.py +0 -0
  466. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_config_free_1712.py +0 -0
  467. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_deploy_units_endpoint.py +0 -0
  468. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_dirty_worktree.py +0 -0
  469. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_drive_queue_reconcile_2373.py +0 -0
  470. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_graph_self_heal.py +0 -0
  471. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_health_h3.py +0 -0
  472. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_idle_restart.py +0 -0
  473. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_push_failure.py +0 -0
  474. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_reap.py +0 -0
  475. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_repos_and_pull.py +0 -0
  476. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_restart_services_endpoint.py +0 -0
  477. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_skills_self_heal.py +0 -0
  478. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_startup_diagnostics.py +0 -0
  479. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_update.py +0 -0
  480. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_update_bluegreen.py +0 -0
  481. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_usage_limit.py +0 -0
  482. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_zero_commit.py +0 -0
  483. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_ambient_home_isolation.py +0 -0
  484. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_approve_capability_reroute_3241.py +0 -0
  485. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_approve_dependency_busy_2804.py +0 -0
  486. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_approve_reject_plan.py +0 -0
  487. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_approve_usage_gate.py +0 -0
  488. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_approved_work_2532.py +0 -0
  489. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_approved_work_2996.py +0 -0
  490. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_assignment_already_recorded_daemon.py +0 -0
  491. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_audit_log.py +0 -0
  492. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_audit_outcome.py +0 -0
  493. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_audit_query.py +0 -0
  494. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_auto_loop.py +0 -0
  495. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_auto_release_publish_2035.py +0 -0
  496. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_backend_selection.py +0 -0
  497. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_backup.py +0 -0
  498. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_base_checkout_restore.py +0 -0
  499. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_block_log.py +0 -0
  500. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_board_cap_762.py +0 -0
  501. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_board_fixture.py +0 -0
  502. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_board_service.py +0 -0
  503. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_board_state.py +0 -0
  504. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_board_wire.py +0 -0
  505. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_brain.py +0 -0
  506. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_branch_model.py +0 -0
  507. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_bug_intake.py +0 -0
  508. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_build_worker_image_env_update.py +0 -0
  509. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cargo_cache.py +0 -0
  510. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_check_gh_argv_containment.py +0 -0
  511. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_ci_acceptance_gate_1950.py +0 -0
  512. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_ci_fix.py +0 -0
  513. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_ci_github.py +0 -0
  514. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_ci_gitlab.py +0 -0
  515. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_ci_parity_2091.py +0 -0
  516. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_ci_store.py +0 -0
  517. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_claim.py +0 -0
  518. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_claude_md_budget.py +0 -0
  519. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_claude_setup_token.py +0 -0
  520. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_acceptance.py +0 -0
  521. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_assign.py +0 -0
  522. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
  523. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_assign_interactive_remote.py +0 -0
  524. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_assign_provider.py +0 -0
  525. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_assign_repo_drift_2219.py +0 -0
  526. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_audit.py +0 -0
  527. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_chat_continue.py +0 -0
  528. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_ci.py +0 -0
  529. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_codegen.py +0 -0
  530. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_decide.py +0 -0
  531. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_diagnose_capability_rules.py +0 -0
  532. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_diagnose_config_provenance.py +0 -0
  533. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_diagnose_forge_availability.py +0 -0
  534. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_diagnose_graph.py +0 -0
  535. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_diagnose_self.py +0 -0
  536. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_diagnose_test_coverage.py +0 -0
  537. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_doctor.py +0 -0
  538. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_doctor_config_free_1801.py +0 -0
  539. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
  540. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_doctor_store_backend_3084.py +0 -0
  541. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_drive.py +0 -0
  542. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_drive_queue.py +0 -0
  543. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_escalate.py +0 -0
  544. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_fix_headless_review.py +0 -0
  545. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_gate_a.py +0 -0
  546. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_install_drift.py +0 -0
  547. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_install_skills.py +0 -0
  548. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_issue_comment.py +0 -0
  549. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_issue_create_label.py +0 -0
  550. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_issue_reopen.py +0 -0
  551. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_issue_view_list.py +0 -0
  552. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_merge.py +0 -0
  553. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_milestone_assign.py +0 -0
  554. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_milestone_capture.py +0 -0
  555. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_milestone_chat_add_child.py +0 -0
  556. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_milestone_dispatch.py +0 -0
  557. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_milestone_gate_b.py +0 -0
  558. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_milestone_gate_c.py +0 -0
  559. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_milestone_order.py +0 -0
  560. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
  561. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_milestone_ship.py +0 -0
  562. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_network.py +0 -0
  563. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_new_issue_chat.py +0 -0
  564. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_plans.py +0 -0
  565. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_portal.py +0 -0
  566. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_pr.py +0 -0
  567. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_pull_artifact.py +0 -0
  568. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_queue.py +0 -0
  569. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_reattach_sessions.py +0 -0
  570. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_refine_board.py +0 -0
  571. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_release_preflight.py +0 -0
  572. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_release_propagate.py +0 -0
  573. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_release_window.py +0 -0
  574. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_repo_2220.py +0 -0
  575. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_review_test_author_tracking_epic_2639.py +0 -0
  576. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_scorecard.py +0 -0
  577. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_serve_store_backend_3084.py +0 -0
  578. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_set_review_findings.py +0 -0
  579. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_status_advisory_terminal.py +0 -0
  580. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_status_contested_tag.py +0 -0
  581. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_status_invariant_alarms.py +0 -0
  582. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_status_machine_fault.py +0 -0
  583. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_status_merge_queue.py +0 -0
  584. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_status_provider.py +0 -0
  585. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_status_retried_3340.py +0 -0
  586. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_status_review_finalizing.py +0 -0
  587. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_status_supervisor_3366.py +0 -0
  588. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_status_test_failed_tag.py +0 -0
  589. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_status_usage_limit.py +0 -0
  590. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_sync_comments_873.py +0 -0
  591. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_test_plan.py +0 -0
  592. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_track.py +0 -0
  593. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_tui_update.py +0 -0
  594. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_wait.py +0 -0
  595. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_client.py +0 -0
  596. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_client_base_install.py +0 -0
  597. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_client_config_cache_atomic_3052.py +0 -0
  598. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_client_resource_migration_1946.py +0 -0
  599. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_commands_common.py +0 -0
  600. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_comments.py +0 -0
  601. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_completion_summary.py +0 -0
  602. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_config.py +0 -0
  603. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_config_acceptance.py +0 -0
  604. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_config_audit.py +0 -0
  605. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_config_drift_check.py +0 -0
  606. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_config_pricing.py +0 -0
  607. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
  608. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_config_usage_gate.py +0 -0
  609. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_confirm_test.py +0 -0
  610. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_conflict_fix.py +0 -0
  611. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_conflict_fix_semantic.py +0 -0
  612. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_coord_log_daemon_fallback_2547.py +0 -0
  613. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_coord_test.py +0 -0
  614. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_coord_test_runner_acceptance_toolchain_2936.py +0 -0
  615. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_coord_test_runner_baseline.py +0 -0
  616. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_coord_test_runner_populated_home.py +0 -0
  617. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_coord_test_runner_routing.py +0 -0
  618. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_coord_test_runner_toolchain.py +0 -0
  619. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_coord_uat.py +0 -0
  620. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_coord_web_sse_restart_live.py +0 -0
  621. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_coordinator_machine.py +0 -0
  622. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cross_platform_imports.py +0 -0
  623. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_dao.py +0 -0
  624. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_dashboard.py +0 -0
  625. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_dashboard_api.py +0 -0
  626. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_dashboard_fixture.py +0 -0
  627. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_dashboard_server.py +0 -0
  628. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_dashboard_terminal.py +0 -0
  629. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_dashboard_terminal_live.py +0 -0
  630. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_db.py +0 -0
  631. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_dead_end.py +0 -0
  632. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_decomposition_chat.py +0 -0
  633. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_deploy_coord_db_backup.py +0 -0
  634. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_deploy_coord_web_dist.py +0 -0
  635. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_deploy_coord_web_rollback.py +0 -0
  636. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_deploy_db_backup_unit.py +0 -0
  637. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_deploy_drive_queue_unit.py +0 -0
  638. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_deploy_failure_notify_unit.py +0 -0
  639. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_deploy_manifest.py +0 -0
  640. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_deploy_notify_unit.py +0 -0
  641. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_deploy_units_lane.py +0 -0
  642. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_deploy_web_unit.py +0 -0
  643. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_deprecation_telemetry.py +0 -0
  644. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_deps.py +0 -0
  645. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_diagnose.py +0 -0
  646. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_dispatch.py +0 -0
  647. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_dispatch_liveness.py +0 -0
  648. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_dispatch_target_validation.py +0 -0
  649. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_dispatch_workers.py +0 -0
  650. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_dist_name.py +0 -0
  651. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_done_housekeeping.py +0 -0
  652. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_dr_azure_scripts.py +0 -0
  653. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_dr_promote.py +0 -0
  654. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_dr_verify.py +0 -0
  655. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_drive.py +0 -0
  656. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_drive_machine_fault.py +0 -0
  657. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_drive_queue.py +0 -0
  658. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_drive_queue_blocked_rendering.py +0 -0
  659. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_drive_queue_launch_argv.py +0 -0
  660. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_drive_queue_max_parallel_config.py +0 -0
  661. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_drive_queue_max_parallel_per_repo_config.py +0 -0
  662. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_drive_queue_roll_pending.py +0 -0
  663. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_drive_queue_self_cordon_escalation.py +0 -0
  664. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_drive_state.py +0 -0
  665. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_drive_tmux.py +0 -0
  666. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_epic_up_capability_detection.py +0 -0
  667. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
  668. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_epic_up_image_provenance.py +0 -0
  669. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_errors.py +0 -0
  670. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_events.py +0 -0
  671. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_failure_class.py +0 -0
  672. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_failure_classifier.py +0 -0
  673. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_filelock.py +0 -0
  674. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
  675. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_fix_escalation_classifier.py +0 -0
  676. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_fix_of_force_override.py +0 -0
  677. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_fleet_config_health.py +0 -0
  678. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_fleet_health_probes.py +0 -0
  679. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_fleet_health_snapshot.py +0 -0
  680. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_fleet_watchdog.py +0 -0
  681. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_forge_availability.py +0 -0
  682. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_freshness.py +0 -0
  683. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_gate_a.py +0 -0
  684. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_gate_b.py +0 -0
  685. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_gate_snapshot_staleness.py +0 -0
  686. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_gates.py +0 -0
  687. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_gather_fleet_tmux_sessions.py +0 -0
  688. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_gen_mock_index.py +0 -0
  689. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_generated_rust_fixture.py +0 -0
  690. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_generated_rust_requests.py +0 -0
  691. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_generated_types_fixture.py +0 -0
  692. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_github_ops.py +0 -0
  693. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_github_throttle.py +0 -0
  694. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_goal.py +0 -0
  695. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_graph_health.py +0 -0
  696. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_graph_selfheal_absent_2237.py +0 -0
  697. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_handoff.py +0 -0
  698. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_checks.py +0 -0
  699. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_cli.py +0 -0
  700. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_cli_graph.py +0 -0
  701. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_config.py +0 -0
  702. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_context.py +0 -0
  703. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_coord_tui_ci_pin.py +0 -0
  704. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_coord_web_ci_pin.py +0 -0
  705. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_deploy_lane_facts.py +0 -0
  706. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_fix.py +0 -0
  707. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_incident_regression.py +0 -0
  708. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_issues_sync_staleness.py +0 -0
  709. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_pr_churn.py +0 -0
  710. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_pypi.py +0 -0
  711. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_registry.py +0 -0
  712. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_release_cordon_probe.py +0 -0
  713. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_timer_active.py +0 -0
  714. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_toolchain.py +0 -0
  715. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_unit_drift.py +0 -0
  716. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_unit_enablement.py +0 -0
  717. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_wedged_drive_queue.py +0 -0
  718. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_hooks.py +0 -0
  719. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_housekeeping.py +0 -0
  720. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_human_attended_437.py +0 -0
  721. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_init.py +0 -0
  722. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_install_agent_venv_2911.py +0 -0
  723. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_integration.py +0 -0
  724. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_interactive_briefing_echo.py +0 -0
  725. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_interactive_pane_log_2541.py +0 -0
  726. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_interactive_prefill_state.py +0 -0
  727. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_interactive_session_relaunch.py +0 -0
  728. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_interactive_test_verdict_backstop.py +0 -0
  729. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_interactive_token_attribution.py +0 -0
  730. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_interactive_worktree.py +0 -0
  731. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_invariant_alarms.py +0 -0
  732. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_issue_store_seam.py +0 -0
  733. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_issues_sync_status.py +0 -0
  734. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_liveness_auditor.py +0 -0
  735. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_liveness_notify.py +0 -0
  736. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_lock_contention_ratchet.py +0 -0
  737. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_machine_fault.py +0 -0
  738. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_machine_metrics.py +0 -0
  739. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_machine_onboard.py +0 -0
  740. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_machine_pause.py +0 -0
  741. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_machine_stats.py +0 -0
  742. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_merge_queue.py +0 -0
  743. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_merge_verify.py +0 -0
  744. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_milestone_chat.py +0 -0
  745. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_milestone_dispatch.py +0 -0
  746. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_milestone_gate.py +0 -0
  747. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_milestone_order.py +0 -0
  748. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_milestone_seam.py +0 -0
  749. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_mock_author.py +0 -0
  750. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_model_tiering.py +0 -0
  751. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_models.py +0 -0
  752. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_models_config_labels.py +0 -0
  753. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_needs_attention.py +0 -0
  754. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_network.py +0 -0
  755. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_new_issue_chat.py +0 -0
  756. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_next_release_tag.py +0 -0
  757. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_node_shim.py +0 -0
  758. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_notifier_baseline.py +0 -0
  759. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_notifier_cli.py +0 -0
  760. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_notifier_collect.py +0 -0
  761. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_notifier_config.py +0 -0
  762. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_notifier_drive_seam.py +0 -0
  763. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_notifier_isolation.py +0 -0
  764. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_notifier_predicate.py +0 -0
  765. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_notifier_quiet_hours.py +0 -0
  766. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_notifier_service.py +0 -0
  767. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_notify.py +0 -0
  768. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_notify_drain.py +0 -0
  769. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_openapi.py +0 -0
  770. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_operational_defaults.py +0 -0
  771. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_overlap_fence.py +0 -0
  772. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_overlap_predict.py +0 -0
  773. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_packaged_deploy_units.py +0 -0
  774. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_parentage.py +0 -0
  775. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_paste_landed.py +0 -0
  776. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_phantom_heal_venv_independence_2570.py +0 -0
  777. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_pipeline.py +0 -0
  778. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_plan_followup_approve_plan_command.py +0 -0
  779. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_plan_followup_pr_command.py +0 -0
  780. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_plan_followup_review_command.py +0 -0
  781. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_plan_only.py +0 -0
  782. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_plan_parser.py +0 -0
  783. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_platform_paths.py +0 -0
  784. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_portal_bridge.py +0 -0
  785. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_portal_config.py +0 -0
  786. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_portal_store.py +0 -0
  787. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_portal_sync.py +0 -0
  788. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_pr_body_lint.py +0 -0
  789. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_prereqs.py +0 -0
  790. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_production_db_guard.py +0 -0
  791. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_progress.py +0 -0
  792. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_provider_seam.py +0 -0
  793. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_providers.py +0 -0
  794. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_providers_config_labels.py +0 -0
  795. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_providers_pty.py +0 -0
  796. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_provision_core.py +0 -0
  797. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_provision_machine.py +0 -0
  798. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_py_rust_mirror_inventory.py +0 -0
  799. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_quiet_hours.py +0 -0
  800. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_quiet_hours_store_2146.py +0 -0
  801. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_reap_merged_sessions.py +0 -0
  802. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_reap_stale_interactive_tick.py +0 -0
  803. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_reconcile.py +0 -0
  804. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_reconcile_branch.py +0 -0
  805. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_reconcile_completions.py +0 -0
  806. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_reconcile_late_agent_reports_2547.py +0 -0
  807. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_reconcile_merges.py +0 -0
  808. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_reconcile_no_agent_record.py +0 -0
  809. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_reconcile_tick.py +0 -0
  810. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_reconcile_usage_limit_done.py +0 -0
  811. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_refine_chat.py +0 -0
  812. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_release_cordon_2101.py +0 -0
  813. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
  814. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_release_cordon_deadlock_2240.py +0 -0
  815. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_release_cordon_drain_stall_3336.py +0 -0
  816. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_release_cordon_stuck_2490.py +0 -0
  817. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_release_propagate.py +0 -0
  818. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_release_propagate_threshold.py +0 -0
  819. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_release_roll_between_legs_2854.py +0 -0
  820. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_release_roll_window_handoff.py +0 -0
  821. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_release_unified_1242.py +0 -0
  822. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_release_verify.py +0 -0
  823. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_release_window.py +0 -0
  824. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_remote_auto_prune.py +0 -0
  825. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_remote_interactive_reaper.py +0 -0
  826. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_repo_add.py +0 -0
  827. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_repo_dormancy.py +0 -0
  828. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_repo_edit_2220.py +0 -0
  829. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_repo_graph_fleet_2237.py +0 -0
  830. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_repo_max_parallel_3423.py +0 -0
  831. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_repo_onboard_2220.py +0 -0
  832. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_report_result_push.py +0 -0
  833. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_reports.py +0 -0
  834. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_restart_cmd.py +0 -0
  835. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_retry.py +0 -0
  836. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_retry_advisory_1606.py +0 -0
  837. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_retry_escalation_classify_3360.py +0 -0
  838. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_retry_type_1636.py +0 -0
  839. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_revalidate.py +0 -0
  840. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_review.py +0 -0
  841. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_review_end_review_without_verdict.py +0 -0
  842. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_review_parse_failure_diagnostic.py +0 -0
  843. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_review_reaffirm.py +0 -0
  844. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_review_state.py +0 -0
  845. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_review_verdict_backstop.py +0 -0
  846. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_review_verdict_override_audit.py +0 -0
  847. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_review_verdict_relay.py +0 -0
  848. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_review_zero_commits.py +0 -0
  849. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_scoped_review_wiring.py +0 -0
  850. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_scorecard.py +0 -0
  851. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_self_health.py +0 -0
  852. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_serve_app.py +0 -0
  853. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_serve_app_board_trim.py +0 -0
  854. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_serve_rest_routes.py +0 -0
  855. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_session.py +0 -0
  856. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_slice_issue_attribution.py +0 -0
  857. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_smoke.py +0 -0
  858. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_smoke_fanout_manifest_3333.py +0 -0
  859. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_smoke_live_checkout_restore.py +0 -0
  860. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_smoke_workflow.py +0 -0
  861. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_spend_ceiling.py +0 -0
  862. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_spend_ceiling_coordinator.py +0 -0
  863. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_split.py +0 -0
  864. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_split_work.py +0 -0
  865. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_sql_dialect.py +0 -0
  866. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_sqlite_connect_ratchet.py +0 -0
  867. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_stage_projection.py +0 -0
  868. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_stale_busy_reviewer_697.py +0 -0
  869. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_stalled_pipeline.py +0 -0
  870. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_state.py +0 -0
  871. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_state_review_findings_daemon.py +0 -0
  872. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_status_fleet_footer.py +0 -0
  873. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_stop_1567.py +0 -0
  874. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_store_contract.py +0 -0
  875. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_store_migrate.py +0 -0
  876. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_stuck.py +0 -0
  877. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_stuck_test_state_watchdog_2803.py +0 -0
  878. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_terminal_command.py +0 -0
  879. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_test_author.py +0 -0
  880. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_test_chat.py +0 -0
  881. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_test_orchestrator.py +0 -0
  882. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_test_report.py +0 -0
  883. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_test_verdict_parsing.py +0 -0
  884. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_test_verdict_transcript_floor.py +0 -0
  885. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_text_io_encoding_audit.py +0 -0
  886. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_thin_client_board_audit.py +0 -0
  887. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_thin_client_config_load_1080.py +0 -0
  888. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_thin_client_daemon_routing_906.py +0 -0
  889. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_throwaway_vm.py +0 -0
  890. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_tmux_host.py +0 -0
  891. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_tmux_session.py +0 -0
  892. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_transcript_floor.py +0 -0
  893. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_uat_checks.py +0 -0
  894. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_usage.py +0 -0
  895. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_usage_limits.py +0 -0
  896. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_usage_rollup.py +0 -0
  897. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_venv_live_install_2121.py +0 -0
  898. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_version_single_source.py +0 -0
  899. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_watch.py +0 -0
  900. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
  901. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_worker_env_venv_isolation.py +0 -0
  902. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_worker_events.py +0 -0
  903. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_worker_image_pin_sync.py +0 -0
  904. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_worker_safety.py +0 -0
  905. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_worker_test_scoping.py +0 -0
  906. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_worktree.py +0 -0
  907. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_worktree_rmtree_chokepoint.py +0 -0
  908. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_write_parity.py +0 -0
  909. {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/write_parity.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-coordinator
3
- Version: 0.5.511
3
+ Version: 0.5.513
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.511
3
+ Version: 0.5.513
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
@@ -76,6 +76,7 @@ coord/dr_promote.py
76
76
  coord/dr_verify.py
77
77
  coord/drive.py
78
78
  coord/drive_queue.py
79
+ coord/drive_sessions_snapshot.py
79
80
  coord/drive_state.py
80
81
  coord/events.py
81
82
  coord/failure_class.py
@@ -509,6 +510,7 @@ tests/test_cli_issue_comment.py
509
510
  tests/test_cli_issue_create_label.py
510
511
  tests/test_cli_issue_reopen.py
511
512
  tests/test_cli_issue_view_list.py
513
+ tests/test_cli_issues.py
512
514
  tests/test_cli_merge.py
513
515
  tests/test_cli_milestone_assign.py
514
516
  tests/test_cli_milestone_capture.py
@@ -622,6 +624,7 @@ tests/test_drive_queue_max_parallel_config.py
622
624
  tests/test_drive_queue_max_parallel_per_repo_config.py
623
625
  tests/test_drive_queue_roll_pending.py
624
626
  tests/test_drive_queue_self_cordon_escalation.py
627
+ tests/test_drive_sessions_snapshot.py
625
628
  tests/test_drive_state.py
626
629
  tests/test_drive_tmux.py
627
630
  tests/test_epic_up_capability_detection.py
@@ -136,6 +136,7 @@
136
136
  "coord/dr_verify.py",
137
137
  "coord/drive.py",
138
138
  "coord/drive_queue.py",
139
+ "coord/drive_sessions_snapshot.py",
139
140
  "coord/drive_state.py",
140
141
  "coord/events.py",
141
142
  "coord/failure_class.py",
@@ -535,6 +536,7 @@
535
536
  "tests/test_cli_issue_create_label.py",
536
537
  "tests/test_cli_issue_reopen.py",
537
538
  "tests/test_cli_issue_view_list.py",
539
+ "tests/test_cli_issues.py",
538
540
  "tests/test_cli_merge.py",
539
541
  "tests/test_cli_milestone_assign.py",
540
542
  "tests/test_cli_milestone_capture.py",
@@ -648,6 +650,7 @@
648
650
  "tests/test_drive_queue_max_parallel_per_repo_config.py",
649
651
  "tests/test_drive_queue_roll_pending.py",
650
652
  "tests/test_drive_queue_self_cordon_escalation.py",
653
+ "tests/test_drive_sessions_snapshot.py",
651
654
  "tests/test_drive_state.py",
652
655
  "tests/test_drive_tmux.py",
653
656
  "tests/test_epic_up_capability_detection.py",
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "0.5.513",
3
+ "distance": 0,
4
+ "node": "g62d2f7e1d36394c598063480dfdc2028204abbf1",
5
+ "dirty": false,
6
+ "branch": "HEAD",
7
+ "node_date": "2026-09-21"
8
+ }
@@ -62,6 +62,11 @@ import typing
62
62
  from collections.abc import Mapping
63
63
  from typing import Any, Union
64
64
 
65
+ # #3428: the `concurrency` block's `occupancy_state` value set — owned by the
66
+ # snapshot module that produces it (see `BoardConcurrency` below). Safe at
67
+ # module scope: that module imports nothing from `coord` at import time.
68
+ from coord.drive_sessions_snapshot import OCCUPANCY_UNOBSERVED
69
+
65
70
  #: What the read path actually hands the projection. ``sqlite3.Row`` is *not*
66
71
  #: a ``Mapping`` (see :func:`_as_dict`), so it has to be named explicitly.
67
72
  RowLike = Union[Mapping[str, Any], sqlite3.Row]
@@ -310,6 +315,236 @@ class BoardDriveQueueEntry:
310
315
  apply_verdict_at: float | None = None
311
316
 
312
317
 
318
+ # ── #3428 (#3408 item 3): concurrency ceilings + provenance + occupancy ──────
319
+ #
320
+ # The three dataclasses below are NOT a table projection — there is no
321
+ # `concurrency` table — so they are absent from `BOARD_PROJECTIONS` and
322
+ # `decode_row()` never touches them. They exist to give the *computed*
323
+ # `coord.drive_queue.CeilingResolution` (already resolved on the daemon host
324
+ # by `coord config --effective`'s own machinery — see that command's
325
+ # docstring) an explicit wire shape, the same way `BoardAssignment` etc. give
326
+ # one to a raw DB row. `coord/serve_app.py`'s `board()` handler builds a
327
+ # `BoardConcurrency` per request (never persisted) and adds it to the
328
+ # `/board` payload as the sibling key ``concurrency`` — same posture as
329
+ # ``roll_pending``/``goal_header``: additive, absent-tolerant, never required.
330
+ #
331
+ # Deliberately does NOT import `coord.drive_queue` at module scope:
332
+ # `coord.drive_queue` transitively imports THIS module (via
333
+ # `coord.merge_queue` -> `coord.state` -> `coord.board_schema`), so a
334
+ # top-level `from coord.drive_queue import CeilingResolution` here would be a
335
+ # real import cycle, not just an ugly one. `CeilingResolution` is referenced
336
+ # only for typing (`from __future__ import annotations` makes the annotation
337
+ # itself lazy) and duck-typed at runtime by :func:`board_ceiling_from_resolution`.
338
+ # (`coord.drive_sessions_snapshot`, which owns the `occupancy_state` value
339
+ # set `BoardConcurrency` below defaults to, is by contrast imported at the
340
+ # TOP of this file: it imports nothing from `coord` at module scope — its own
341
+ # tmux/queue imports are deferred into `refresh()` — so it cannot close a
342
+ # cycle back through here.)
343
+ if typing.TYPE_CHECKING: # pragma: no cover — typing only
344
+ from coord.drive_queue import CeilingResolution
345
+
346
+
347
+ #: `BoardCeiling.source_kind` / `BoardCeilingSource.source_kind`'s closed
348
+ #: value set (#3428) — a machine-readable classification of
349
+ #: `CeilingResolution.source`'s free-text prose (written for `coord config
350
+ #: --effective`'s human-readable output), so a client can style/filter a
351
+ #: ceiling's provenance without string-matching wording that is free to
352
+ #: change. See :func:`classify_ceiling_source` for the mapping.
353
+ CEILING_SOURCE_KIND_SYSTEMD_FLAG = "systemd_flag"
354
+ CEILING_SOURCE_KIND_CLI_FLAG = "cli_flag"
355
+ CEILING_SOURCE_KIND_COORDINATOR_YML_REPO = "coordinator_yml_repo"
356
+ CEILING_SOURCE_KIND_COORDINATOR_YML_PIPELINE = "coordinator_yml_pipeline"
357
+ CEILING_SOURCE_KIND_COORDINATOR_YML_CONCURRENCY = "coordinator_yml_concurrency"
358
+ CEILING_SOURCE_KIND_DERIVED = "derived"
359
+ CEILING_SOURCE_KIND_DEFAULT = "default"
360
+ #: A `CeilingResolution.source` this classifier doesn't recognise — should
361
+ #: never actually appear on a real `/board` payload (every source string
362
+ #: `coord.drive_queue`'s resolvers produce is covered below), but a client
363
+ #: must still be able to parse it rather than choke: unlike the DTOs above,
364
+ #: `source_kind` degrading to "unknown" is a display nit, not a #632-class
365
+ #: parse failure.
366
+ CEILING_SOURCE_KIND_UNKNOWN = "unknown"
367
+
368
+ CEILING_SOURCE_KINDS: frozenset[str] = frozenset(
369
+ {
370
+ CEILING_SOURCE_KIND_SYSTEMD_FLAG,
371
+ CEILING_SOURCE_KIND_CLI_FLAG,
372
+ CEILING_SOURCE_KIND_COORDINATOR_YML_REPO,
373
+ CEILING_SOURCE_KIND_COORDINATOR_YML_PIPELINE,
374
+ CEILING_SOURCE_KIND_COORDINATOR_YML_CONCURRENCY,
375
+ CEILING_SOURCE_KIND_DERIVED,
376
+ CEILING_SOURCE_KIND_DEFAULT,
377
+ CEILING_SOURCE_KIND_UNKNOWN,
378
+ }
379
+ )
380
+
381
+
382
+ def classify_ceiling_source(source: str) -> str:
383
+ """Map one `CeilingResolution.source` (or one of its `losing` entries'
384
+ source names) prose string to a :data:`CEILING_SOURCE_KINDS` enum value.
385
+
386
+ Ordered by specificity, matching the exact strings
387
+ `coord.drive_queue`'s resolvers / `coord.commands.setup._print_effective_
388
+ concurrency` actually construct today:
389
+
390
+ * ``"systemd ExecStart --max-parallel..."`` (`read_systemd_max_parallel_
391
+ flags` via `coord.commands.setup`'s ``per_repo_source``/
392
+ ``max_parallel_source``) -> ``systemd_flag`` — the #3408 incident
393
+ source: a machine-local flag a thin client can never see for itself.
394
+ * ``"--max-parallel[-per-repo] flag"`` (an explicit CLI override on
395
+ `coord drive-queue tick`'s own invocation) -> ``cli_flag``.
396
+ * ``"coordinator.yml repos[<name>].max_parallel"`` (#3423 per-repo
397
+ override) -> ``coordinator_yml_repo``.
398
+ * ``"coordinator.yml pipeline.max_parallel..."`` -> ``coordinator_yml_pipeline``.
399
+ * ``"coordinator.yml concurrency.max_workers"`` (this module's own
400
+ synthetic resolution for the fleet worker cap — see
401
+ :func:`board_ceiling_from_resolution`'s caller in `coord/serve_app.py`)
402
+ -> ``coordinator_yml_concurrency``.
403
+ * ``"derived (...)"`` (`default_max_parallel`'s repo-shape derivation)
404
+ -> ``derived``.
405
+ * ``"default (...)"`` (the hardcoded fallback, config unreadable) ->
406
+ ``default``.
407
+ * anything else -> ``unknown`` (fail-soft; see that constant's docstring).
408
+ """
409
+ if source.startswith("systemd ExecStart"):
410
+ return CEILING_SOURCE_KIND_SYSTEMD_FLAG
411
+ if source.startswith("coordinator.yml repos["):
412
+ return CEILING_SOURCE_KIND_COORDINATOR_YML_REPO
413
+ if source.startswith("coordinator.yml pipeline."):
414
+ return CEILING_SOURCE_KIND_COORDINATOR_YML_PIPELINE
415
+ if source.startswith("coordinator.yml concurrency."):
416
+ return CEILING_SOURCE_KIND_COORDINATOR_YML_CONCURRENCY
417
+ if source.startswith("derived"):
418
+ return CEILING_SOURCE_KIND_DERIVED
419
+ if source.startswith("default"):
420
+ return CEILING_SOURCE_KIND_DEFAULT
421
+ if source.startswith("--") and source.endswith("flag"):
422
+ return CEILING_SOURCE_KIND_CLI_FLAG
423
+ return CEILING_SOURCE_KIND_UNKNOWN
424
+
425
+
426
+ @dataclasses.dataclass(kw_only=True)
427
+ class BoardCeilingSource:
428
+ """One LOSING source's own opinion for a :class:`BoardCeiling` (#3428) —
429
+ the wire twin of one ``(name, value)`` pair in a
430
+ `coord.drive_queue.CeilingResolution.losing` tuple. This is the whole
431
+ point of shipping provenance at all: it is what tells an operator that
432
+ editing ``coordinator.yml``/``coord-settings`` is futile while a
433
+ machine-local systemd flag outranks it (#3408's reported incident).
434
+ """
435
+
436
+ source: str
437
+ source_kind: str
438
+ value: int
439
+
440
+
441
+ @dataclasses.dataclass(kw_only=True)
442
+ class BoardCeiling:
443
+ """One resolved concurrency ceiling + provenance (#3428) — the `/board`
444
+ wire twin of `coord.drive_queue.CeilingResolution`, the exact resolution
445
+ `coord config --effective` and `coord drive-queue tick` itself already
446
+ use (#2085 "one question, one answer": this block is never a second,
447
+ independently-derived answer).
448
+
449
+ ``source`` carries the same free-text `CeilingResolution.source` a human
450
+ reads in `coord config --effective`'s output; ``source_kind`` is the
451
+ machine-readable classification of it (:func:`classify_ceiling_source`)
452
+ a client should actually branch on. ``losing`` is ``None`` (not ``[]``)
453
+ when nothing else was configured, matching `CeilingResolution.losing`'s
454
+ own "empty means nobody else had an opinion" contract.
455
+ """
456
+
457
+ name: str
458
+ value: int
459
+ source: str
460
+ source_kind: str
461
+ losing: list[BoardCeilingSource] | None = None
462
+
463
+
464
+ def board_ceiling_from_resolution(resolution: "CeilingResolution") -> BoardCeiling:
465
+ """`coord.drive_queue.CeilingResolution` -> its `/board` wire shape.
466
+
467
+ Duck-typed on purpose (reads ``.name``/``.value``/``.source``/``.losing``
468
+ rather than importing the real class) — see the module note above this
469
+ section for why `coord.drive_queue` cannot be imported here at runtime.
470
+ """
471
+ losing = [
472
+ BoardCeilingSource(
473
+ source=name, source_kind=classify_ceiling_source(name), value=value
474
+ )
475
+ for name, value in resolution.losing
476
+ ] or None
477
+ return BoardCeiling(
478
+ name=resolution.name,
479
+ value=resolution.value,
480
+ source=resolution.source,
481
+ source_kind=classify_ceiling_source(resolution.source),
482
+ losing=losing,
483
+ )
484
+
485
+
486
+ @dataclasses.dataclass(kw_only=True)
487
+ class BoardConcurrency:
488
+ """The `/board` payload's ``concurrency`` block (#3428, #3408 item 3):
489
+ every ceiling `coord drive-queue tick` actually enforces, resolved on
490
+ THIS (the daemon) host, plus current occupancy against each.
491
+
492
+ **Resolved server-side, always** — the systemd-flag source
493
+ (:data:`CEILING_SOURCE_KIND_SYSTEMD_FLAG`) is machine-local and invisible
494
+ to a thin client (a Rust TUI, a phone webapp) by construction; a client
495
+ deriving ceilings from its own cached ``coordinator.yml`` would
496
+ confidently print the config value while a host-local flag silently
497
+ outranked it — the exact #3408 failure this block exists to end.
498
+
499
+ ``repo_overrides`` carries only the repos whose OWN ``repos[].max_parallel``
500
+ (#3423) actually differs from ``max_parallel_per_repo``'s fleet-wide
501
+ value — mirroring `coord.drive_queue.effective_repo_capacities`'s own
502
+ "only the repos that disagree" trim (see that function's docstring):
503
+ listing every repo would bury the ones that matter and make an
504
+ all-default fleet look like something was overridden everywhere.
505
+
506
+ ``occupied``/``repo_occupied`` are `coord.drive_queue.
507
+ compute_running_occupancy`'s own output, verbatim — the SAME "is this
508
+ entry still occupying a slot" verdict `plan_tick` enforces, never a
509
+ second, independently-recounted number (#2085 "one question, one
510
+ answer").
511
+
512
+ **Occupancy is nullable, and says why (#2096).** That verdict's first
513
+ question about a `running` entry is "is its drive session live?", which
514
+ only a ``tmux list-sessions`` reading can answer — and that reading is a
515
+ SUBPROCESS, so it is taken on the daemon's tick cadence
516
+ (`coord.drive_sessions_snapshot`), never inline off this read path (the
517
+ `/board` invariant 1 that `tests/test_board_read_path.py` enforces). When
518
+ the daemon has not taken a reading yet, or its refresh loop has stalled
519
+ (#2862) and the last one is too old to be evidence about now,
520
+ ``occupied``/``repo_occupied`` are ``None`` and ``occupancy_state`` says
521
+ which — never a confidently-wrong ``0`` that a client would render as
522
+ "all slots free". ``occupancy_observed_at`` is the wall-clock moment of
523
+ the reading behind the numbers (``None`` when there has never been one),
524
+ so a client can show — and age out — the numbers itself.
525
+
526
+ The CEILINGS are unaffected by any of that: they are resolved from
527
+ config + this host's systemd unit on every build, so they stay populated
528
+ even when occupancy is unknown.
529
+
530
+ Absent-tolerant in both directions (#3428 acceptance): an older daemon
531
+ simply omits the ``concurrency`` key entirely (never ships it as e.g. an
532
+ empty object), and a newer client must not require the key to parse an
533
+ otherwise-valid board.
534
+ """
535
+
536
+ max_parallel: BoardCeiling
537
+ max_parallel_per_repo: BoardCeiling
538
+ max_workers: BoardCeiling
539
+ repo_overrides: dict[str, BoardCeiling]
540
+ #: ``None`` unless ``occupancy_state`` is
541
+ #: :data:`~coord.drive_sessions_snapshot.OCCUPANCY_OBSERVED`.
542
+ occupied: int | None = None
543
+ repo_occupied: dict[str, int] | None = None
544
+ #: One of :data:`~coord.drive_sessions_snapshot.OCCUPANCY_STATES`.
545
+ occupancy_state: str = OCCUPANCY_UNOBSERVED
546
+ occupancy_observed_at: float | None = None
547
+
313
548
 
314
549
  #: ``table name`` → the DTO that defines its ``/board`` wire shape. These are
315
550
  #: exactly the seven projections ``coord/serve_app.py`` publishes under
@@ -418,7 +418,13 @@ def issue_comment_cmd(
418
418
  "instead of a single freeform paragraph, so a later contract.md "
419
419
  "author (hand or agent) doesn't have to re-derive them from prose. "
420
420
  "All four are required together, and mutually exclusive with "
421
- "--body/--body-file."
421
+ "--body/--body-file.\n\n"
422
+ "--milestone (number or title, resolved the same way as `coord "
423
+ "milestone assign`) attaches the new issue to a milestone in the "
424
+ "same step, routed through the same daemon seam "
425
+ "(`POST /issue-milestone`) so the local issues cache is updated "
426
+ "immediately. An unresolvable milestone is reported *before* the "
427
+ "issue is created (#3432)."
422
428
  ),
423
429
  )
424
430
  @click.argument("repo")
@@ -436,6 +442,16 @@ def issue_comment_cmd(
436
442
  multiple=True,
437
443
  help="Label to add (repeatable). The label must already exist in the repo.",
438
444
  )
445
+ @click.option(
446
+ "--milestone",
447
+ default=None,
448
+ help=(
449
+ "Milestone number or title to attach the new issue to. Resolved "
450
+ "before the issue is created — an unresolvable milestone (bad "
451
+ "number, unmatched or ambiguous title) is an error and no issue is "
452
+ "created."
453
+ ),
454
+ )
439
455
  @click.option(
440
456
  "--expected", default=None,
441
457
  help="Bug-lane intake field: what should happen, in observable terms.",
@@ -462,6 +478,7 @@ def issue_create_cmd(
462
478
  body: str | None,
463
479
  body_file: Path | None,
464
480
  labels: tuple[str, ...],
481
+ milestone: str | None,
465
482
  expected: str | None,
466
483
  actual: str | None,
467
484
  repro: str | None,
@@ -496,6 +513,26 @@ def issue_create_cmd(
496
513
  slug = _resolve_repo_slug(cfg, repo)
497
514
  if body_file is not None:
498
515
  body = sys.stdin.read() if str(body_file) == "-" else Path(body_file).read_text()
516
+
517
+ # Resolve --milestone *before* creating the issue (#3432) — creating the
518
+ # issue and then failing to attach it would silently reproduce the bug
519
+ # this closes (an issue that looks healthy but is unreachable from
520
+ # `coord.plans.aggregate_repo_plans`, which keys on milestone
521
+ # membership).
522
+ milestone_number: int | None = None
523
+ milestone_title: str | None = None
524
+ if milestone is not None:
525
+ from coord.commands.milestone import ( # noqa: PLC0415
526
+ MilestoneResolutionError,
527
+ resolve_milestone_ref,
528
+ )
529
+
530
+ try:
531
+ milestone_number, milestone_title = resolve_milestone_ref(slug, milestone)
532
+ except MilestoneResolutionError as e:
533
+ click.echo(f"error: {e}", err=True)
534
+ sys.exit(1)
535
+
499
536
  from coord.state import create_issue as _create_issue # noqa: PLC0415
500
537
 
501
538
  try:
@@ -509,6 +546,31 @@ def issue_create_cmd(
509
546
  sys.exit(1)
510
547
  click.echo(f"#{result['number']} ({slug}) created")
511
548
 
549
+ if milestone_number is not None:
550
+ from coord.state import assign_issue_milestone # noqa: PLC0415
551
+
552
+ try:
553
+ assign_issue_milestone(
554
+ repo,
555
+ result["number"],
556
+ milestone_number,
557
+ milestone_title=milestone_title,
558
+ repo_github=slug,
559
+ )
560
+ except Exception as e: # noqa: BLE001
561
+ click.echo(
562
+ f"error: issue #{result['number']} created but milestone "
563
+ f"assign failed: {e}",
564
+ err=True,
565
+ )
566
+ sys.exit(1)
567
+ ms_label = (
568
+ f"{milestone_title!r} (#{milestone_number})"
569
+ if milestone_title
570
+ else f"#{milestone_number}"
571
+ )
572
+ click.echo(f"#{result['number']} ({slug}) assigned to milestone {ms_label}")
573
+
512
574
 
513
575
  @issue_group.command(
514
576
  "label",
@@ -165,6 +165,52 @@ def milestone_edit_cmd(
165
165
  click.echo(f"milestone #{number} updated ({repo_entry.github})")
166
166
 
167
167
 
168
+ class MilestoneResolutionError(Exception):
169
+ """Raised by :func:`resolve_milestone_ref` when MILESTONE can't be
170
+ resolved to a number."""
171
+
172
+
173
+ def resolve_milestone_ref(repo_github: str, milestone: str) -> tuple[int, str | None]:
174
+ """Resolve a milestone CLI argument (number or title) to ``(number,
175
+ title)`` against ``repo_github``'s open milestones.
176
+
177
+ Shared by `coord milestone assign` and `coord issue create --milestone`
178
+ (#3432) so there is exactly one place milestone-reference resolution
179
+ happens — raises :class:`MilestoneResolutionError` (never exits) on any
180
+ failure: an unfetchable numeric milestone, an unmatched title, or an
181
+ ambiguous title. Callers decide how to report/exit.
182
+ """
183
+ from coord import github_ops # noqa: PLC0415
184
+
185
+ try:
186
+ milestone_number = int(milestone)
187
+ except ValueError:
188
+ try:
189
+ all_ms = github_ops.get_repo_milestones(repo_github)
190
+ except RuntimeError as e:
191
+ raise MilestoneResolutionError(f"could not list milestones: {e}") from e
192
+ matches = [m for m in all_ms if m.get("title") == milestone]
193
+ if not matches:
194
+ raise MilestoneResolutionError(
195
+ f"no open milestone with title {milestone!r} in {repo_github}"
196
+ )
197
+ if len(matches) > 1:
198
+ raise MilestoneResolutionError(
199
+ f"multiple open milestones match {milestone!r} — use the "
200
+ "milestone number instead"
201
+ )
202
+ return matches[0]["number"], matches[0].get("title")
203
+
204
+ # Resolve the title from the number so the cache can store it.
205
+ try:
206
+ ms_data = github_ops.get_milestone(repo_github, milestone_number)
207
+ except RuntimeError as e:
208
+ raise MilestoneResolutionError(
209
+ f"could not fetch milestone #{milestone_number}: {e}"
210
+ ) from e
211
+ return milestone_number, ms_data.get("title")
212
+
213
+
168
214
  @milestone_group.command(
169
215
  "assign",
170
216
  help=(
@@ -194,47 +240,15 @@ def milestone_assign_cmd(
194
240
  click.echo(f"error: unknown repo {repo!r}", err=True)
195
241
  sys.exit(2)
196
242
 
197
- from coord import github_ops # noqa: PLC0415
198
243
  from coord.state import assign_issue_milestone # noqa: PLC0415
199
244
 
200
- # Resolve milestone argument: numeric → number, string → title lookup.
201
- milestone_number: int
202
- milestone_title: str | None
203
-
204
245
  try:
205
- milestone_number = int(milestone)
206
- # Resolve the title from the number so the cache can store it.
207
- try:
208
- ms_data = github_ops.get_milestone(repo_entry.github, milestone_number)
209
- milestone_title = ms_data.get("title")
210
- except RuntimeError as e:
211
- click.echo(
212
- f"error: could not fetch milestone #{milestone_number}: {e}", err=True
213
- )
214
- sys.exit(1)
215
- except ValueError:
216
- # Treat the argument as a title and resolve to a number.
217
- try:
218
- all_ms = github_ops.get_repo_milestones(repo_entry.github)
219
- except RuntimeError as e:
220
- click.echo(f"error: could not list milestones: {e}", err=True)
221
- sys.exit(1)
222
- matches = [m for m in all_ms if m.get("title") == milestone]
223
- if not matches:
224
- click.echo(
225
- f"error: no open milestone with title {milestone!r} in {repo_entry.github}",
226
- err=True,
227
- )
228
- sys.exit(1)
229
- if len(matches) > 1:
230
- click.echo(
231
- f"error: multiple open milestones match {milestone!r} — "
232
- "use the milestone number instead",
233
- err=True,
234
- )
235
- sys.exit(1)
236
- milestone_number = matches[0]["number"]
237
- milestone_title = matches[0].get("title")
246
+ milestone_number, milestone_title = resolve_milestone_ref(
247
+ repo_entry.github, milestone
248
+ )
249
+ except MilestoneResolutionError as e:
250
+ click.echo(f"error: {e}", err=True)
251
+ sys.exit(1)
238
252
 
239
253
  try:
240
254
  assign_issue_milestone(
@@ -988,6 +988,109 @@ def compute_running_occupancy(
988
988
  return occupied, repo_occupied
989
989
 
990
990
 
991
+ @dataclass(frozen=True)
992
+ class ConcurrencyReport:
993
+ """Every concurrency ceiling `coord drive-queue tick` enforces, resolved
994
+ together in the SAME order + SAME primitives ``coord config --effective``
995
+ (`coord.commands.setup._print_effective_concurrency`) already applies
996
+ (#3408), plus current occupancy against each — the one call a daemon-host
997
+ caller should make rather than re-deriving the wiring itself (#3428,
998
+ #2085 "one question, one answer").
999
+
1000
+ ``repo_resolutions`` is EVERY repo's own :class:`CeilingResolution`
1001
+ (#3423), keyed by name — :func:`resolve_repo_ceilings`'s full table.
1002
+ ``repo_overrides`` is the trimmed subset that actually differs from
1003
+ ``max_parallel_per_repo``'s fleet-wide value —
1004
+ :func:`effective_repo_capacities`'s own shape, and also what
1005
+ ``max_parallel``'s own resolution is computed against (a repo with no
1006
+ override contributes the fleet figure to that sum, not its own name).
1007
+ """
1008
+
1009
+ max_parallel: CeilingResolution
1010
+ max_parallel_per_repo: CeilingResolution
1011
+ max_workers: CeilingResolution
1012
+ repo_resolutions: dict[str, CeilingResolution]
1013
+ repo_overrides: dict[str, int]
1014
+ occupied: int
1015
+ repo_occupied: dict[str, int]
1016
+
1017
+
1018
+ def resolve_concurrency_report(
1019
+ *,
1020
+ repo_overrides: Mapping[str, int | None],
1021
+ pipeline_max_parallel: int | None,
1022
+ pipeline_max_parallel_per_repo: int | None,
1023
+ max_workers_cap: int,
1024
+ systemd_flags: Mapping[str, int] | None = None,
1025
+ entries: Sequence["QueueEntry"] = (),
1026
+ board: "BoardView | None" = None,
1027
+ max_attempts: int = DEFAULT_MAX_ATTEMPTS,
1028
+ now: float | None = None,
1029
+ local_host: str | None = None,
1030
+ ) -> ConcurrencyReport:
1031
+ """Resolve every concurrency ceiling in one call (#3428).
1032
+
1033
+ *repo_overrides* is ``{repo_name: repos[].max_parallel or None}`` for
1034
+ EVERY repo in the fleet (not just the overridden ones — see
1035
+ :func:`resolve_repo_ceilings`). *systemd_flags* defaults to a fresh
1036
+ :func:`read_systemd_max_parallel_flags` read of THIS machine's own
1037
+ installed unit when not given (a caller with an already-read dict, e.g.
1038
+ a test, passes it explicitly rather than touching the filesystem).
1039
+
1040
+ *board*/*entries* are `compute_running_occupancy`'s own arguments;
1041
+ *board* left ``None`` (the default) skips occupancy entirely
1042
+ (``occupied=0``, ``repo_occupied={}``) rather than raising — a caller
1043
+ that only wants the ceilings (no live queue state) does not need to
1044
+ fabricate an empty :class:`BoardView`.
1045
+ """
1046
+ flags = systemd_flags if systemd_flags is not None else read_systemd_max_parallel_flags()
1047
+
1048
+ per_repo_resolution = resolve_max_parallel_per_repo(
1049
+ override_value=flags.get("max_parallel_per_repo"),
1050
+ override_source="systemd ExecStart --max-parallel-per-repo",
1051
+ config_value=pipeline_max_parallel_per_repo,
1052
+ )
1053
+ repo_resolutions = resolve_repo_ceilings(repo_overrides, fleet=per_repo_resolution)
1054
+ effective_repo_overrides = effective_repo_capacities(
1055
+ repo_resolutions, fleet_value=per_repo_resolution.value
1056
+ )
1057
+
1058
+ global_resolution = resolve_max_parallel(
1059
+ override_value=flags.get("max_parallel"),
1060
+ override_source="systemd ExecStart --max-parallel",
1061
+ config_value=pipeline_max_parallel,
1062
+ repo_count=len(repo_overrides),
1063
+ max_parallel_per_repo=per_repo_resolution.value,
1064
+ max_workers_cap=max_workers_cap,
1065
+ repo_overrides=effective_repo_overrides,
1066
+ )
1067
+ # `concurrency.max_workers` has exactly one source today — nothing can
1068
+ # beat `coordinator.yml`'s own value — but the wire/report shape stays
1069
+ # uniform across all three ceilings (#3428's own contract), so it is
1070
+ # wrapped in the same `CeilingResolution` shape the other two use, with
1071
+ # an always-empty `losing`.
1072
+ max_workers_resolution = CeilingResolution(
1073
+ "max_workers", max_workers_cap, "coordinator.yml concurrency.max_workers"
1074
+ )
1075
+
1076
+ if board is not None:
1077
+ occupied, repo_occupied = compute_running_occupancy(
1078
+ entries, board, max_attempts, now=now, local_host=local_host
1079
+ )
1080
+ else:
1081
+ occupied, repo_occupied = 0, {}
1082
+
1083
+ return ConcurrencyReport(
1084
+ max_parallel=global_resolution,
1085
+ max_parallel_per_repo=per_repo_resolution,
1086
+ max_workers=max_workers_resolution,
1087
+ repo_resolutions=repo_resolutions,
1088
+ repo_overrides=effective_repo_overrides,
1089
+ occupied=occupied,
1090
+ repo_occupied=repo_occupied,
1091
+ )
1092
+
1093
+
991
1094
  # ── the startup grace window (#1794) ─────────────────────────────────────────
992
1095
  #
993
1096
  # A drive is NOT established the instant `coord drive --tmux` exits 0. #1606's