code-coordinator 0.5.526__tar.gz → 0.5.527__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (910) hide show
  1. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/PKG-INFO +1 -1
  2. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/code_coordinator.egg-info/PKG-INFO +1 -1
  3. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/code_coordinator.egg-info/scm_version.json +2 -2
  4. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/board_schema.py +7 -0
  5. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/drive_queue.py +24 -10
  6. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/db.py +33 -1
  7. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/drive_queue.py +51 -15
  8. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/state.py +57 -4
  9. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_drive_queue.py +64 -0
  10. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_db.py +1 -1
  11. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_drive_queue.py +46 -0
  12. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_state.py +61 -0
  13. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/.claude/commands/board.md +0 -0
  14. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/.claude/commands/complete-session.md +0 -0
  15. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/.claude/commands/coordinator.md +0 -0
  16. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/.githooks/_lib.sh +0 -0
  17. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/.githooks/post-checkout +0 -0
  18. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/.githooks/post-commit +0 -0
  19. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/.githooks/post-merge +0 -0
  20. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  21. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/.github/coord-ci-acceptance.yml +0 -0
  22. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/.github/workflows/auto-release.yml +0 -0
  23. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/.github/workflows/publish.yml +0 -0
  24. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/.github/workflows/test.yml +0 -0
  25. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/.gitignore +0 -0
  26. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/CLAUDE.md +0 -0
  27. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/GOAL.md +0 -0
  28. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/LICENSE +0 -0
  29. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/MANIFEST.in +0 -0
  30. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/README.md +0 -0
  31. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/code_coordinator.egg-info/SOURCES.txt +0 -0
  32. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/code_coordinator.egg-info/dependency_links.txt +0 -0
  33. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/code_coordinator.egg-info/entry_points.txt +0 -0
  34. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/code_coordinator.egg-info/requires.txt +0 -0
  35. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/code_coordinator.egg-info/scm_file_list.json +0 -0
  36. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/code_coordinator.egg-info/top_level.txt +0 -0
  37. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/__init__.py +0 -0
  38. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/_board_mapping.py +0 -0
  39. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/acceptance.py +0 -0
  40. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/acceptance_drivers.py +0 -0
  41. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/agent.py +0 -0
  42. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/agent_app.py +0 -0
  43. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/agent_update.py +0 -0
  44. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/agents/opencode/.gitignore +0 -0
  45. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/agents/opencode/agents/work.md +0 -0
  46. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/agents/opencode/routing.jsonc +0 -0
  47. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/approved_work.py +0 -0
  48. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/audit.py +0 -0
  49. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/auto_loop.py +0 -0
  50. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/backup.py +0 -0
  51. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/block_log.py +0 -0
  52. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/board_service.py +0 -0
  53. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/board_wire.py +0 -0
  54. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/brain.py +0 -0
  55. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/branch_model.py +0 -0
  56. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/bug_intake.py +0 -0
  57. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/cargo_cache.py +0 -0
  58. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/ci_fix.py +0 -0
  59. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/ci_github.py +0 -0
  60. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/ci_gitlab.py +0 -0
  61. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/ci_store.py +0 -0
  62. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/claim.py +0 -0
  63. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/claude_setup_token.py +0 -0
  64. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/cli.py +0 -0
  65. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/client.py +0 -0
  66. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/codegen.py +0 -0
  67. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/__init__.py +0 -0
  68. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/_common.py +0 -0
  69. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/acceptance.py +0 -0
  70. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/agent_ops.py +0 -0
  71. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/audit.py +0 -0
  72. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/backup.py +0 -0
  73. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/chat.py +0 -0
  74. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/ci.py +0 -0
  75. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/codegen.py +0 -0
  76. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/dispatch.py +0 -0
  77. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/dispatch_workers.py +0 -0
  78. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/dr.py +0 -0
  79. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/drive.py +0 -0
  80. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/gate_a.py +0 -0
  81. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/gates.py +0 -0
  82. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/issues.py +0 -0
  83. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/lifecycle.py +0 -0
  84. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/machine.py +0 -0
  85. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/merge.py +0 -0
  86. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/milestone.py +0 -0
  87. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/plan_followup.py +0 -0
  88. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/plans.py +0 -0
  89. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/portal.py +0 -0
  90. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/pr.py +0 -0
  91. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/release.py +0 -0
  92. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/repo.py +0 -0
  93. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/report.py +0 -0
  94. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/review.py +0 -0
  95. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/scorecard.py +0 -0
  96. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/sessions.py +0 -0
  97. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/setup.py +0 -0
  98. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/status.py +0 -0
  99. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/store_migrate.py +0 -0
  100. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/terminal.py +0 -0
  101. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/test_gate.py +0 -0
  102. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/commands/tui.py +0 -0
  103. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/comments.py +0 -0
  104. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/config.py +0 -0
  105. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/config_reload.py +0 -0
  106. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/confirm_test.py +0 -0
  107. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/conflict_fix.py +0 -0
  108. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/dao.py +0 -0
  109. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/dashboard/__init__.py +0 -0
  110. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/dashboard/fixture.py +0 -0
  111. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/dashboard/index.html +0 -0
  112. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/dashboard/server.py +0 -0
  113. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/dashboard/terminal.py +0 -0
  114. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/dead_end.py +0 -0
  115. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/decomposition_chat.py +0 -0
  116. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/deploy/README.md +0 -0
  117. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/deploy/coord-agent.service +0 -0
  118. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/deploy/coord-backup.service +0 -0
  119. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/deploy/coord-backup.timer +0 -0
  120. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/deploy/coord-db-backup.service +0 -0
  121. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/deploy/coord-db-backup.sh +0 -0
  122. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/deploy/coord-db-backup.timer +0 -0
  123. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/deploy/coord-dr-verify.service +0 -0
  124. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/deploy/coord-dr-verify.timer +0 -0
  125. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/deploy/coord-drive-queue.service +0 -0
  126. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/deploy/coord-drive-queue.timer +0 -0
  127. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/deploy/coord-failure-notify.service +0 -0
  128. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/deploy/coord-fleet-watchdog.service +0 -0
  129. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/deploy/coord-fleet-watchdog.timer +0 -0
  130. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/deploy/coord-notify.service +0 -0
  131. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/deploy/coord-notify.timer +0 -0
  132. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/deploy/coord-release-propagate.service +0 -0
  133. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/deploy/coord-release-propagate.timer +0 -0
  134. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/deploy/coord-release-window.service +0 -0
  135. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/deploy/coord-release-window.timer +0 -0
  136. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/deploy/coord-serve.service +0 -0
  137. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/deploy/coord-web-dist-build.service +0 -0
  138. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/deploy/coord-web-dist-build.timer +0 -0
  139. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/deploy/coord-web.service +0 -0
  140. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/deploy_manifest.py +0 -0
  141. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/deploy_units.py +0 -0
  142. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/deprecation_telemetry.py +0 -0
  143. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/deps.py +0 -0
  144. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/diagnose.py +0 -0
  145. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/dispatch.py +0 -0
  146. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/dispatch_liveness.py +0 -0
  147. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/dist_name.py +0 -0
  148. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/dr_promote.py +0 -0
  149. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/dr_verify.py +0 -0
  150. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/drive.py +0 -0
  151. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/drive_sessions_snapshot.py +0 -0
  152. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/drive_state.py +0 -0
  153. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/events.py +0 -0
  154. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/failure_class.py +0 -0
  155. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/failure_classifier.py +0 -0
  156. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/filelock.py +0 -0
  157. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/fleet_config_health.py +0 -0
  158. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/forge_availability.py +0 -0
  159. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/freshness.py +0 -0
  160. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/gate_a.py +0 -0
  161. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/gate_b.py +0 -0
  162. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/gate_snapshot.py +0 -0
  163. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/gates.py +0 -0
  164. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/gen_board_fixture.py +0 -0
  165. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/github_ops.py +0 -0
  166. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/github_throttle.py +0 -0
  167. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/goal.py +0 -0
  168. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/graph_health.py +0 -0
  169. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/__init__.py +0 -0
  170. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/aggregate.py +0 -0
  171. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/checks/__init__.py +0 -0
  172. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/checks/_ci_pin.py +0 -0
  173. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/checks/agent_install.py +0 -0
  174. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/checks/cargo_targets.py +0 -0
  175. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/checks/claude_binary.py +0 -0
  176. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/checks/config_drift.py +0 -0
  177. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/checks/coord_tui_ci_pin.py +0 -0
  178. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/checks/coord_web_ci_pin.py +0 -0
  179. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/checks/deploy_lane_facts.py +0 -0
  180. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/checks/disk.py +0 -0
  181. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/checks/fleet_board.py +0 -0
  182. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/checks/fleet_deploy_lanes.py +0 -0
  183. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/checks/fleet_phantom.py +0 -0
  184. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/checks/fleet_unit_drift.py +0 -0
  185. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/checks/graph.py +0 -0
  186. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/checks/graphify_cli.py +0 -0
  187. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/checks/index_lock.py +0 -0
  188. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/checks/issues_sync_staleness.py +0 -0
  189. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/checks/local_machine_identity.py +0 -0
  190. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/checks/plan_usage.py +0 -0
  191. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/checks/pr_churn.py +0 -0
  192. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/checks/release_cordon.py +0 -0
  193. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/checks/repo_state.py +0 -0
  194. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/checks/spawned_coord.py +0 -0
  195. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/checks/stalled_pipeline.py +0 -0
  196. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/checks/timer_active.py +0 -0
  197. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/checks/toolchain.py +0 -0
  198. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/checks/unit_drift.py +0 -0
  199. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/checks/unit_enablement.py +0 -0
  200. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/checks/wedged_drive_queue.py +0 -0
  201. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/checks/worktrees.py +0 -0
  202. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/cli.py +0 -0
  203. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/context.py +0 -0
  204. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/fleet_snapshot.py +0 -0
  205. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/models.py +0 -0
  206. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/pypi.py +0 -0
  207. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/registry.py +0 -0
  208. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/render.py +0 -0
  209. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/health/units.py +0 -0
  210. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/hooks.py +0 -0
  211. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/housekeeping.py +0 -0
  212. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/interactive.py +0 -0
  213. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/invariant_alarms.py +0 -0
  214. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/issue_store.py +0 -0
  215. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/issues_sync_status.py +0 -0
  216. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/liveness_auditor.py +0 -0
  217. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/machine_fault.py +0 -0
  218. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/machine_metrics.py +0 -0
  219. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/machine_onboard.py +0 -0
  220. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/machine_pause.py +0 -0
  221. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/machine_stats.py +0 -0
  222. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/merge_queue.py +0 -0
  223. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/milestone_chat.py +0 -0
  224. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/milestone_dispatch.py +0 -0
  225. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/milestone_gate.py +0 -0
  226. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/milestone_order.py +0 -0
  227. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/mock_author.py +0 -0
  228. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/models.py +0 -0
  229. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/network.py +0 -0
  230. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/new_issue_chat.py +0 -0
  231. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/notifier/__init__.py +0 -0
  232. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/notifier/baseline.py +0 -0
  233. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/notifier/cli.py +0 -0
  234. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/notifier/collect.py +0 -0
  235. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/notifier/digest.py +0 -0
  236. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/notifier/models.py +0 -0
  237. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/notifier/predicate.py +0 -0
  238. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/notifier/service.py +0 -0
  239. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/notifier/store.py +0 -0
  240. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/notifier/transport.py +0 -0
  241. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/notify.py +0 -0
  242. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/openapi.py +0 -0
  243. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/overlap_fence.py +0 -0
  244. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/overlap_predict.py +0 -0
  245. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/parentage.py +0 -0
  246. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/parentage_github.py +0 -0
  247. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/pipeline.py +0 -0
  248. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/plan_parser.py +0 -0
  249. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/plans.py +0 -0
  250. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/platform_paths.py +0 -0
  251. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/portal_bridge.py +0 -0
  252. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/portal_store.py +0 -0
  253. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/portal_sync.py +0 -0
  254. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/pr_body_lint.py +0 -0
  255. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/prereqs.py +0 -0
  256. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/progress.py +0 -0
  257. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/providers/__init__.py +0 -0
  258. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/providers/base.py +0 -0
  259. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/providers/claude.py +0 -0
  260. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/providers/claude_pty.py +0 -0
  261. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/providers/opencode.py +0 -0
  262. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/queue_diagnose.py +0 -0
  263. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/reconcile.py +0 -0
  264. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/reconcile_tick.py +0 -0
  265. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/refine_chat.py +0 -0
  266. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/release_cordon.py +0 -0
  267. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/release_propagate.py +0 -0
  268. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/release_verify.py +0 -0
  269. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/release_window.py +0 -0
  270. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/repo_dormancy.py +0 -0
  271. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/repo_edit.py +0 -0
  272. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/repo_onboard.py +0 -0
  273. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/reports.py +0 -0
  274. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/rest_schema.py +0 -0
  275. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/restart_cmd.py +0 -0
  276. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/revalidate.py +0 -0
  277. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/review.py +0 -0
  278. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/scorecard.py +0 -0
  279. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/self_health.py +0 -0
  280. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/serve_app.py +0 -0
  281. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/skills/coord-dispatch-verbs/SKILL.md +0 -0
  282. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/skills/drive-queue-preflight/SKILL.md +0 -0
  283. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/skills/fleet-restart-safety/SKILL.md +0 -0
  284. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/skills/merge-stuck-triage/SKILL.md +0 -0
  285. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/skills/pipeline-limbo-triage/SKILL.md +0 -0
  286. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/skills/portal-followup/SKILL.md +0 -0
  287. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/skills/release-now/SKILL.md +0 -0
  288. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/skills/review-verdict-recovery/SKILL.md +0 -0
  289. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/skills/tui-quadraui-workflow/SKILL.md +0 -0
  290. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/skills/update-issue/SKILL.md +0 -0
  291. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/smoke.py +0 -0
  292. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/spend_ceiling.py +0 -0
  293. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/split_work.py +0 -0
  294. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/sql.py +0 -0
  295. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/stage_projection.py +0 -0
  296. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/store_migrate.py +0 -0
  297. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/store_parity.py +0 -0
  298. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/templates/deploy-cloudflare.node.yml +0 -0
  299. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/test_author.py +0 -0
  300. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/test_chat.py +0 -0
  301. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/test_orchestrator.py +0 -0
  302. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/test_report.py +0 -0
  303. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/tui_release.py +0 -0
  304. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/uat_checks.py +0 -0
  305. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/usage.py +0 -0
  306. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/usage_limits.py +0 -0
  307. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/usage_rollup.py +0 -0
  308. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coord/worker_events.py +0 -0
  309. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/coordinator.example.yml +0 -0
  310. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/deploy/coord-agent.service +0 -0
  311. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/deploy/coord-backup.service +0 -0
  312. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/deploy/coord-backup.timer +0 -0
  313. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/deploy/coord-db-backup.service +0 -0
  314. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/deploy/coord-db-backup.sh +0 -0
  315. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/deploy/coord-db-backup.timer +0 -0
  316. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/deploy/coord-dr-verify.service +0 -0
  317. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/deploy/coord-dr-verify.timer +0 -0
  318. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/deploy/coord-drive-queue.service +0 -0
  319. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/deploy/coord-drive-queue.timer +0 -0
  320. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/deploy/coord-failure-notify.service +0 -0
  321. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/deploy/coord-failure-notify.sh +0 -0
  322. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/deploy/coord-fleet-watchdog.service +0 -0
  323. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/deploy/coord-fleet-watchdog.timer +0 -0
  324. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/deploy/coord-notify.service +0 -0
  325. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/deploy/coord-notify.timer +0 -0
  326. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/deploy/coord-release-propagate.service +0 -0
  327. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/deploy/coord-release-propagate.timer +0 -0
  328. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/deploy/coord-release-window.service +0 -0
  329. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/deploy/coord-release-window.timer +0 -0
  330. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/deploy/coord-serve.service +0 -0
  331. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/deploy/coord-web-dist-build.service +0 -0
  332. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/deploy/coord-web-dist-build.sh +0 -0
  333. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/deploy/coord-web-dist-build.timer +0 -0
  334. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/deploy/coord-web-rollback.sh +0 -0
  335. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/deploy/coord-web.service +0 -0
  336. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/deploy/node-shim.sh +0 -0
  337. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/ADR_COORD_TUI_CI.md +0 -0
  338. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/ADR_COORD_WEB_ACCEPTANCE_SUITE.md +0 -0
  339. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/ADR_COORD_WEB_CI.md +0 -0
  340. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/ADR_COORD_WEB_DIST.md +0 -0
  341. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/ADR_PY_RUST_MIRRORS.md +0 -0
  342. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/AGENT_OPERATIONS.md +0 -0
  343. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/ARCHITECTURE.md +0 -0
  344. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/ARCH_SECURITY_GATES.md +0 -0
  345. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/COCKPIT.md +0 -0
  346. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/CONTROL_CENTER.md +0 -0
  347. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/COST_DISCIPLINE.md +0 -0
  348. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/CROSS_PLATFORM.md +0 -0
  349. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/CUSTOMER_FACING_APPS.md +0 -0
  350. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/CUSTOMER_PORTAL.md +0 -0
  351. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/DATA_STORE_SELECTION.md +0 -0
  352. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/DISASTER_RECOVERY.md +0 -0
  353. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/DRIVE_QUEUE.md +0 -0
  354. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/EPHEMERAL_WORKERS.md +0 -0
  355. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/FORGE_MIGRATION.md +0 -0
  356. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/GRAPHIFY_SETUP.md +0 -0
  357. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/ISSUE_GUIDANCE.md +0 -0
  358. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/MAC_MINI.md +0 -0
  359. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
  360. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/NOTIFIER.md +0 -0
  361. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/OPENCODE_VERIFICATION.md +0 -0
  362. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/OPERATING_GOTCHAS.md +0 -0
  363. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/OPERATOR_GUIDES.md +0 -0
  364. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/ORACLE_LOOP.md +0 -0
  365. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/PHONE_WEBAPP.md +0 -0
  366. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/PIPELINE_V2.md +0 -0
  367. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/PLATFORM_EVOLUTION.md +0 -0
  368. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/SECOND_BACKEND.md +0 -0
  369. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/STORE_SERVICE.md +0 -0
  370. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/TEST_FIRST_BUG_LANE.md +0 -0
  371. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/WEB_CONTROL_CENTER.md +0 -0
  372. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/WSL_WINDOWS_WORKER.md +0 -0
  373. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/mocks/web/README.md +0 -0
  374. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/mocks/web/_tokens.css +0 -0
  375. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/mocks/web/issue-detail.html +0 -0
  376. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/mocks/web/pipeline-narrow.html +0 -0
  377. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/docs/mocks/web/pipeline-wide.html +0 -0
  378. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/graphify-out/.gitignore +0 -0
  379. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/install-agent.sh +0 -0
  380. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/pyproject.toml +0 -0
  381. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/audit_review_verdict_overrides.py +0 -0
  382. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/azure-workers/bootstrap-shared.sh +0 -0
  383. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/azure-workers/build-worker-image.sh +0 -0
  384. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/azure-workers/coordinator-machine.py +0 -0
  385. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/azure-workers/dr-down.sh +0 -0
  386. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/azure-workers/dr-up.sh +0 -0
  387. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/azure-workers/epic-down.sh +0 -0
  388. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/azure-workers/epic-up.sh +0 -0
  389. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/azure-workers/preflight.sh +0 -0
  390. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/azure-workers/provision-server.sh +0 -0
  391. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/azure-workers/provision-worker.sh +0 -0
  392. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
  393. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/azure-workers/tailnet-acl.hujson +0 -0
  394. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/azure-workers/throwaway-vm.sh +0 -0
  395. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/azure-workers/verify-github-token.sh +0 -0
  396. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/check_gh_argv_containment.py +0 -0
  397. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/codegen.py +0 -0
  398. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/coord-test-runner.sh +0 -0
  399. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/coord-tui-scaffold/.github/coord-ci-acceptance.yml +0 -0
  400. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/coord-tui-scaffold/.github/workflows/cargo-test.yml +0 -0
  401. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/coord-tui-scaffold/.github/workflows/codegen-drift.yml +0 -0
  402. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/coord-tui-scaffold/CLAUDE.md +0 -0
  403. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/coord-venv-rollback.sh +0 -0
  404. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/drive-batch.sh +0 -0
  405. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/extract-coord-tui.sh +0 -0
  406. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/fleet_watchdog.py +0 -0
  407. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/gen_board_fixture.py +0 -0
  408. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/gen_mock_index.py +0 -0
  409. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/lib/provision-core.sh +0 -0
  410. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/next_release_tag.py +0 -0
  411. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/provision-machine.sh +0 -0
  412. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/run_tests_in_populated_home.sh +0 -0
  413. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/run_tests_without_gh.sh +0 -0
  414. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/setup-macmini.sh +0 -0
  415. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/smoke_437_interactive.py +0 -0
  416. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/verify-provision-noble.sh +0 -0
  417. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/verify_878_review_capture.py +0 -0
  418. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/verify_release_published.py +0 -0
  419. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/scripts/verify_release_wheel.py +0 -0
  420. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/setup.cfg +0 -0
  421. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/SMOKE_SET.md +0 -0
  422. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/__init__.py +0 -0
  423. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/acceptance/ms-37/conftest.py +0 -0
  424. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/acceptance/ms-37/contract.md +0 -0
  425. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/acceptance/ms-37/manifest.yml +0 -0
  426. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
  427. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
  428. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/acceptance/ms-51/contract.md +0 -0
  429. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
  430. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
  431. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/acceptance/ms-51/manifest.yml +0 -0
  432. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
  433. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/acceptance/ms-51/tsconfig.json +0 -0
  434. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
  435. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/backends.py +0 -0
  436. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/conftest.py +0 -0
  437. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/fixtures/board-pipeline-basic.json +0 -0
  438. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
  439. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
  440. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
  441. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/fixtures/opencode_run_sample.jsonl +0 -0
  442. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/fixtures/playwright/all_pass.json +0 -0
  443. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/fixtures/playwright/global_setup_crash.json +0 -0
  444. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/fixtures/playwright/mixed_fail.json +0 -0
  445. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/fixtures/playwright/retry_then_pass.json +0 -0
  446. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
  447. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/fixtures/playwright/skip.json +0 -0
  448. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/fixtures/playwright/truncated.json +0 -0
  449. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
  450. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
  451. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
  452. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
  453. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
  454. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
  455. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
  456. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
  457. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_acceptance.py +0 -0
  458. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_acceptance_drivers.py +0 -0
  459. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_agent.py +0 -0
  460. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_agent_api_error.py +0 -0
  461. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_agent_app.py +0 -0
  462. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_agent_branch_base.py +0 -0
  463. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_agent_branch_capture.py +0 -0
  464. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_agent_config_free_1712.py +0 -0
  465. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_agent_deploy_units_endpoint.py +0 -0
  466. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_agent_dirty_worktree.py +0 -0
  467. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_agent_drive_queue_reconcile_2373.py +0 -0
  468. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_agent_graph_self_heal.py +0 -0
  469. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_agent_health_h3.py +0 -0
  470. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_agent_idle_restart.py +0 -0
  471. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_agent_push_failure.py +0 -0
  472. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_agent_reap.py +0 -0
  473. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_agent_repos_and_pull.py +0 -0
  474. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_agent_restart_services_endpoint.py +0 -0
  475. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_agent_skills_self_heal.py +0 -0
  476. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_agent_startup_diagnostics.py +0 -0
  477. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_agent_update.py +0 -0
  478. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_agent_update_bluegreen.py +0 -0
  479. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_agent_usage_limit.py +0 -0
  480. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_agent_zero_commit.py +0 -0
  481. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_ambient_home_isolation.py +0 -0
  482. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_approve_capability_reroute_3241.py +0 -0
  483. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_approve_dependency_busy_2804.py +0 -0
  484. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_approve_reject_plan.py +0 -0
  485. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_approve_usage_gate.py +0 -0
  486. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_approved_work_2532.py +0 -0
  487. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_approved_work_2996.py +0 -0
  488. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_assignment_already_recorded_daemon.py +0 -0
  489. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_audit_log.py +0 -0
  490. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_audit_outcome.py +0 -0
  491. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_audit_query.py +0 -0
  492. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_auto_loop.py +0 -0
  493. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_auto_release_publish_2035.py +0 -0
  494. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_backend_selection.py +0 -0
  495. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_backup.py +0 -0
  496. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_base_checkout_restore.py +0 -0
  497. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_block_log.py +0 -0
  498. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_board_cap_762.py +0 -0
  499. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_board_fixture.py +0 -0
  500. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_board_read_path.py +0 -0
  501. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_board_schema.py +0 -0
  502. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_board_service.py +0 -0
  503. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_board_state.py +0 -0
  504. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_board_wire.py +0 -0
  505. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_brain.py +0 -0
  506. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_branch_model.py +0 -0
  507. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_bug_intake.py +0 -0
  508. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_build_worker_image_env_update.py +0 -0
  509. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cargo_cache.py +0 -0
  510. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_check_gh_argv_containment.py +0 -0
  511. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_ci_acceptance_gate_1950.py +0 -0
  512. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_ci_fix.py +0 -0
  513. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_ci_github.py +0 -0
  514. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_ci_gitlab.py +0 -0
  515. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_ci_parity_2091.py +0 -0
  516. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_ci_store.py +0 -0
  517. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_claim.py +0 -0
  518. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_claude_md_budget.py +0 -0
  519. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_claude_setup_token.py +0 -0
  520. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_acceptance.py +0 -0
  521. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_assign.py +0 -0
  522. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
  523. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_assign_interactive_remote.py +0 -0
  524. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_assign_provider.py +0 -0
  525. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_assign_repo_drift_2219.py +0 -0
  526. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_audit.py +0 -0
  527. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_chat_continue.py +0 -0
  528. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_ci.py +0 -0
  529. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_codegen.py +0 -0
  530. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_decide.py +0 -0
  531. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_diagnose_capability_rules.py +0 -0
  532. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_diagnose_config_provenance.py +0 -0
  533. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_diagnose_forge_availability.py +0 -0
  534. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_diagnose_graph.py +0 -0
  535. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_diagnose_self.py +0 -0
  536. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_diagnose_test_coverage.py +0 -0
  537. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_doctor.py +0 -0
  538. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_doctor_config_free_1801.py +0 -0
  539. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
  540. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_doctor_store_backend_3084.py +0 -0
  541. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_drive.py +0 -0
  542. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_escalate.py +0 -0
  543. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_fix_headless_review.py +0 -0
  544. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_gate_a.py +0 -0
  545. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_install_drift.py +0 -0
  546. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_install_skills.py +0 -0
  547. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_issue_comment.py +0 -0
  548. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_issue_create_label.py +0 -0
  549. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_issue_reopen.py +0 -0
  550. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_issue_view_list.py +0 -0
  551. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_issues.py +0 -0
  552. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_merge.py +0 -0
  553. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_milestone_assign.py +0 -0
  554. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_milestone_capture.py +0 -0
  555. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_milestone_chat_add_child.py +0 -0
  556. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_milestone_dispatch.py +0 -0
  557. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_milestone_gate_b.py +0 -0
  558. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_milestone_gate_c.py +0 -0
  559. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_milestone_order.py +0 -0
  560. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
  561. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_milestone_ship.py +0 -0
  562. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_network.py +0 -0
  563. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_new_issue_chat.py +0 -0
  564. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_plans.py +0 -0
  565. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_portal.py +0 -0
  566. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_pr.py +0 -0
  567. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_pull_artifact.py +0 -0
  568. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_queue.py +0 -0
  569. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_reattach_sessions.py +0 -0
  570. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_refine_board.py +0 -0
  571. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_release_preflight.py +0 -0
  572. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_release_propagate.py +0 -0
  573. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_release_window.py +0 -0
  574. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_repo_2220.py +0 -0
  575. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_review_test_author_tracking_epic_2639.py +0 -0
  576. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_scorecard.py +0 -0
  577. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_serve_store_backend_3084.py +0 -0
  578. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_set_review_findings.py +0 -0
  579. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_status_advisory_terminal.py +0 -0
  580. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_status_contested_tag.py +0 -0
  581. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_status_invariant_alarms.py +0 -0
  582. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_status_machine_fault.py +0 -0
  583. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_status_merge_queue.py +0 -0
  584. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_status_provider.py +0 -0
  585. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_status_retried_3340.py +0 -0
  586. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_status_review_finalizing.py +0 -0
  587. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_status_supervisor_3366.py +0 -0
  588. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_status_test_failed_tag.py +0 -0
  589. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_status_usage_limit.py +0 -0
  590. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_sync_comments_873.py +0 -0
  591. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_test_plan.py +0 -0
  592. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_track.py +0 -0
  593. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_tui_update.py +0 -0
  594. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cli_wait.py +0 -0
  595. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_client.py +0 -0
  596. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_client_base_install.py +0 -0
  597. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_client_config_cache_atomic_3052.py +0 -0
  598. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_client_resource_migration_1946.py +0 -0
  599. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_commands_common.py +0 -0
  600. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_comments.py +0 -0
  601. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_completion_summary.py +0 -0
  602. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_config.py +0 -0
  603. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_config_acceptance.py +0 -0
  604. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_config_audit.py +0 -0
  605. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_config_drift_check.py +0 -0
  606. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_config_effective.py +0 -0
  607. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_config_pricing.py +0 -0
  608. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
  609. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_config_usage_gate.py +0 -0
  610. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_confirm_test.py +0 -0
  611. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_conflict_fix.py +0 -0
  612. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_conflict_fix_semantic.py +0 -0
  613. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_coord_log_daemon_fallback_2547.py +0 -0
  614. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_coord_test.py +0 -0
  615. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_coord_test_runner_acceptance_toolchain_2936.py +0 -0
  616. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_coord_test_runner_baseline.py +0 -0
  617. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_coord_test_runner_populated_home.py +0 -0
  618. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_coord_test_runner_routing.py +0 -0
  619. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_coord_test_runner_toolchain.py +0 -0
  620. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_coord_uat.py +0 -0
  621. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_coord_web_sse_restart_live.py +0 -0
  622. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_coordinator_machine.py +0 -0
  623. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_cross_platform_imports.py +0 -0
  624. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_dao.py +0 -0
  625. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_dashboard.py +0 -0
  626. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_dashboard_api.py +0 -0
  627. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_dashboard_fixture.py +0 -0
  628. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_dashboard_server.py +0 -0
  629. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_dashboard_terminal.py +0 -0
  630. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_dashboard_terminal_live.py +0 -0
  631. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_dead_end.py +0 -0
  632. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_decomposition_chat.py +0 -0
  633. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_deploy_coord_db_backup.py +0 -0
  634. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_deploy_coord_web_dist.py +0 -0
  635. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_deploy_coord_web_rollback.py +0 -0
  636. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_deploy_db_backup_unit.py +0 -0
  637. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_deploy_drive_queue_unit.py +0 -0
  638. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_deploy_failure_notify_unit.py +0 -0
  639. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_deploy_manifest.py +0 -0
  640. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_deploy_notify_unit.py +0 -0
  641. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_deploy_units_lane.py +0 -0
  642. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_deploy_web_unit.py +0 -0
  643. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_deprecation_telemetry.py +0 -0
  644. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_deps.py +0 -0
  645. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_diagnose.py +0 -0
  646. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_dispatch.py +0 -0
  647. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_dispatch_liveness.py +0 -0
  648. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_dispatch_target_validation.py +0 -0
  649. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_dispatch_workers.py +0 -0
  650. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_dist_name.py +0 -0
  651. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_done_housekeeping.py +0 -0
  652. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_dr_azure_scripts.py +0 -0
  653. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_dr_promote.py +0 -0
  654. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_dr_verify.py +0 -0
  655. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_drive.py +0 -0
  656. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_drive_machine_fault.py +0 -0
  657. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_drive_queue_blocked_rendering.py +0 -0
  658. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_drive_queue_launch_argv.py +0 -0
  659. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_drive_queue_max_parallel_config.py +0 -0
  660. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_drive_queue_max_parallel_per_repo_config.py +0 -0
  661. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_drive_queue_roll_pending.py +0 -0
  662. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_drive_queue_self_cordon_escalation.py +0 -0
  663. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_drive_sessions_snapshot.py +0 -0
  664. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_drive_state.py +0 -0
  665. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_drive_tmux.py +0 -0
  666. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_epic_up_capability_detection.py +0 -0
  667. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
  668. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_epic_up_image_provenance.py +0 -0
  669. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_errors.py +0 -0
  670. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_events.py +0 -0
  671. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_failure_class.py +0 -0
  672. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_failure_classifier.py +0 -0
  673. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_filelock.py +0 -0
  674. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
  675. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_fix_escalation_classifier.py +0 -0
  676. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_fix_of_force_override.py +0 -0
  677. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_fleet_config_health.py +0 -0
  678. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_fleet_health_probes.py +0 -0
  679. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_fleet_health_snapshot.py +0 -0
  680. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_fleet_watchdog.py +0 -0
  681. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_forge_availability.py +0 -0
  682. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_freshness.py +0 -0
  683. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_gate_a.py +0 -0
  684. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_gate_b.py +0 -0
  685. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_gate_snapshot_staleness.py +0 -0
  686. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_gates.py +0 -0
  687. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_gather_fleet_tmux_sessions.py +0 -0
  688. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_gen_mock_index.py +0 -0
  689. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_generated_rust_fixture.py +0 -0
  690. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_generated_rust_requests.py +0 -0
  691. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_generated_types_fixture.py +0 -0
  692. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_github_ops.py +0 -0
  693. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_github_throttle.py +0 -0
  694. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_goal.py +0 -0
  695. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_graph_health.py +0 -0
  696. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_graph_selfheal_absent_2237.py +0 -0
  697. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_handoff.py +0 -0
  698. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_health_checks.py +0 -0
  699. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_health_cli.py +0 -0
  700. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_health_cli_graph.py +0 -0
  701. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_health_config.py +0 -0
  702. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_health_context.py +0 -0
  703. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_health_coord_tui_ci_pin.py +0 -0
  704. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_health_coord_web_ci_pin.py +0 -0
  705. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_health_deploy_lane_facts.py +0 -0
  706. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_health_fix.py +0 -0
  707. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_health_incident_regression.py +0 -0
  708. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_health_issues_sync_staleness.py +0 -0
  709. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_health_pr_churn.py +0 -0
  710. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_health_pypi.py +0 -0
  711. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_health_registry.py +0 -0
  712. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_health_release_cordon_probe.py +0 -0
  713. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_health_timer_active.py +0 -0
  714. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_health_toolchain.py +0 -0
  715. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_health_unit_drift.py +0 -0
  716. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_health_unit_enablement.py +0 -0
  717. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_health_wedged_drive_queue.py +0 -0
  718. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_hooks.py +0 -0
  719. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_housekeeping.py +0 -0
  720. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_human_attended_437.py +0 -0
  721. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_init.py +0 -0
  722. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_install_agent_venv_2911.py +0 -0
  723. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_integration.py +0 -0
  724. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_interactive.py +0 -0
  725. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_interactive_briefing_echo.py +0 -0
  726. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_interactive_pane_log_2541.py +0 -0
  727. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_interactive_prefill_state.py +0 -0
  728. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_interactive_session_relaunch.py +0 -0
  729. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_interactive_test_verdict_backstop.py +0 -0
  730. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_interactive_token_attribution.py +0 -0
  731. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_interactive_worktree.py +0 -0
  732. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_invariant_alarms.py +0 -0
  733. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_issue_store_seam.py +0 -0
  734. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_issues_sync_status.py +0 -0
  735. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_liveness_auditor.py +0 -0
  736. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_liveness_notify.py +0 -0
  737. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_lock_contention_ratchet.py +0 -0
  738. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_machine_fault.py +0 -0
  739. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_machine_metrics.py +0 -0
  740. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_machine_onboard.py +0 -0
  741. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_machine_pause.py +0 -0
  742. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_machine_stats.py +0 -0
  743. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_merge_queue.py +0 -0
  744. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_merge_verify.py +0 -0
  745. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_milestone_chat.py +0 -0
  746. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_milestone_dispatch.py +0 -0
  747. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_milestone_gate.py +0 -0
  748. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_milestone_order.py +0 -0
  749. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_milestone_seam.py +0 -0
  750. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_mock_author.py +0 -0
  751. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_model_tiering.py +0 -0
  752. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_models.py +0 -0
  753. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_models_config_labels.py +0 -0
  754. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_needs_attention.py +0 -0
  755. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_network.py +0 -0
  756. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_new_issue_chat.py +0 -0
  757. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_next_release_tag.py +0 -0
  758. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_node_shim.py +0 -0
  759. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_notifier_baseline.py +0 -0
  760. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_notifier_cli.py +0 -0
  761. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_notifier_collect.py +0 -0
  762. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_notifier_config.py +0 -0
  763. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_notifier_drive_seam.py +0 -0
  764. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_notifier_isolation.py +0 -0
  765. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_notifier_predicate.py +0 -0
  766. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_notifier_quiet_hours.py +0 -0
  767. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_notifier_service.py +0 -0
  768. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_notify.py +0 -0
  769. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_notify_drain.py +0 -0
  770. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_openapi.py +0 -0
  771. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_operational_defaults.py +0 -0
  772. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_overlap_fence.py +0 -0
  773. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_overlap_predict.py +0 -0
  774. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_packaged_deploy_units.py +0 -0
  775. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_parentage.py +0 -0
  776. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_paste_landed.py +0 -0
  777. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_phantom_heal_venv_independence_2570.py +0 -0
  778. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_pipeline.py +0 -0
  779. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_plan_followup_approve_plan_command.py +0 -0
  780. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_plan_followup_pr_command.py +0 -0
  781. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_plan_followup_review_command.py +0 -0
  782. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_plan_only.py +0 -0
  783. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_plan_parser.py +0 -0
  784. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_platform_paths.py +0 -0
  785. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_portal_bridge.py +0 -0
  786. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_portal_config.py +0 -0
  787. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_portal_store.py +0 -0
  788. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_portal_sync.py +0 -0
  789. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_pr_body_lint.py +0 -0
  790. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_prereqs.py +0 -0
  791. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_production_db_guard.py +0 -0
  792. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_progress.py +0 -0
  793. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_provider_seam.py +0 -0
  794. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_providers.py +0 -0
  795. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_providers_config_labels.py +0 -0
  796. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_providers_pty.py +0 -0
  797. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_provision_core.py +0 -0
  798. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_provision_machine.py +0 -0
  799. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_py_rust_mirror_inventory.py +0 -0
  800. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_quiet_hours.py +0 -0
  801. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_quiet_hours_store_2146.py +0 -0
  802. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_reap_merged_sessions.py +0 -0
  803. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_reap_stale_interactive_tick.py +0 -0
  804. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_reconcile.py +0 -0
  805. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_reconcile_branch.py +0 -0
  806. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_reconcile_completions.py +0 -0
  807. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_reconcile_late_agent_reports_2547.py +0 -0
  808. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_reconcile_merges.py +0 -0
  809. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_reconcile_no_agent_record.py +0 -0
  810. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_reconcile_tick.py +0 -0
  811. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_reconcile_usage_limit_done.py +0 -0
  812. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_refine_chat.py +0 -0
  813. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_release_cordon_2101.py +0 -0
  814. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
  815. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_release_cordon_deadlock_2240.py +0 -0
  816. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_release_cordon_drain_stall_3336.py +0 -0
  817. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_release_cordon_stuck_2490.py +0 -0
  818. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_release_propagate.py +0 -0
  819. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_release_propagate_threshold.py +0 -0
  820. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_release_roll_between_legs_2854.py +0 -0
  821. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_release_roll_window_handoff.py +0 -0
  822. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_release_unified_1242.py +0 -0
  823. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_release_verify.py +0 -0
  824. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_release_window.py +0 -0
  825. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_remote_auto_prune.py +0 -0
  826. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_remote_interactive_reaper.py +0 -0
  827. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_repo_add.py +0 -0
  828. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_repo_dormancy.py +0 -0
  829. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_repo_edit_2220.py +0 -0
  830. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_repo_graph_fleet_2237.py +0 -0
  831. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_repo_max_parallel_3423.py +0 -0
  832. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_repo_onboard_2220.py +0 -0
  833. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_report_result_push.py +0 -0
  834. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_reports.py +0 -0
  835. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_restart_cmd.py +0 -0
  836. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_retry.py +0 -0
  837. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_retry_advisory_1606.py +0 -0
  838. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_retry_escalation_classify_3360.py +0 -0
  839. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_retry_type_1636.py +0 -0
  840. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_revalidate.py +0 -0
  841. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_review.py +0 -0
  842. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_review_end_review_without_verdict.py +0 -0
  843. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_review_parse_failure_diagnostic.py +0 -0
  844. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_review_reaffirm.py +0 -0
  845. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_review_state.py +0 -0
  846. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_review_verdict_backstop.py +0 -0
  847. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_review_verdict_override_audit.py +0 -0
  848. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_review_verdict_relay.py +0 -0
  849. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_review_zero_commits.py +0 -0
  850. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_scoped_review_wiring.py +0 -0
  851. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_scorecard.py +0 -0
  852. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_self_health.py +0 -0
  853. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_serve.py +0 -0
  854. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_serve_app.py +0 -0
  855. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_serve_app_board_trim.py +0 -0
  856. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_serve_rest_routes.py +0 -0
  857. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_session.py +0 -0
  858. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_slice_issue_attribution.py +0 -0
  859. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_smoke.py +0 -0
  860. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_smoke_fanout_manifest_3333.py +0 -0
  861. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_smoke_live_checkout_restore.py +0 -0
  862. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_smoke_workflow.py +0 -0
  863. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_spend_ceiling.py +0 -0
  864. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_spend_ceiling_coordinator.py +0 -0
  865. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_split.py +0 -0
  866. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_split_work.py +0 -0
  867. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_sql_dialect.py +0 -0
  868. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_sqlite_connect_ratchet.py +0 -0
  869. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_stage_projection.py +0 -0
  870. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_stale_busy_reviewer_697.py +0 -0
  871. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_stalled_pipeline.py +0 -0
  872. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_state_review_findings_daemon.py +0 -0
  873. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_status_fleet_footer.py +0 -0
  874. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_stop_1567.py +0 -0
  875. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_store_contract.py +0 -0
  876. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_store_migrate.py +0 -0
  877. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_stuck.py +0 -0
  878. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_stuck_test_state_watchdog_2803.py +0 -0
  879. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_terminal_command.py +0 -0
  880. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_test_author.py +0 -0
  881. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_test_chat.py +0 -0
  882. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_test_orchestrator.py +0 -0
  883. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_test_report.py +0 -0
  884. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_test_verdict_parsing.py +0 -0
  885. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_test_verdict_transcript_floor.py +0 -0
  886. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_text_io_encoding_audit.py +0 -0
  887. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_thin_client_board_audit.py +0 -0
  888. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_thin_client_config_load_1080.py +0 -0
  889. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_thin_client_daemon_routing_906.py +0 -0
  890. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_throwaway_vm.py +0 -0
  891. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_tmux_host.py +0 -0
  892. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_tmux_session.py +0 -0
  893. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_transcript_floor.py +0 -0
  894. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_uat_checks.py +0 -0
  895. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_usage.py +0 -0
  896. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_usage_limits.py +0 -0
  897. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_usage_rollup.py +0 -0
  898. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_venv_live_install_2121.py +0 -0
  899. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_version_single_source.py +0 -0
  900. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_watch.py +0 -0
  901. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
  902. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_worker_env_venv_isolation.py +0 -0
  903. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_worker_events.py +0 -0
  904. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_worker_image_pin_sync.py +0 -0
  905. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_worker_safety.py +0 -0
  906. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_worker_test_scoping.py +0 -0
  907. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_worktree.py +0 -0
  908. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_worktree_rmtree_chokepoint.py +0 -0
  909. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/tests/test_write_parity.py +0 -0
  910. {code_coordinator-0.5.526 → code_coordinator-0.5.527}/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.526
3
+ Version: 0.5.527
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.526
3
+ Version: 0.5.527
4
4
  Summary: Coordinate Claude Code workers across multiple machines and repos.
5
5
  Author-email: John Donaghy <johnfdonaghy@gmail.com>
6
6
  License-Expression: LicenseRef-FSL-1.1-MIT
@@ -1,7 +1,7 @@
1
1
  {
2
- "tag": "0.5.526",
2
+ "tag": "0.5.527",
3
3
  "distance": 0,
4
- "node": "g693a401ada00646a0a947757928045708b6bde77",
4
+ "node": "g60df5470d276cf021d283bc8ebbd6cab60aee904",
5
5
  "dirty": false,
6
6
  "branch": "HEAD",
7
7
  "node_date": "2026-09-27"
@@ -313,6 +313,13 @@ class BoardDriveQueueEntry:
313
313
  apply_verdict: str
314
314
  apply_verdict_reason: str
315
315
  apply_verdict_at: float | None = None
316
+ # #3463: the all-time WORK_LIKE leg count this row saw when
317
+ # `enqueue_drive_queue` last (re-)declared it — see
318
+ # `coord.drive_queue.QueueEntry.legs_at_enqueue` for what it feeds.
319
+ # Default 0 — both for a row predating this column and for a thin client
320
+ # talking to a daemon that predates it — reproduces the pre-#3463
321
+ # `work_leg_count - 1` fix-round formula exactly.
322
+ legs_at_enqueue: int = 0
316
323
 
317
324
 
318
325
  # ── #3428 (#3408 item 3): concurrency ceilings + provenance + occupancy ──────
@@ -106,7 +106,6 @@ from coord.drive_queue import (
106
106
  resolve_max_parallel,
107
107
  resolve_max_parallel_per_repo,
108
108
  resolve_repo_ceilings,
109
- total_fix_round_budget,
110
109
  unreachable_wait_alert,
111
110
  validate_apply_gate,
112
111
  validate_enqueue,
@@ -1637,20 +1636,35 @@ def drive_queue_list(repo: str | None, output_json: bool, config_path: Path) ->
1637
1636
  bits.append(f"attempts={entry.attempts}")
1638
1637
  if entry.deferrals:
1639
1638
  bits.append(f"deferrals={entry.deferrals}")
1640
- # #2972: the fix-round ceiling's OWN count — total work legs (work +
1641
- # every fix round) this entry has run across every relaunch, against
1642
- # the budget `_reconcile_running` actually enforces. Only shown once
1643
- # at least one leg has been dispatched — a `waiting` entry that has
1644
- # never launched has nothing to report, same as `attempts`/
1639
+ # #2972/#3463: the fix-round ceiling's OWN count, rendered with the
1640
+ # SAME meaning `coord drive`'s own `fix round N/M` lines use
1641
+ # (`coord/drive.py`) — fix rounds SPENT against `max_fix_rounds`, not
1642
+ # "every work-like leg including the initial one" against "budget +
1643
+ # 1". `lifetime_legs` is every WORK_LIKE leg `leg_counts()` has ever
1644
+ # seen for this issue, all-time, across every predecessor row; #3463
1645
+ # narrows that to `row_legs` — legs run since THIS row was last
1646
+ # (re-)declared by `enqueue_drive_queue` (`entry.legs_at_enqueue`),
1647
+ # the SAME baseline `remaining_fix_rounds` subtracts. Only shown once
1648
+ # this row has itself dispatched at least one leg — a `waiting`
1649
+ # entry that has never launched (or a freshly re-added row that
1650
+ # hasn't relaunched yet) has nothing to report, same as `attempts`/
1645
1651
  # `deferrals` above being suppressed at 0.
1646
- work_legs = sum(
1652
+ lifetime_legs = sum(
1647
1653
  count
1648
1654
  for kind, count in all_leg_counts.get(entry.key, {}).items()
1649
1655
  if kind in WORK_LIKE
1650
1656
  )
1651
- if work_legs:
1652
- budget = total_fix_round_budget(entry, fix_round_config_default)
1653
- bits.append(f"fix_rounds={min(work_legs, budget)}/{budget}")
1657
+ row_legs = max(lifetime_legs - entry.legs_at_enqueue, 0)
1658
+ if row_legs:
1659
+ effective_max = effective_max_fix_rounds(entry, fix_round_config_default)
1660
+ fix_rounds_spent = max(row_legs - 1, 0)
1661
+ # #3463: an overrun (the #3454 leak: a row that dispatched past
1662
+ # its own ceiling before the fix landed) must stay VISIBLE as an
1663
+ # overrun, not silently clamp back down to a reassuring `N/N` —
1664
+ # a gate that can never show its own failure state is not a
1665
+ # gate (epic #2096).
1666
+ overrun = "!" if fix_rounds_spent > effective_max else ""
1667
+ bits.append(f"fix_rounds={fix_rounds_spent}/{effective_max}{overrun}")
1654
1668
  if entry.resumes:
1655
1669
  # #2230: how many times the merge-gate sweep has auto-resumed
1656
1670
  # THIS row from `blocked` — the churn signal the issue asks to be
@@ -1058,7 +1058,14 @@ def retry_on_locked(
1058
1058
  # first place" (a quadraui-style merge into a non-default branch) — both
1059
1059
  # read identically as `merged=True, issue_state="open"` otherwise. See
1060
1060
  # `coord.drive_queue.IssueFacts.landed`'s docstring.
1061
- _DB_SCHEMA_VERSION = 19
1061
+ #
1062
+ # #3463: bumped 19 -> 20 for the new `drive_queue.legs_at_enqueue` column
1063
+ # appended to `_MIGRATE_ADD_COLUMNS` below — the all-time WORK_LIKE leg
1064
+ # count a row saw at `enqueue_drive_queue` time, so `remaining_fix_rounds`
1065
+ # can measure a row's own spend from ITS baseline rather than every
1066
+ # predecessor row's lifetime total. See `coord.drive_queue.QueueEntry.
1067
+ # legs_at_enqueue`.
1068
+ _DB_SCHEMA_VERSION = 20
1062
1069
 
1063
1070
 
1064
1071
  def _read_schema_version(conn: sqlite3.Connection) -> int:
@@ -1592,6 +1599,24 @@ _SCHEMA_SQL = """
1592
1599
  -- point-in-time observation" discipline #2133's reason_at
1593
1600
  -- established for last_reason. NULL until a verdict is recorded.
1594
1601
  apply_verdict_at REAL,
1602
+ -- #3463: the all-time WORK_LIKE leg count (coord.state.
1603
+ -- leg_counts()'s per-issue figure) THIS ROW saw at the moment it
1604
+ -- was declared by `enqueue_drive_queue` — the baseline
1605
+ -- `coord.drive_queue.remaining_fix_rounds` subtracts off before
1606
+ -- comparing against `max_fix_rounds`, so a row's own spend is
1607
+ -- "legs since THIS row was enqueued", not "legs this issue has
1608
+ -- ever had across every predecessor row". Re-stamped on every
1609
+ -- `enqueue_drive_queue` call (insert OR update-in-place), which
1610
+ -- is what makes an explicit `remove` + `add` actually hand out a
1611
+ -- fresh budget as the #3454 ceiling message promises, while
1612
+ -- leaving the #2972 "no fresh budget from a bare relaunch"
1613
+ -- guarantee untouched — a relaunch never calls
1614
+ -- `enqueue_drive_queue` at all, only `update_drive_queue_entry`.
1615
+ -- 0 (NOT NULL) for every row predating this column: subtracting
1616
+ -- 0 reproduces the pre-#3463 `work_leg_count - 1` formula
1617
+ -- exactly, so an existing row's already-computed remaining
1618
+ -- budget does not change under this migration.
1619
+ legs_at_enqueue INTEGER NOT NULL DEFAULT 0,
1595
1620
  UNIQUE(repo_name, issue_number)
1596
1621
  );
1597
1622
 
@@ -2510,6 +2535,13 @@ _MIGRATE_ADD_COLUMNS: list[str] = [
2510
2535
  # auto-close the linked issue at all — both look identical as
2511
2536
  # `merged=True, issue_state="open"` without it.
2512
2537
  "ALTER TABLE issues ADD COLUMN state_reason TEXT NOT NULL DEFAULT ''",
2538
+ # #3463: see the CREATE TABLE comment above — the all-time WORK_LIKE leg
2539
+ # count a row saw at `enqueue_drive_queue` time, so a re-added row's fix
2540
+ # budget is measured from ITS OWN baseline rather than every
2541
+ # predecessor's lifetime spend. 0 for every row predating this
2542
+ # migration, which reproduces the pre-#3463 `work_leg_count - 1` formula
2543
+ # unchanged for that row.
2544
+ "ALTER TABLE drive_queue ADD COLUMN legs_at_enqueue INTEGER NOT NULL DEFAULT 0",
2513
2545
  ]
2514
2546
 
2515
2547
 
@@ -1456,6 +1456,19 @@ class QueueEntry:
1456
1456
  # `last_reason`. `None` for a row predating this column or one whose
1457
1457
  # `apply_verdict` is still unset.
1458
1458
  apply_verdict_at: float | None = None
1459
+ # #3463: the all-time WORK_LIKE leg count (the SAME per-issue figure
1460
+ # `IssueFacts.work_leg_count` carries) this row saw at the moment
1461
+ # `enqueue_drive_queue` last declared it — see
1462
+ # `coord.state._enqueue_drive_queue_local` for where it is stamped, on
1463
+ # every `add` (insert OR update-in-place), never carried forward.
1464
+ # `remaining_fix_rounds` subtracts this off `facts.work_leg_count`
1465
+ # before comparing spend against `max_fix_rounds`, so a row's own
1466
+ # budget is measured from ITS OWN baseline — "legs since THIS row was
1467
+ # last (re-)declared" — rather than the lifetime total every
1468
+ # predecessor row for this issue ever spent. `0` for every row
1469
+ # predating this column, which reproduces the pre-#3463
1470
+ # `work_leg_count - 1` formula exactly for that row.
1471
+ legs_at_enqueue: int = 0
1459
1472
 
1460
1473
  @property
1461
1474
  def key(self) -> str:
@@ -1556,6 +1569,7 @@ class QueueEntry:
1556
1569
  if row.get("apply_verdict_at") is None
1557
1570
  else float(row.get("apply_verdict_at"))
1558
1571
  ),
1572
+ legs_at_enqueue=int(row.get("legs_at_enqueue") or 0),
1559
1573
  )
1560
1574
 
1561
1575
 
@@ -1617,29 +1631,46 @@ def remaining_fix_rounds(
1617
1631
  resumes rather than restarts.
1618
1632
 
1619
1633
  ``facts.work_leg_count`` is every work-like assignment `build_board_view`
1620
- has EVER seen for this issue, across every drive session this entry has
1621
- had — not just the one that just died. Subtracting the one unconditional
1622
- initial work leg turns that into "fix rounds already spent"; subtracting
1623
- THAT from :func:`effective_max_fix_rounds`'s plain per-drive allowance
1624
- (NOT :func:`total_fix_round_budget` — that figure already has the
1625
- initial work leg folded in, and folding it in a second time here would
1626
- hand a brand-new entry, with zero legs spent, a budget one round wider
1627
- than `coord drive`'s own interactive default ever allows) is what makes
1628
- a second (or third, or fourth) relaunch get a SMALLER budget than the
1634
+ has EVER seen for this issue, across every drive session this entry (and
1635
+ every predecessor row for the same issue) has ever had. #3463: what this
1636
+ row has itself SPENT is that lifetime total minus
1637
+ ``entry.legs_at_enqueue`` — the lifetime count as of the moment THIS row
1638
+ was last (re-)declared by `enqueue_drive_queue` — not the raw lifetime
1639
+ total. Subtracting the one unconditional initial work leg turns that
1640
+ into "fix rounds already spent"; subtracting THAT from
1641
+ :func:`effective_max_fix_rounds`'s plain per-drive allowance (NOT
1642
+ :func:`total_fix_round_budget` — that figure already has the initial
1643
+ work leg folded in, and folding it in a second time here would hand a
1644
+ brand-new entry, with zero legs spent, a budget one round wider than
1645
+ `coord drive`'s own interactive default ever allows) is what makes a
1646
+ second (or third, or fourth) relaunch get a SMALLER budget than the
1629
1647
  first, instead of the same fresh one every time — the exact defect
1630
1648
  quadraui#625 reported: four work legs dispatched against a
1631
1649
  ``pipeline.max_fix_rounds`` of 2 (budget 3), because each relaunch's
1632
1650
  ``coord drive --max-fix-rounds`` was computed from `entry` alone, blind
1633
1651
  to what prior sessions had already spent. A fresh entry (``work_leg_count
1634
- == 0``) reads back exactly :func:`effective_max_fix_rounds` — unchanged
1635
- from every pre-#2972 launch.
1652
+ == legs_at_enqueue``) reads back exactly :func:`effective_max_fix_rounds`
1653
+ — unchanged from every pre-#2972 launch, and unchanged by #3463 for a row
1654
+ predating the ``legs_at_enqueue`` column (``0``, reproducing the old
1655
+ ``work_leg_count - 1`` formula exactly).
1656
+
1657
+ #3463: this is also what makes an explicit ``coord drive-queue remove``
1658
+ + ``add`` actually hand out a fresh budget, as the #3454 ceiling message
1659
+ promises — the re-added row's own ``legs_at_enqueue`` is stamped at
1660
+ THAT ``add``, not inherited from a predecessor row. It does NOT change
1661
+ the #2972 guarantee that a bare relaunch (no `add` in between) gets no
1662
+ fresh budget: a relaunch never calls `enqueue_drive_queue` at all, only
1663
+ `update_drive_queue_entry`, so `legs_at_enqueue` never moves between
1664
+ relaunches of the SAME row.
1636
1665
 
1637
1666
  Never negative — an entry that has already met or exceeded
1638
1667
  :func:`total_fix_round_budget` reads ``0`` (no more fix rounds), the
1639
1668
  signal `_reconcile_running` uses to stop relaunching altogether rather
1640
1669
  than pass a session a budget it cannot spend down further.
1641
1670
  """
1642
- fix_rounds_spent = max(facts.work_leg_count - 1, 0)
1671
+ fix_rounds_spent = max(
1672
+ facts.work_leg_count - entry.legs_at_enqueue - 1, 0
1673
+ )
1643
1674
  return max(effective_max_fix_rounds(entry, config_default) - fix_rounds_spent, 0)
1644
1675
 
1645
1676
 
@@ -5187,9 +5218,14 @@ def _reconcile_running(
5187
5218
  # showed a bare "giving up" read as "nothing more will happen or be
5188
5219
  # spent" while the fleet kept dispatching paid legs against the same
5189
5220
  # branch for hours.
5221
+ # #3463: legs run against THIS row's own baseline, not the raw
5222
+ # lifetime count — see `remaining_fix_rounds`'s docstring. Reporting
5223
+ # the raw `facts.work_leg_count` here would misstate a re-added
5224
+ # row's spend as its predecessors' lifetime total.
5225
+ row_legs = max(facts.work_leg_count - entry.legs_at_enqueue, 0)
5190
5226
  reason = (
5191
5227
  f"fix-round ceiling reached across relaunches (#2972): "
5192
- f"{facts.work_leg_count} work leg(s) already run against a "
5228
+ f"{row_legs} work leg(s) already run against this row's own "
5193
5229
  f"budget of {budget} (1 work dispatch + "
5194
5230
  f"{effective_max_fix_rounds(entry, fix_round_config_default)} fix "
5195
5231
  f"round(s)) — giving up rather than relaunching with a fresh "
@@ -5197,8 +5233,8 @@ def _reconcile_running(
5197
5233
  f"gate-clear resume, or auto-dispatched stale-rebase conflict-fix "
5198
5234
  f"(from any of this fleet's independent dispatchers) will fire "
5199
5235
  f"for this entry — `coord drive-queue remove {entry.repo} "
5200
- f"{entry.issue}` + `add` (a fresh row) is the only way to give "
5201
- f"it another attempt."
5236
+ f"{entry.issue}` + `add` (a fresh row, #3463: with its own fresh "
5237
+ f"budget) is the only way to give it another attempt."
5202
5238
  )
5203
5239
  return (
5204
5240
  Reconcile(entry.key, "exhausted", reason, occupies=False),
@@ -8473,7 +8473,7 @@ _DRIVE_QUEUE_COLUMNS = (
8473
8473
  "enqueued_at, hold_after, hold_reason, resume_when, hold_state, "
8474
8474
  "hold_probes, launch_host, hold_scope, resumes, retry_backoff_at, "
8475
8475
  "max_fix_rounds, no_acceptance, plan_destructive, apply_verdict, "
8476
- "apply_verdict_reason, apply_verdict_at"
8476
+ "apply_verdict_reason, apply_verdict_at, legs_at_enqueue"
8477
8477
  )
8478
8478
 
8479
8479
  # Fields `update_drive_queue_entry` may write. Deliberately excludes the
@@ -8655,6 +8655,42 @@ def enqueue_drive_queue(
8655
8655
  )
8656
8656
 
8657
8657
 
8658
+ def _work_leg_count_for_issue_local(conn, repo_name: str, issue_number: int) -> int:
8659
+ """All-time WORK_LIKE assignment count for ONE issue, right now (#3463).
8660
+
8661
+ Same scope as :func:`_leg_counts_local` (both ``assignments`` and
8662
+ ``assignments_archive``, so a long-lived issue's early legs don't drop
8663
+ out of the count as they age past the archive retention window) but
8664
+ narrowed to a single ``(repo_name, issue_number)`` and run on the
8665
+ CALLER's own connection — so ``_enqueue_drive_queue_local`` can stamp
8666
+ ``legs_at_enqueue`` atomically with the very write that declares the
8667
+ row, rather than racing a second connection's transaction.
8668
+
8669
+ A NULL/empty ``type`` counts as ``"work"`` — same convention
8670
+ :func:`coord.drive_queue.compute_leg_counts` uses (``t = assignment_type
8671
+ or "work"``) — which is always in ``WORK_LIKE_TYPES``, so a bare
8672
+ ``type IS NULL`` row is counted, never silently dropped.
8673
+ """
8674
+ placeholders = ",".join("?" for _ in WORK_LIKE_TYPES)
8675
+ total = 0
8676
+ for table in ("assignments", "assignments_archive"):
8677
+ try:
8678
+ row = sql.execute(conn,
8679
+ f"SELECT COUNT(*) AS n FROM {table} WHERE repo_name = ? " # noqa: S608 — constant
8680
+ f"AND issue_number = ? AND (type IS NULL OR type IN ({placeholders}))",
8681
+ (repo_name, issue_number, *WORK_LIKE_TYPES),
8682
+ ).fetchone()
8683
+ except sql.driver_errors() as exc: # #2784: was sqlite3.OperationalError only
8684
+ # Mirrors `_leg_counts_local`: `continue` on the SAME connection
8685
+ # so a missing `assignments_archive` (housekeeping never ran)
8686
+ # doesn't poison the transaction the caller's write is still
8687
+ # inside of (#2983).
8688
+ rollback_after_driver_error(conn, exc)
8689
+ continue
8690
+ total += int(row["n"]) if row is not None else 0
8691
+ return total
8692
+
8693
+
8658
8694
  def _enqueue_drive_queue_local(
8659
8695
  repo_name: str,
8660
8696
  issue_number: int,
@@ -8705,6 +8741,21 @@ def _enqueue_drive_queue_local(
8705
8741
  "SELECT id FROM drive_queue WHERE repo_name = ? AND issue_number = ?",
8706
8742
  (repo_name, issue_number),
8707
8743
  ).fetchone()
8744
+ # #3463: the all-time WORK_LIKE leg count for THIS issue, read on
8745
+ # THIS connection right before the write below commits it as the
8746
+ # row's new baseline. Recomputed on every `enqueue_drive_queue` call
8747
+ # — insert AND update-in-place — never carried forward from a prior
8748
+ # `legs_at_enqueue`, so an explicit `add` (whether it lands on a
8749
+ # brand-new row after `remove`, or refreshes an already-queued one)
8750
+ # always measures this row's spend from "legs as of right now",
8751
+ # which is what lets `remaining_fix_rounds` hand out the fresh
8752
+ # budget the #3454 ceiling message promises. A bare relaunch never
8753
+ # reaches this function at all (it goes through
8754
+ # `update_drive_queue_entry` instead), so the #2972 "no fresh
8755
+ # budget from a relaunch" guarantee is untouched.
8756
+ legs_at_enqueue = _work_leg_count_for_issue_local(
8757
+ conn, repo_name, issue_number
8758
+ )
8708
8759
  if existing is not None:
8709
8760
  # Already queued → update the operator-declared fields in place
8710
8761
  # rather than creating a second row for the same issue. Run
@@ -8720,7 +8771,7 @@ def _enqueue_drive_queue_local(
8720
8771
  "UPDATE drive_queue SET machine = ?, after_json = ?, hold_after = ?, "
8721
8772
  "hold_reason = ?, resume_when = ?, hold_state = ?, hold_probes = 0, "
8722
8773
  "hold_scope = ?, max_fix_rounds = ?, no_acceptance = ?, "
8723
- "plan_destructive = ? WHERE id = ?",
8774
+ "plan_destructive = ?, legs_at_enqueue = ? WHERE id = ?",
8724
8775
  (
8725
8776
  machine,
8726
8777
  after_json,
@@ -8732,6 +8783,7 @@ def _enqueue_drive_queue_local(
8732
8783
  max_fix_rounds,
8733
8784
  no_acceptance_int,
8734
8785
  plan_destructive_int,
8786
+ legs_at_enqueue,
8735
8787
  existing["id"],
8736
8788
  ),
8737
8789
  )
@@ -8746,8 +8798,8 @@ def _enqueue_drive_queue_local(
8746
8798
  "INSERT INTO drive_queue "
8747
8799
  "(repo_name, issue_number, position, machine, after_json, enqueued_at, "
8748
8800
  " hold_after, hold_reason, resume_when, hold_state, hold_scope, "
8749
- " max_fix_rounds, no_acceptance, plan_destructive) "
8750
- "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
8801
+ " max_fix_rounds, no_acceptance, plan_destructive, legs_at_enqueue) "
8802
+ "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
8751
8803
  (
8752
8804
  repo_name,
8753
8805
  issue_number,
@@ -8763,6 +8815,7 @@ def _enqueue_drive_queue_local(
8763
8815
  max_fix_rounds,
8764
8816
  no_acceptance_int,
8765
8817
  plan_destructive_int,
8818
+ legs_at_enqueue,
8766
8819
  ),
8767
8820
  pk_column="id",
8768
8821
  )
@@ -5035,6 +5035,70 @@ def test_leg_counts_non_lock_failure_warns_and_degrades_to_zero_not_silence(
5035
5035
  assert queued(1650)["state"] == "running"
5036
5036
 
5037
5037
 
5038
+ # ── #3463: `list`'s `fix_rounds=` renders spend, not "every leg incl. the
5039
+ # initial one against budget+1" — and never clamps an overrun back to a
5040
+ # reassuring `N/N`.
5041
+
5042
+
5043
+ def test_list_renders_fix_rounds_as_spent_over_max_not_legs_over_budget_plus_one(
5044
+ cli, seed
5045
+ ):
5046
+ """`--max-fix-rounds 4` — a row that has run 1 work + 4 fix legs (5 legs
5047
+ total) must render `fix_rounds=4/4` (4 fix rounds spent of 4 allowed),
5048
+ never the pre-#3463 `5/5` (every leg, including the unconditional
5049
+ initial one, against `max_fix_rounds + 1`)."""
5050
+ seed(issues={1650: "open"})
5051
+ assert cli("add", REPO, "1650", "--max-fix-rounds", "4").exit_code == 0
5052
+ # The row's own history accrues AFTER it is declared — `legs_at_enqueue`
5053
+ # was stamped at 0 by the `add` above, so every one of these counts as
5054
+ # this row's own spend.
5055
+ seed(assignments=[
5056
+ {"issue_number": 1650, "type": "work", "status": "done"}
5057
+ for _ in range(5)
5058
+ ])
5059
+
5060
+ result = cli("list")
5061
+ assert result.exit_code == 0, result.output
5062
+ assert "fix_rounds=4/4" in result.output
5063
+ assert "fix_rounds=5/5" not in result.output
5064
+
5065
+
5066
+ def test_list_renders_zero_spent_for_a_fresh_row_with_only_its_initial_leg(
5067
+ cli, seed
5068
+ ):
5069
+ """A fresh `--max-fix-rounds 5` row with only its initial (unconditional)
5070
+ work leg has spent NO fix rounds yet — `fix_rounds=0/5`, never the
5071
+ pre-#3463 `1/6`."""
5072
+ seed(issues={1650: "open"})
5073
+ assert cli("add", REPO, "1650", "--max-fix-rounds", "5").exit_code == 0
5074
+ seed(assignments=[{"issue_number": 1650, "type": "work", "status": "running"}])
5075
+
5076
+ result = cli("list")
5077
+ assert result.exit_code == 0, result.output
5078
+ assert "fix_rounds=0/5" in result.output
5079
+ assert "fix_rounds=1/6" not in result.output
5080
+
5081
+
5082
+ def test_list_marks_an_overrun_row_rather_than_clamping_to_n_over_n(cli, seed):
5083
+ """A row that dispatched PAST its own ceiling (the #3454 leak this issue
5084
+ also reports) must stay visibly an overrun — never silently clamp back
5085
+ down to a reassuring `budget/budget`."""
5086
+ seed(issues={1650: "open"})
5087
+ assert cli("add", REPO, "1650", "--max-fix-rounds", "2").exit_code == 0
5088
+ # 1 work + 5 more legs = 6 total, 5 fix rounds spent against a 2-round
5089
+ # allowance — well past the ceiling.
5090
+ seed(assignments=[
5091
+ {"issue_number": 1650, "type": "work", "status": "done"}
5092
+ for _ in range(6)
5093
+ ])
5094
+
5095
+ result = cli("list")
5096
+ assert result.exit_code == 0, result.output
5097
+ assert "fix_rounds=5/2!" in result.output
5098
+ assert "fix_rounds=2/2" not in result.output
5099
+ assert "fix_rounds=3/3" not in result.output
5100
+
5101
+
5038
5102
  def test_a_failed_launch_is_a_consumed_attempt_not_a_running_entry(
5039
5103
  cli, seed, launches
5040
5104
  ):
@@ -2468,7 +2468,7 @@ class TestUatStateAndReasonColumns:
2468
2468
  # #3384 bumped this to (19, 97): `issues.state_reason` — GitHub's own witness
2469
2469
  # that an issue was explicitly reopened, distinguishing that from an issue
2470
2470
  # that merged without ever auto-closing.
2471
- _PINNED_SCHEMA_VERSION_AND_MIGRATION_COUNT = (19, 97)
2471
+ _PINNED_SCHEMA_VERSION_AND_MIGRATION_COUNT = (20, 98)
2472
2472
 
2473
2473
 
2474
2474
  class TestMigrateAddColumnsVersionGuard:
@@ -956,6 +956,52 @@ def test_total_fix_round_budget_is_work_plus_fix_rounds():
956
956
  assert total_fix_round_budget(default_e, None) == DEFAULT_TICK_MAX_FIX_ROUNDS + 1
957
957
 
958
958
 
959
+ # ── #3463: a re-added row's budget is measured from ITS OWN baseline ────────
960
+ #
961
+ # `IssueFacts.work_leg_count` is a LIFETIME, cross-row count — every
962
+ # predecessor row this (repo, issue) has ever had contributes to it. Before
963
+ # #3463, `remaining_fix_rounds` compared that raw lifetime figure against
964
+ # `max_fix_rounds`, so a fresh row re-added (`coord drive-queue remove` +
965
+ # `add`) after its issue had already burned through 5 lifetime legs read
966
+ # back almost no budget at all — exactly the opposite of what the #3454
967
+ # ceiling message promises ("remove + add ... is the only way to give it
968
+ # another attempt"). `entry.legs_at_enqueue` is the lifetime count AS OF the
969
+ # row's own `enqueue_drive_queue` call — see `coord.state.
970
+ # _enqueue_drive_queue_local` for where it is stamped — so a row's own spend
971
+ # is `work_leg_count - legs_at_enqueue`, never the raw lifetime total.
972
+
973
+
974
+ def test_remaining_fix_rounds_gives_a_re_added_row_its_full_budget():
975
+ """quadraui#1081's exact shape: `--max-fix-rounds 5`, re-added when the
976
+ issue already has 5 lifetime work legs. Current main (pre-#3463) reads
977
+ this back as `1` (`5 - 4` against `effective_max_fix_rounds`) — this
978
+ pins the fix: a freshly re-added row (no legs of its OWN yet) gets its
979
+ full `max_fix_rounds` back, not a near-exhausted one inherited from
980
+ every predecessor row's history."""
981
+ e = entry(1081, max_fix_rounds=5, legs_at_enqueue=5)
982
+ facts = IssueFacts(known=True, work_leg_count=5)
983
+ assert remaining_fix_rounds(e, facts, None) == 5
984
+
985
+
986
+ def test_remaining_fix_rounds_still_shrinks_across_relaunches_of_the_re_added_row():
987
+ """The #2972 no-fresh-budget-on-relaunch guarantee is unchanged for the
988
+ re-added row ITSELF: two more legs run against it (still no new `add`,
989
+ so `legs_at_enqueue` does not move) shrinks its remaining budget by the
990
+ one fix round actually spent, same as any other row."""
991
+ e = entry(1081, max_fix_rounds=5, legs_at_enqueue=5)
992
+ facts = IssueFacts(known=True, work_leg_count=7)
993
+ assert remaining_fix_rounds(e, facts, None) == 4
994
+
995
+
996
+ def test_remaining_fix_rounds_legs_at_enqueue_default_matches_pre_3463_behaviour():
997
+ """A row predating the `legs_at_enqueue` column (or one that has never
998
+ been re-added) reads `legs_at_enqueue == 0` — reproducing the pre-#3463
999
+ `work_leg_count - 1` formula exactly, byte for byte."""
1000
+ e = entry(1650, max_fix_rounds=2)
1001
+ assert e.legs_at_enqueue == 0
1002
+ assert remaining_fix_rounds(e, IssueFacts(known=True, work_leg_count=2), None) == 1
1003
+
1004
+
959
1005
  def test_build_board_view_folds_leg_counts_into_work_leg_count():
960
1006
  """Only WORK_LIKE types count as a work leg — a `review`/`smoke` leg on
961
1007
  the SAME issue must never inflate the fix-round budget's own count."""
@@ -4398,6 +4398,67 @@ class TestDriveQueueLocalWritesRetryLockContention:
4398
4398
  _enqueue_drive_queue_local("api", 9, position=1)
4399
4399
 
4400
4400
 
4401
+ class TestEnqueueDriveQueueStampsLegsAtEnqueue:
4402
+ """#3463: `enqueue_drive_queue` must stamp the row's OWN baseline —
4403
+ the all-time WORK_LIKE leg count as of THIS `add` call — not leave it at
4404
+ `0` forever (which would make a re-added row read its predecessors'
4405
+ entire lifetime spend as its own, the exact quadraui#1081 misreport)."""
4406
+
4407
+ @staticmethod
4408
+ def _seed_work_legs(coord_db, *, repo="api", issue=9, count=1, kind="work") -> None:
4409
+ for i in range(count):
4410
+ coord_db.execute(
4411
+ "INSERT INTO assignments (assignment_id, machine_name, repo_name, "
4412
+ "issue_number, issue_title, type) VALUES (?, 'm1', ?, ?, 't', ?)",
4413
+ (f"aid-{repo}-{issue}-{kind}-{i}", repo, issue, kind),
4414
+ )
4415
+ coord_db.commit()
4416
+
4417
+ def test_fresh_row_with_no_history_stamps_zero(self, coord_db) -> None:
4418
+ from coord.state import _enqueue_drive_queue_local, _get_drive_queue_entry_local
4419
+
4420
+ _enqueue_drive_queue_local("api", 9)
4421
+ assert _get_drive_queue_entry_local("api", 9)["legs_at_enqueue"] == 0
4422
+
4423
+ def test_re_added_row_stamps_the_current_lifetime_count(self, coord_db) -> None:
4424
+ """The quadraui#1081 shape: 5 lifetime work legs already exist for
4425
+ this issue (from a predecessor row's history) before the row is
4426
+ (re-)declared — the new row's baseline must be 5, not 0."""
4427
+ from coord.state import _enqueue_drive_queue_local, _get_drive_queue_entry_local
4428
+
4429
+ self._seed_work_legs(coord_db, count=5)
4430
+ _enqueue_drive_queue_local("api", 9)
4431
+ assert _get_drive_queue_entry_local("api", 9)["legs_at_enqueue"] == 5
4432
+
4433
+ def test_updating_an_already_queued_row_re_stamps_the_baseline(
4434
+ self, coord_db
4435
+ ) -> None:
4436
+ """A second `enqueue_drive_queue` call against an already-queued row
4437
+ (the UPDATE branch, not INSERT) re-stamps `legs_at_enqueue` to
4438
+ whatever the lifetime count is NOW — an operator's explicit `add`
4439
+ always measures from "right now", never a stale baseline."""
4440
+ from coord.state import _enqueue_drive_queue_local, _get_drive_queue_entry_local
4441
+
4442
+ _enqueue_drive_queue_local("api", 9)
4443
+ assert _get_drive_queue_entry_local("api", 9)["legs_at_enqueue"] == 0
4444
+
4445
+ self._seed_work_legs(coord_db, count=3)
4446
+ _enqueue_drive_queue_local("api", 9, machine="m2")
4447
+ assert _get_drive_queue_entry_local("api", 9)["legs_at_enqueue"] == 3
4448
+
4449
+ def test_only_work_like_types_count_toward_the_baseline(self, coord_db) -> None:
4450
+ """A `review`/`smoke` leg on the same issue must never inflate the
4451
+ baseline — same WORK_LIKE-only scoping `IssueFacts.work_leg_count`
4452
+ uses."""
4453
+ from coord.state import _enqueue_drive_queue_local, _get_drive_queue_entry_local
4454
+
4455
+ self._seed_work_legs(coord_db, count=2, kind="work")
4456
+ self._seed_work_legs(coord_db, count=4, kind="review")
4457
+ self._seed_work_legs(coord_db, count=1, kind="smoke")
4458
+ _enqueue_drive_queue_local("api", 9)
4459
+ assert _get_drive_queue_entry_local("api", 9)["legs_at_enqueue"] == 2
4460
+
4461
+
4401
4462
  class TestMilestoneLocalLockContention:
4402
4463
  """Same shape, for `_assign_issue_milestone_local` /
4403
4464
  `_unassign_issue_milestone_local`."""