code-coordinator 0.5.185__tar.gz → 0.5.186__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 (784) hide show
  1. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/PKG-INFO +1 -1
  2. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/code_coordinator.egg-info/PKG-INFO +1 -1
  3. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/code_coordinator.egg-info/scm_version.json +2 -2
  4. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/config.py +9 -5
  5. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/deploy/coord-web-dist-build.service +6 -5
  6. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/deploy/coord-web-dist-build.timer +12 -0
  7. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/health/checks/deploy_lane_facts.py +28 -24
  8. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/health/checks/fleet_deploy_lanes.py +2 -2
  9. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/release_verify.py +1 -1
  10. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/deploy/coord-web-dist-build.service +6 -5
  11. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/deploy/coord-web-dist-build.sh +56 -30
  12. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/deploy/coord-web-dist-build.timer +12 -0
  13. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/docs/ADR_COORD_WEB_DIST.md +11 -0
  14. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/docs/AGENT_OPERATIONS.md +14 -12
  15. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/docs/PHONE_WEBAPP.md +14 -10
  16. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_deploy_coord_web_dist.py +82 -2
  17. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_health_deploy_lane_facts.py +66 -18
  18. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/.claude/commands/board.md +0 -0
  19. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/.claude/commands/complete-session.md +0 -0
  20. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/.claude/commands/coordinator.md +0 -0
  21. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/.githooks/_lib.sh +0 -0
  22. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/.githooks/post-checkout +0 -0
  23. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/.githooks/post-commit +0 -0
  24. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/.githooks/post-merge +0 -0
  25. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  26. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/.github/coord-ci-acceptance.yml +0 -0
  27. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/.github/workflows/auto-release.yml +0 -0
  28. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/.github/workflows/cargo-test.yml +0 -0
  29. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/.github/workflows/publish.yml +0 -0
  30. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/.github/workflows/release-tui.yml +0 -0
  31. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/.github/workflows/test.yml +0 -0
  32. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/.gitignore +0 -0
  33. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/CLAUDE.md +0 -0
  34. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/GOAL.md +0 -0
  35. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/LICENSE +0 -0
  36. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/MANIFEST.in +0 -0
  37. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/README.md +0 -0
  38. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/code_coordinator.egg-info/SOURCES.txt +0 -0
  39. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/code_coordinator.egg-info/dependency_links.txt +0 -0
  40. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/code_coordinator.egg-info/entry_points.txt +0 -0
  41. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/code_coordinator.egg-info/requires.txt +0 -0
  42. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/code_coordinator.egg-info/scm_file_list.json +0 -0
  43. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/code_coordinator.egg-info/top_level.txt +0 -0
  44. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/__init__.py +0 -0
  45. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/_board_mapping.py +0 -0
  46. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/acceptance.py +0 -0
  47. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/acceptance_drivers.py +0 -0
  48. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/agent.py +0 -0
  49. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/agent_app.py +0 -0
  50. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/agent_update.py +0 -0
  51. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/agents/opencode/.gitignore +0 -0
  52. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/agents/opencode/agents/work.md +0 -0
  53. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/agents/opencode/routing.jsonc +0 -0
  54. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/audit.py +0 -0
  55. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/auto_loop.py +0 -0
  56. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/block_log.py +0 -0
  57. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/board_bool_guard.py +0 -0
  58. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/board_service.py +0 -0
  59. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/board_wire.py +0 -0
  60. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/brain.py +0 -0
  61. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/branch_model.py +0 -0
  62. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/bug_intake.py +0 -0
  63. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/cargo_cache.py +0 -0
  64. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/ci_github.py +0 -0
  65. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/ci_store.py +0 -0
  66. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/claim.py +0 -0
  67. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/cli.py +0 -0
  68. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/client.py +0 -0
  69. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/commands/__init__.py +0 -0
  70. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/commands/_common.py +0 -0
  71. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/commands/acceptance.py +0 -0
  72. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/commands/agent_ops.py +0 -0
  73. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/commands/audit.py +0 -0
  74. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/commands/chat.py +0 -0
  75. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/commands/dispatch.py +0 -0
  76. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/commands/dispatch_workers.py +0 -0
  77. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/commands/drive.py +0 -0
  78. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/commands/drive_queue.py +0 -0
  79. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/commands/gate_a.py +0 -0
  80. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/commands/gates.py +0 -0
  81. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/commands/issues.py +0 -0
  82. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/commands/lifecycle.py +0 -0
  83. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/commands/merge.py +0 -0
  84. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/commands/milestone.py +0 -0
  85. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/commands/plan_followup.py +0 -0
  86. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/commands/plans.py +0 -0
  87. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/commands/portal.py +0 -0
  88. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/commands/release.py +0 -0
  89. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/commands/repo.py +0 -0
  90. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/commands/report.py +0 -0
  91. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/commands/review.py +0 -0
  92. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/commands/scorecard.py +0 -0
  93. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/commands/sessions.py +0 -0
  94. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/commands/setup.py +0 -0
  95. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/commands/status.py +0 -0
  96. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/commands/terminal.py +0 -0
  97. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/commands/test_gate.py +0 -0
  98. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/commands/tui.py +0 -0
  99. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/comments.py +0 -0
  100. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/config_reload.py +0 -0
  101. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/conflict_fix.py +0 -0
  102. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/dao.py +0 -0
  103. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/dashboard/__init__.py +0 -0
  104. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/dashboard/fixture.py +0 -0
  105. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/dashboard/index.html +0 -0
  106. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/dashboard/server.py +0 -0
  107. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/dashboard/terminal.py +0 -0
  108. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/db.py +0 -0
  109. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/dead_end.py +0 -0
  110. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/deploy/README.md +0 -0
  111. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/deploy/coord-agent.service +0 -0
  112. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/deploy/coord-db-backup.service +0 -0
  113. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/deploy/coord-db-backup.sh +0 -0
  114. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/deploy/coord-db-backup.timer +0 -0
  115. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/deploy/coord-drive-queue.service +0 -0
  116. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/deploy/coord-drive-queue.timer +0 -0
  117. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/deploy/coord-notify.service +0 -0
  118. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/deploy/coord-notify.timer +0 -0
  119. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/deploy/coord-release-propagate.service +0 -0
  120. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/deploy/coord-release-propagate.timer +0 -0
  121. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/deploy/coord-release-window.service +0 -0
  122. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/deploy/coord-release-window.timer +0 -0
  123. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/deploy/coord-serve.service +0 -0
  124. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/deploy/coord-web.service +0 -0
  125. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/deploy_manifest.py +0 -0
  126. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/deploy_units.py +0 -0
  127. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/deps.py +0 -0
  128. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/diagnose.py +0 -0
  129. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/dispatch.py +0 -0
  130. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/dist_name.py +0 -0
  131. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/drive.py +0 -0
  132. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/drive_queue.py +0 -0
  133. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/drive_state.py +0 -0
  134. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/events.py +0 -0
  135. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/failure_class.py +0 -0
  136. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/filelock.py +0 -0
  137. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/fleet_config_health.py +0 -0
  138. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/freshness.py +0 -0
  139. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/gate_a.py +0 -0
  140. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/gate_b.py +0 -0
  141. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/gate_snapshot.py +0 -0
  142. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/gates.py +0 -0
  143. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/github_ops.py +0 -0
  144. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/goal.py +0 -0
  145. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/graph_health.py +0 -0
  146. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/health/__init__.py +0 -0
  147. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/health/aggregate.py +0 -0
  148. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/health/checks/__init__.py +0 -0
  149. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/health/checks/agent_install.py +0 -0
  150. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/health/checks/cargo_targets.py +0 -0
  151. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/health/checks/claude_binary.py +0 -0
  152. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/health/checks/coord_web_ci_pin.py +0 -0
  153. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/health/checks/disk.py +0 -0
  154. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/health/checks/fleet_board.py +0 -0
  155. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/health/checks/fleet_phantom.py +0 -0
  156. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/health/checks/fleet_unit_drift.py +0 -0
  157. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/health/checks/graph.py +0 -0
  158. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/health/checks/graphify_cli.py +0 -0
  159. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/health/checks/index_lock.py +0 -0
  160. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/health/checks/plan_usage.py +0 -0
  161. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/health/checks/repo_state.py +0 -0
  162. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/health/checks/spawned_coord.py +0 -0
  163. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/health/checks/timer_active.py +0 -0
  164. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/health/checks/toolchain.py +0 -0
  165. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/health/checks/unit_drift.py +0 -0
  166. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/health/checks/unit_enablement.py +0 -0
  167. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/health/checks/worktrees.py +0 -0
  168. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/health/cli.py +0 -0
  169. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/health/context.py +0 -0
  170. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/health/fleet_snapshot.py +0 -0
  171. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/health/models.py +0 -0
  172. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/health/pypi.py +0 -0
  173. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/health/registry.py +0 -0
  174. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/health/render.py +0 -0
  175. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/health/units.py +0 -0
  176. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/hooks.py +0 -0
  177. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/housekeeping.py +0 -0
  178. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/interactive.py +0 -0
  179. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/issue_store.py +0 -0
  180. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/liveness_auditor.py +0 -0
  181. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/machine_pause.py +0 -0
  182. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/merge_queue.py +0 -0
  183. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/milestone_chat.py +0 -0
  184. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/milestone_dispatch.py +0 -0
  185. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/milestone_gate.py +0 -0
  186. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/milestone_order.py +0 -0
  187. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/mock_author.py +0 -0
  188. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/models.py +0 -0
  189. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/network.py +0 -0
  190. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/new_issue_chat.py +0 -0
  191. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/notifier/__init__.py +0 -0
  192. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/notifier/baseline.py +0 -0
  193. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/notifier/cli.py +0 -0
  194. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/notifier/collect.py +0 -0
  195. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/notifier/digest.py +0 -0
  196. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/notifier/models.py +0 -0
  197. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/notifier/predicate.py +0 -0
  198. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/notifier/service.py +0 -0
  199. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/notifier/store.py +0 -0
  200. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/notifier/transport.py +0 -0
  201. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/notify.py +0 -0
  202. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/openapi.py +0 -0
  203. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/overlap_fence.py +0 -0
  204. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/overlap_predict.py +0 -0
  205. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/parentage.py +0 -0
  206. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/parentage_github.py +0 -0
  207. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/pipeline.py +0 -0
  208. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/plan_parser.py +0 -0
  209. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/plans.py +0 -0
  210. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/platform_paths.py +0 -0
  211. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/portal_bridge.py +0 -0
  212. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/portal_store.py +0 -0
  213. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/portal_sync.py +0 -0
  214. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/pr_body_lint.py +0 -0
  215. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/prereqs.py +0 -0
  216. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/progress.py +0 -0
  217. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/providers/__init__.py +0 -0
  218. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/providers/base.py +0 -0
  219. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/providers/claude.py +0 -0
  220. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/providers/claude_pty.py +0 -0
  221. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/providers/opencode.py +0 -0
  222. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/queue_diagnose.py +0 -0
  223. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/reconcile.py +0 -0
  224. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/reconcile_tick.py +0 -0
  225. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/refine_chat.py +0 -0
  226. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/release_cordon.py +0 -0
  227. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/release_propagate.py +0 -0
  228. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/release_window.py +0 -0
  229. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/repo_edit.py +0 -0
  230. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/repo_onboard.py +0 -0
  231. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/reports.py +0 -0
  232. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/revalidate.py +0 -0
  233. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/review.py +0 -0
  234. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/scorecard.py +0 -0
  235. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/self_health.py +0 -0
  236. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/serve_app.py +0 -0
  237. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/skills/coord-dispatch-verbs/SKILL.md +0 -0
  238. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/skills/drive-queue-preflight/SKILL.md +0 -0
  239. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/skills/fleet-restart-safety/SKILL.md +0 -0
  240. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/skills/merge-stuck-triage/SKILL.md +0 -0
  241. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/skills/pipeline-limbo-triage/SKILL.md +0 -0
  242. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/skills/portal-followup/SKILL.md +0 -0
  243. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/skills/review-verdict-recovery/SKILL.md +0 -0
  244. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/skills/tui-quadraui-workflow/SKILL.md +0 -0
  245. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/skills/update-issue/SKILL.md +0 -0
  246. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/smoke.py +0 -0
  247. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/spend_ceiling.py +0 -0
  248. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/split_work.py +0 -0
  249. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/stage_projection.py +0 -0
  250. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/state.py +0 -0
  251. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/test_author.py +0 -0
  252. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/test_chat.py +0 -0
  253. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/test_orchestrator.py +0 -0
  254. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/test_report.py +0 -0
  255. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/tui_release.py +0 -0
  256. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/usage.py +0 -0
  257. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/usage_limits.py +0 -0
  258. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/usage_rollup.py +0 -0
  259. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coord/worker_events.py +0 -0
  260. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/coordinator.example.yml +0 -0
  261. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/deploy/coord-agent.service +0 -0
  262. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/deploy/coord-db-backup.service +0 -0
  263. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/deploy/coord-db-backup.sh +0 -0
  264. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/deploy/coord-db-backup.timer +0 -0
  265. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/deploy/coord-drive-queue.service +0 -0
  266. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/deploy/coord-drive-queue.timer +0 -0
  267. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/deploy/coord-notify.service +0 -0
  268. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/deploy/coord-notify.timer +0 -0
  269. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/deploy/coord-release-propagate.service +0 -0
  270. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/deploy/coord-release-propagate.timer +0 -0
  271. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/deploy/coord-release-window.service +0 -0
  272. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/deploy/coord-release-window.timer +0 -0
  273. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/deploy/coord-serve.service +0 -0
  274. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/deploy/coord-web-rollback.sh +0 -0
  275. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/deploy/coord-web.service +0 -0
  276. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/deploy/node-shim.sh +0 -0
  277. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/docs/ADR_COORD_WEB_ACCEPTANCE_SUITE.md +0 -0
  278. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/docs/ADR_COORD_WEB_CI.md +0 -0
  279. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/docs/ARCHITECTURE.md +0 -0
  280. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/docs/ARCH_SECURITY_GATES.md +0 -0
  281. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/docs/COCKPIT.md +0 -0
  282. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/docs/CONTROL_CENTER.md +0 -0
  283. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/docs/COST_DISCIPLINE.md +0 -0
  284. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/docs/CROSS_PLATFORM.md +0 -0
  285. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/docs/CUSTOMER_PORTAL.md +0 -0
  286. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/docs/DRIVE_QUEUE.md +0 -0
  287. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/docs/EPHEMERAL_WORKERS.md +0 -0
  288. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/docs/FORGE_MIGRATION.md +0 -0
  289. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/docs/GRAPHIFY_SETUP.md +0 -0
  290. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/docs/ISSUE_GUIDANCE.md +0 -0
  291. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/docs/MAC_MINI.md +0 -0
  292. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
  293. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/docs/NOTIFIER.md +0 -0
  294. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/docs/OPENCODE_VERIFICATION.md +0 -0
  295. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/docs/OPERATING_GOTCHAS.md +0 -0
  296. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/docs/ORACLE_LOOP.md +0 -0
  297. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/docs/PIPELINE_V2.md +0 -0
  298. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/docs/PLATFORM_EVOLUTION.md +0 -0
  299. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/docs/SECOND_BACKEND.md +0 -0
  300. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/docs/STORE_SERVICE.md +0 -0
  301. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/docs/TEST_FIRST_BUG_LANE.md +0 -0
  302. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/docs/WEB_CONTROL_CENTER.md +0 -0
  303. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/docs/WSL_WINDOWS_WORKER.md +0 -0
  304. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/docs/mocks/web/README.md +0 -0
  305. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/docs/mocks/web/_tokens.css +0 -0
  306. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/docs/mocks/web/issue-detail.html +0 -0
  307. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/docs/mocks/web/pipeline-narrow.html +0 -0
  308. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/docs/mocks/web/pipeline-wide.html +0 -0
  309. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/graphify-out/.gitignore +0 -0
  310. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/install-agent.sh +0 -0
  311. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/pyproject.toml +0 -0
  312. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/scripts/audit_review_verdict_overrides.py +0 -0
  313. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/scripts/azure-workers/bootstrap-shared.sh +0 -0
  314. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/scripts/azure-workers/build-worker-image.sh +0 -0
  315. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/scripts/azure-workers/coordinator-machine.py +0 -0
  316. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/scripts/azure-workers/epic-down.sh +0 -0
  317. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/scripts/azure-workers/epic-up.sh +0 -0
  318. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/scripts/azure-workers/preflight.sh +0 -0
  319. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/scripts/azure-workers/provision-worker.sh +0 -0
  320. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
  321. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/scripts/azure-workers/tailnet-acl.hujson +0 -0
  322. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/scripts/azure-workers/verify-github-token.sh +0 -0
  323. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/scripts/codegen.py +0 -0
  324. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/scripts/coord-test-runner.sh +0 -0
  325. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/scripts/drive-batch.sh +0 -0
  326. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/scripts/gen_board_fixture.py +0 -0
  327. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/scripts/next_release_tag.py +0 -0
  328. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/scripts/run_tests_in_populated_home.sh +0 -0
  329. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/scripts/run_tests_without_gh.sh +0 -0
  330. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/scripts/smoke_437_interactive.py +0 -0
  331. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/scripts/verify_878_review_capture.py +0 -0
  332. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/scripts/verify_release_published.py +0 -0
  333. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/scripts/verify_release_wheel.py +0 -0
  334. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/setup.cfg +0 -0
  335. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/SMOKE_SET.md +0 -0
  336. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/__init__.py +0 -0
  337. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-33/audit_1039.rs +0 -0
  338. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-33/contract.md +0 -0
  339. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-33/manifest.yml +0 -0
  340. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-33/mocks/audit-panel-detail.screen +0 -0
  341. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-33/mocks/audit-panel-empty.screen +0 -0
  342. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-33/mocks/audit-panel-filters.screen +0 -0
  343. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-33/mocks/audit-panel-populated.screen +0 -0
  344. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-37/conftest.py +0 -0
  345. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-37/contract.md +0 -0
  346. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-37/manifest.yml +0 -0
  347. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
  348. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
  349. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-38/contract.md +0 -0
  350. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-38/manifest.yml +0 -0
  351. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-38/mocks/plans-base.screen +0 -0
  352. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-38/mocks/plans-detail-pane.screen +0 -0
  353. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-38/mocks/plans-help-overlay.screen +0 -0
  354. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-38/mocks/plans-palette.screen +0 -0
  355. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-38/mocks/plans-rightclick-epic.screen +0 -0
  356. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-38/mocks/plans-rightclick-header.screen +0 -0
  357. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-38/mocks/plans-rightclick-stub.screen +0 -0
  358. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-38/plans_detail_1122.rs +0 -0
  359. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-38/plans_help_1124.rs +0 -0
  360. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-38/plans_rightclick_1123.rs +0 -0
  361. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-51/contract.md +0 -0
  362. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
  363. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
  364. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-51/manifest.yml +0 -0
  365. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
  366. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-51/tsconfig.json +0 -0
  367. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-65/board_split_2288.rs +0 -0
  368. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-65/board_tabs_2282.rs +0 -0
  369. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-65/board_tabs_close_2283.rs +0 -0
  370. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-65/contract.md +0 -0
  371. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-65/detail_substate_2285.rs +0 -0
  372. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-65/manifest.yml +0 -0
  373. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-65/mocks/board-baseline-no-tabs.screen +0 -0
  374. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-65/mocks/board-pinned-3-tabs.screen +0 -0
  375. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-65/mocks/board-preview-tab.screen +0 -0
  376. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-65/mocks/board-split-side-by-side.screen +0 -0
  377. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-65/mocks/board-tab-context-menu.screen +0 -0
  378. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-65/mocks/board-tabs-help-overlay.screen +0 -0
  379. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-65/mocks/board-tabs-overflow.screen +0 -0
  380. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-65/mocks/pipeline-tabs-independent.screen +0 -0
  381. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-65/pipeline_tabs_2284.rs +0 -0
  382. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-65/tabs_discoverability_2287.rs +0 -0
  383. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-65/tabs_persistence_2286.rs +0 -0
  384. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
  385. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/conftest.py +0 -0
  386. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/fixtures/board-pipeline-basic.json +0 -0
  387. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
  388. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
  389. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
  390. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/fixtures/opencode_run_sample.jsonl +0 -0
  391. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/fixtures/playwright/all_pass.json +0 -0
  392. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/fixtures/playwright/global_setup_crash.json +0 -0
  393. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/fixtures/playwright/mixed_fail.json +0 -0
  394. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/fixtures/playwright/retry_then_pass.json +0 -0
  395. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
  396. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/fixtures/playwright/skip.json +0 -0
  397. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/fixtures/playwright/truncated.json +0 -0
  398. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
  399. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
  400. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
  401. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
  402. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
  403. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
  404. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
  405. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
  406. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_acceptance.py +0 -0
  407. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_acceptance_drivers.py +0 -0
  408. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_agent.py +0 -0
  409. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_agent_api_error.py +0 -0
  410. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_agent_app.py +0 -0
  411. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_agent_branch_base.py +0 -0
  412. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_agent_branch_capture.py +0 -0
  413. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_agent_config_free_1712.py +0 -0
  414. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_agent_deploy_units_endpoint.py +0 -0
  415. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_agent_dirty_worktree.py +0 -0
  416. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_agent_drive_queue_reconcile_2373.py +0 -0
  417. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_agent_graph_self_heal.py +0 -0
  418. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_agent_health_h3.py +0 -0
  419. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_agent_idle_restart.py +0 -0
  420. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_agent_push_failure.py +0 -0
  421. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_agent_reap.py +0 -0
  422. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_agent_repos_and_pull.py +0 -0
  423. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_agent_restart_services_endpoint.py +0 -0
  424. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_agent_skills_self_heal.py +0 -0
  425. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_agent_startup_diagnostics.py +0 -0
  426. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_agent_update.py +0 -0
  427. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_agent_update_bluegreen.py +0 -0
  428. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_agent_usage_limit.py +0 -0
  429. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_agent_zero_commit.py +0 -0
  430. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_ambient_home_isolation.py +0 -0
  431. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_approve_reject_plan.py +0 -0
  432. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_approve_usage_gate.py +0 -0
  433. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_assignment_already_recorded_daemon.py +0 -0
  434. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_audit_log.py +0 -0
  435. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_audit_outcome.py +0 -0
  436. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_audit_query.py +0 -0
  437. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_auto_loop.py +0 -0
  438. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_auto_release_publish_2035.py +0 -0
  439. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_base_checkout_restore.py +0 -0
  440. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_block_log.py +0 -0
  441. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_board_cap_762.py +0 -0
  442. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_board_fixture.py +0 -0
  443. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_board_read_path.py +0 -0
  444. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_board_service.py +0 -0
  445. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_board_state.py +0 -0
  446. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_board_wire.py +0 -0
  447. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_brain.py +0 -0
  448. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_branch_model.py +0 -0
  449. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_bug_intake.py +0 -0
  450. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_build_worker_image_env_update.py +0 -0
  451. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cargo_cache.py +0 -0
  452. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_ci_acceptance_gate_1950.py +0 -0
  453. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_ci_parity_2091.py +0 -0
  454. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_ci_store.py +0 -0
  455. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_claim.py +0 -0
  456. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_acceptance.py +0 -0
  457. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_assign.py +0 -0
  458. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
  459. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_assign_interactive_remote.py +0 -0
  460. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_assign_provider.py +0 -0
  461. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_assign_repo_drift_2219.py +0 -0
  462. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_audit.py +0 -0
  463. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_chat_continue.py +0 -0
  464. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_decide.py +0 -0
  465. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_diagnose_config_provenance.py +0 -0
  466. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_diagnose_graph.py +0 -0
  467. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_diagnose_self.py +0 -0
  468. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_doctor.py +0 -0
  469. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_doctor_config_free_1801.py +0 -0
  470. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
  471. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_drive.py +0 -0
  472. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_drive_queue.py +0 -0
  473. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_escalate.py +0 -0
  474. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_fix_headless_review.py +0 -0
  475. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_gate_a.py +0 -0
  476. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_install_drift.py +0 -0
  477. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_install_skills.py +0 -0
  478. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_issue_create_label.py +0 -0
  479. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_issue_reopen.py +0 -0
  480. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_merge.py +0 -0
  481. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_milestone_assign.py +0 -0
  482. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_milestone_capture.py +0 -0
  483. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_milestone_chat_add_child.py +0 -0
  484. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_milestone_dispatch.py +0 -0
  485. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_milestone_gate_b.py +0 -0
  486. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_milestone_gate_c.py +0 -0
  487. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_milestone_order.py +0 -0
  488. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
  489. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_milestone_ship.py +0 -0
  490. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_network.py +0 -0
  491. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_new_issue_chat.py +0 -0
  492. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_plans.py +0 -0
  493. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_portal.py +0 -0
  494. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_pull_artifact.py +0 -0
  495. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_queue.py +0 -0
  496. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_reattach_sessions.py +0 -0
  497. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_refine_board.py +0 -0
  498. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_release_preflight.py +0 -0
  499. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_release_propagate.py +0 -0
  500. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_release_window.py +0 -0
  501. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_repo_2220.py +0 -0
  502. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_scorecard.py +0 -0
  503. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_set_review_findings.py +0 -0
  504. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_status_advisory_terminal.py +0 -0
  505. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_status_merge_queue.py +0 -0
  506. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_status_provider.py +0 -0
  507. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_status_review_finalizing.py +0 -0
  508. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_status_test_failed_tag.py +0 -0
  509. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_status_usage_limit.py +0 -0
  510. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_sync_comments_873.py +0 -0
  511. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_test_plan.py +0 -0
  512. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_track.py +0 -0
  513. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_tui_update.py +0 -0
  514. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cli_wait.py +0 -0
  515. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_client_base_install.py +0 -0
  516. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_comments.py +0 -0
  517. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_completion_summary.py +0 -0
  518. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_config.py +0 -0
  519. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_config_acceptance.py +0 -0
  520. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_config_audit.py +0 -0
  521. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_config_pricing.py +0 -0
  522. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
  523. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_config_usage_gate.py +0 -0
  524. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_conflict_fix.py +0 -0
  525. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_conflict_fix_semantic.py +0 -0
  526. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_coord_test.py +0 -0
  527. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_coord_test_runner_baseline.py +0 -0
  528. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_coord_test_runner_populated_home.py +0 -0
  529. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_coord_test_runner_routing.py +0 -0
  530. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_coord_test_runner_toolchain.py +0 -0
  531. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_coord_web_sse_restart_live.py +0 -0
  532. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_coordinator_machine.py +0 -0
  533. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_cross_platform_imports.py +0 -0
  534. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_dashboard.py +0 -0
  535. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_dashboard_fixture.py +0 -0
  536. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_dashboard_terminal.py +0 -0
  537. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_dashboard_terminal_live.py +0 -0
  538. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_db.py +0 -0
  539. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_dead_end.py +0 -0
  540. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_deploy_coord_db_backup.py +0 -0
  541. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_deploy_coord_web_rollback.py +0 -0
  542. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_deploy_drive_queue_unit.py +0 -0
  543. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_deploy_manifest.py +0 -0
  544. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_deploy_units_lane.py +0 -0
  545. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_deploy_web_unit.py +0 -0
  546. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_deps.py +0 -0
  547. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_diagnose.py +0 -0
  548. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_dispatch.py +0 -0
  549. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_dispatch_target_validation.py +0 -0
  550. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_dist_name.py +0 -0
  551. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_done_housekeeping.py +0 -0
  552. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_drive.py +0 -0
  553. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_drive_queue.py +0 -0
  554. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_drive_state.py +0 -0
  555. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_drive_tmux.py +0 -0
  556. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_epic_up_capability_detection.py +0 -0
  557. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
  558. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_epic_up_image_provenance.py +0 -0
  559. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_errors.py +0 -0
  560. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_events.py +0 -0
  561. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_failure_class.py +0 -0
  562. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_filelock.py +0 -0
  563. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
  564. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_fix_of_force_override.py +0 -0
  565. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_fleet_config_health.py +0 -0
  566. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_fleet_health_probes.py +0 -0
  567. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_fleet_health_snapshot.py +0 -0
  568. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_freshness.py +0 -0
  569. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_gate_a.py +0 -0
  570. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_gate_b.py +0 -0
  571. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_gate_snapshot_staleness.py +0 -0
  572. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_gates.py +0 -0
  573. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_gather_fleet_tmux_sessions.py +0 -0
  574. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_generated_types_fixture.py +0 -0
  575. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_github_ops.py +0 -0
  576. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_goal.py +0 -0
  577. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_graph_health.py +0 -0
  578. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_graph_selfheal_absent_2237.py +0 -0
  579. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_handoff.py +0 -0
  580. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_health_checks.py +0 -0
  581. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_health_cli.py +0 -0
  582. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_health_cli_graph.py +0 -0
  583. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_health_config.py +0 -0
  584. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_health_context.py +0 -0
  585. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_health_coord_web_ci_pin.py +0 -0
  586. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_health_incident_regression.py +0 -0
  587. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_health_pypi.py +0 -0
  588. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_health_registry.py +0 -0
  589. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_health_timer_active.py +0 -0
  590. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_health_toolchain.py +0 -0
  591. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_health_unit_drift.py +0 -0
  592. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_health_unit_enablement.py +0 -0
  593. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_hooks.py +0 -0
  594. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_human_attended_437.py +0 -0
  595. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_init.py +0 -0
  596. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_integration.py +0 -0
  597. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_interactive_briefing_echo.py +0 -0
  598. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_interactive_prefill_state.py +0 -0
  599. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_interactive_session_relaunch.py +0 -0
  600. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_interactive_test_verdict_backstop.py +0 -0
  601. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_interactive_token_attribution.py +0 -0
  602. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_interactive_worktree.py +0 -0
  603. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_issue_store_seam.py +0 -0
  604. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_liveness_auditor.py +0 -0
  605. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_liveness_notify.py +0 -0
  606. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_machine_pause.py +0 -0
  607. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_merge_queue.py +0 -0
  608. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_merge_verify.py +0 -0
  609. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_milestone_chat.py +0 -0
  610. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_milestone_dispatch.py +0 -0
  611. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_milestone_gate.py +0 -0
  612. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_milestone_order.py +0 -0
  613. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_milestone_seam.py +0 -0
  614. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_mock_author.py +0 -0
  615. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_model_tiering.py +0 -0
  616. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_models.py +0 -0
  617. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_models_config_labels.py +0 -0
  618. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_needs_attention.py +0 -0
  619. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_network.py +0 -0
  620. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_new_issue_chat.py +0 -0
  621. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_next_release_tag.py +0 -0
  622. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_no_direct_gh_calls.py +0 -0
  623. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_node_shim.py +0 -0
  624. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_notifier_baseline.py +0 -0
  625. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_notifier_cli.py +0 -0
  626. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_notifier_collect.py +0 -0
  627. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_notifier_config.py +0 -0
  628. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_notifier_drive_seam.py +0 -0
  629. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_notifier_isolation.py +0 -0
  630. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_notifier_predicate.py +0 -0
  631. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_notifier_quiet_hours.py +0 -0
  632. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_notifier_service.py +0 -0
  633. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_notify.py +0 -0
  634. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_notify_drain.py +0 -0
  635. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_openapi.py +0 -0
  636. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_operational_defaults.py +0 -0
  637. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_overlap_fence.py +0 -0
  638. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_overlap_predict.py +0 -0
  639. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_packaged_deploy_units.py +0 -0
  640. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_parentage.py +0 -0
  641. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_paste_landed.py +0 -0
  642. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_pipeline.py +0 -0
  643. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_plan_followup_approve_plan_command.py +0 -0
  644. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_plan_followup_pr_command.py +0 -0
  645. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_plan_followup_review_command.py +0 -0
  646. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_plan_only.py +0 -0
  647. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_plan_parser.py +0 -0
  648. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_platform_paths.py +0 -0
  649. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_portal_bridge.py +0 -0
  650. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_portal_config.py +0 -0
  651. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_portal_sync.py +0 -0
  652. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_pr_body_lint.py +0 -0
  653. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_prereqs.py +0 -0
  654. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_production_db_guard.py +0 -0
  655. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_progress.py +0 -0
  656. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_provider_seam.py +0 -0
  657. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_providers.py +0 -0
  658. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_providers_config_labels.py +0 -0
  659. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_providers_pty.py +0 -0
  660. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_quiet_hours.py +0 -0
  661. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_quiet_hours_store_2146.py +0 -0
  662. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_reap_merged_sessions.py +0 -0
  663. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_reap_stale_interactive_tick.py +0 -0
  664. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_reconcile.py +0 -0
  665. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_reconcile_branch.py +0 -0
  666. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_reconcile_completions.py +0 -0
  667. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_reconcile_merges.py +0 -0
  668. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_reconcile_no_agent_record.py +0 -0
  669. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_reconcile_tick.py +0 -0
  670. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_reconcile_usage_limit_done.py +0 -0
  671. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_refine_chat.py +0 -0
  672. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_release_cordon_2101.py +0 -0
  673. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
  674. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_release_cordon_deadlock_2240.py +0 -0
  675. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_release_propagate.py +0 -0
  676. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_release_unified_1242.py +0 -0
  677. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_release_verify.py +0 -0
  678. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_release_window.py +0 -0
  679. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_remote_auto_prune.py +0 -0
  680. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_remote_interactive_reaper.py +0 -0
  681. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_repo_edit_2220.py +0 -0
  682. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_repo_graph_fleet_2237.py +0 -0
  683. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_repo_onboard_2220.py +0 -0
  684. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_report_result_push.py +0 -0
  685. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_reports.py +0 -0
  686. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_retry.py +0 -0
  687. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_retry_advisory_1606.py +0 -0
  688. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_retry_type_1636.py +0 -0
  689. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_revalidate.py +0 -0
  690. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_review.py +0 -0
  691. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_review_end_review_without_verdict.py +0 -0
  692. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_review_parse_failure_diagnostic.py +0 -0
  693. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_review_reaffirm.py +0 -0
  694. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_review_state.py +0 -0
  695. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_review_verdict_backstop.py +0 -0
  696. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_review_verdict_override_audit.py +0 -0
  697. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_review_verdict_relay.py +0 -0
  698. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_review_zero_commits.py +0 -0
  699. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_scoped_review_wiring.py +0 -0
  700. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_scorecard.py +0 -0
  701. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_self_health.py +0 -0
  702. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_serve.py +0 -0
  703. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_serve_app_board_trim.py +0 -0
  704. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_session.py +0 -0
  705. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_slice_issue_attribution.py +0 -0
  706. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_smoke.py +0 -0
  707. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_smoke_live_checkout_restore.py +0 -0
  708. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_smoke_workflow.py +0 -0
  709. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_spend_ceiling.py +0 -0
  710. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_spend_ceiling_coordinator.py +0 -0
  711. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_split.py +0 -0
  712. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_split_work.py +0 -0
  713. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_stage_projection.py +0 -0
  714. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_stalled_pipeline.py +0 -0
  715. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_state.py +0 -0
  716. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_state_review_findings_daemon.py +0 -0
  717. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_status_fleet_footer.py +0 -0
  718. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_stop_1567.py +0 -0
  719. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_stuck.py +0 -0
  720. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_terminal_command.py +0 -0
  721. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_test_author.py +0 -0
  722. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_test_chat.py +0 -0
  723. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_test_orchestrator.py +0 -0
  724. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_test_report.py +0 -0
  725. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_test_verdict_parsing.py +0 -0
  726. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_test_verdict_transcript_floor.py +0 -0
  727. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_thin_client_board_audit.py +0 -0
  728. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_thin_client_config_load_1080.py +0 -0
  729. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_thin_client_daemon_routing_906.py +0 -0
  730. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_tmux_host.py +0 -0
  731. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_tmux_session.py +0 -0
  732. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_transcript_floor.py +0 -0
  733. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_usage.py +0 -0
  734. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_usage_limits.py +0 -0
  735. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_usage_rollup.py +0 -0
  736. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_venv_live_install_2121.py +0 -0
  737. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_version_single_source.py +0 -0
  738. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_watch.py +0 -0
  739. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
  740. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_worker_events.py +0 -0
  741. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_worker_image_pin_sync.py +0 -0
  742. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_worker_safety.py +0 -0
  743. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_worker_test_scoping.py +0 -0
  744. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_worktree.py +0 -0
  745. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tests/test_worktree_rmtree_chokepoint.py +0 -0
  746. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/Cargo.lock +0 -0
  747. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/Cargo.toml +0 -0
  748. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/cargo-config-local-quadraui.toml.example +0 -0
  749. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/src/app/audit.rs +0 -0
  750. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/src/app/chat.rs +0 -0
  751. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/src/app/data.rs +0 -0
  752. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/src/app/dialogs.rs +0 -0
  753. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/src/app/doc_tabs.rs +0 -0
  754. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/src/app/drive.rs +0 -0
  755. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/src/app/drive_queue.rs +0 -0
  756. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/src/app/escalation.rs +0 -0
  757. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/src/app/events.rs +0 -0
  758. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/src/app/fixtures.rs +0 -0
  759. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/src/app/fleet_health.rs +0 -0
  760. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/src/app/fleet_sessions.rs +0 -0
  761. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/src/app/fleet_terminals.rs +0 -0
  762. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/src/app/format.rs +0 -0
  763. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/src/app/milestone_dag.rs +0 -0
  764. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/src/app/mod.rs +0 -0
  765. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/src/app/msv.rs +0 -0
  766. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/src/app/pipeline.rs +0 -0
  767. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/src/app/plans.rs +0 -0
  768. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/src/app/render.rs +0 -0
  769. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/src/app/reports.rs +0 -0
  770. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/src/app/sessions.rs +0 -0
  771. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/src/app/settings_ui.rs +0 -0
  772. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/src/app/sidebar.rs +0 -0
  773. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/src/app/terminal.rs +0 -0
  774. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/src/app/tests.rs +0 -0
  775. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/src/app/types.rs +0 -0
  776. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/src/app/workspace.rs +0 -0
  777. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/src/bin/gtk.rs +0 -0
  778. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/src/commands.rs +0 -0
  779. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/src/lib.rs +0 -0
  780. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/src/main.rs +0 -0
  781. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/src/settings.rs +0 -0
  782. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/tests/acceptance.rs +0 -0
  783. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/tests/cli.rs +0 -0
  784. {code_coordinator-0.5.185 → code_coordinator-0.5.186}/tui/tests/fixtures/board_sample.json +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-coordinator
3
- Version: 0.5.185
3
+ Version: 0.5.186
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.185
3
+ Version: 0.5.186
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.185",
2
+ "tag": "0.5.186",
3
3
  "distance": 0,
4
- "node": "g2d150e839b7920ff70d6be0f4983503f6a092831",
4
+ "node": "g91a8fc0c07fd891a6a9c258c7f30aba6e090c865",
5
5
  "dirty": false,
6
6
  "branch": "HEAD",
7
7
  "node_date": "2026-08-20"
@@ -1617,11 +1617,15 @@ class HealthConfig:
1617
1617
  # None → ~/coord-web-dist — the symlink `deploy/coord-web-dist-build.timer`
1618
1618
  # atomically repoints at each new release (#1543).
1619
1619
  webapp_dist_path: str | None = None
1620
- # Directory holding the coord/dashboard/webapp/ sources the bundle was
1621
- # built from. None `<checkout>/coord/dashboard/webapp/src` for the
1622
- # first configured local checkout that has one. Same `src/`-not-root
1623
- # reasoning as `tui_source_dir`: rooting at the webapp package root would
1624
- # sweep `node_modules`/`dist` were they not already skipped by name.
1620
+ # Directory holding the `coord-web` sources the bundle was built from
1621
+ # (#2470; before epic #2002 split the webapp out into its own repo, this
1622
+ # was `coord/dashboard/webapp/` inside THIS repo). None → `<checkout>/src`
1623
+ # for this machine's `coord-web` checkout, discovered the same way
1624
+ # `coord_web_checkout` is (see
1625
+ # `coord.health.checks.coord_web_ci_pin.resolve_coord_web_checkout`).
1626
+ # Same `src/`-not-root reasoning as `tui_source_dir`: rooting at the
1627
+ # webapp package root would sweep `node_modules`/`dist` were they not
1628
+ # already skipped by name.
1625
1629
  webapp_source_dir: str | None = None
1626
1630
  # Absolute path to the heartbeat coord-web-dist-build.sh writes on EVERY
1627
1631
  # invocation, whether or not there was anything to build (#2122). None →
@@ -4,13 +4,14 @@
4
4
  #
5
5
  # A systemd *user* unit, Type=oneshot, mirroring coord-drive-queue.service's
6
6
  # tick pattern (timer-fired, its own flock so a slow run can't stack). Runs
7
- # deploy/coord-web-dist-build.sh, which:
7
+ # deploy/coord-web-dist-build.sh, which (#2470: tracks the dedicated
8
+ # `coord-web` repo, not `coord/dashboard/webapp/` inside THIS repo — see
9
+ # docs/ADR_COORD_WEB_DIST.md; #2009: that used to be ~/src/code-coordinator,
10
+ # back when the webapp was a subdirectory of this repo):
8
11
  # - fetches origin/main into ~/src/coord-web (read-only — only
9
12
  # `git fetch` + `rev-parse`, never touches that checkout's working tree
10
- # or whatever branch an operator has it parked on). #2009: that used
11
- # to be ~/src/code-coordinator, back when the webapp was a
12
- # subdirectory of this repo,
13
- # - builds that repo's ROOT at that SHA inside a DEDICATED worktree
13
+ # or whatever branch an operator has it parked on),
14
+ # - builds coord-web's repo root from that SHA inside a DEDICATED worktree
14
15
  # (~/.coord-web-checkout, never shared with an operator or `coord drive`),
15
16
  # - atomically repoints ~/coord-web-dist at the new build.
16
17
  #
@@ -48,6 +48,18 @@
48
48
  # overlap the flock, in which case the next fire simply retries 10 minutes
49
49
  # later.
50
50
  #
51
+ # #2470: this unit now tracks the dedicated `coord-web` repo's `main`
52
+ # (deploy/coord-web-dist-build.sh's BASE_CHECKOUT/WEBAPP_CHECKOUT), not
53
+ # `coord/dashboard/webapp/` inside THIS repo (docs/ADR_COORD_WEB_DIST.md).
54
+ # The cadence measurement above predates that split and was taken against
55
+ # this repo's merge history; it stays the right order-of-magnitude
56
+ # justification for 10 minutes because `coord-web`, being a repo dedicated
57
+ # entirely to the webapp, has EVERY merge to its `main` in-scope for a build
58
+ # — there is no "does this commit touch webapp/ at all" filtering to do
59
+ # anymore (the script never filtered by path either; it always rebuilt on
60
+ # any `origin/main` SHA change, webapp-only or not — this just makes that
61
+ # now-trivially-true for the repo it targets).
62
+ #
51
63
  # Install: see deploy/coord-web-dist-build.sh's header, or
52
64
  # docs/PHONE_WEBAPP.md / docs/AGENT_OPERATIONS.md.
53
65
 
@@ -38,10 +38,14 @@ wheel's version the way ``agent_venv``/``spawned_coord`` are —
38
38
  ``~/.coord-venv`` release cadence, so "is it on the released version?" is
39
39
  not a well-formed question for it. What *is* well-formed, and what this
40
40
  checks — mirroring ``tui_binary`` exactly — is whether the live bundle is
41
- older than the webapp source tree it claims to have been built from. Since
42
- #2009 (epic #2002) that source tree is a ``coord-web`` checkout rather than
43
- this repo's ``coord/dashboard/webapp/``; see
44
- :func:`resolve_webapp_source_dir` for how both layouts are located.
41
+ older than the source tree it claims to have been built from: the
42
+ `coord-web` repo's own checkout (#2470; retargeted from this repo's now-gone
43
+ ``coord/dashboard/webapp/`` once the webapp moved out under epic #2002 —
44
+ see :func:`resolve_webapp_source_dir`, which shares its checkout-discovery
45
+ convention with ``coord.health.checks.coord_web_ci_pin`` so the two checks
46
+ can never disagree about which local checkout *is* `coord-web`, with a
47
+ fallback to the pre-#2009 in-repo layout for a checkout still parked on a
48
+ pre-split commit).
45
49
  """
46
50
 
47
51
  from __future__ import annotations
@@ -50,6 +54,7 @@ import subprocess
50
54
 
51
55
  from coord.dist_name import CANDIDATE_NAMES
52
56
  from coord.health.checks.agent_install import pip_show
57
+ from coord.health.checks.coord_web_ci_pin import resolve_coord_web_checkout
53
58
  from coord.health.models import CheckResult, HealthContext, Severity
54
59
  from coord.health.registry import check
55
60
  from coord.health.units import expand, shorten_path
@@ -142,31 +147,30 @@ def resolve_webapp_build_heartbeat_path(ctx: HealthContext):
142
147
  def resolve_webapp_source_dir(ctx: HealthContext):
143
148
  """The webapp source tree in the first local checkout that has one.
144
149
 
145
- Same convention as :func:`resolve_tui_source_dir`. Two layouts are
146
- recognised, in this order:
147
-
148
- 1. ``<checkout>/src`` a ``coord-web`` checkout, whose repo ROOT is the
149
- webapp root (#2009, epic #2002). Gated on a sibling ``package.json``
150
- so an unrelated repo that merely happens to have a top-level ``src/``
151
- (any Rust or src-layout Python project in ``ctx.checkouts``) cannot be
152
- mistaken for the webapp — grading the live bundle against the WRONG
153
- tree would manufacture staleness rather than report it, which is the
154
- exact failure ``resolve_tui_source_dir`` refuses to risk by not
155
- guessing relative to the binary path.
156
- 2. ``<checkout>/coord/dashboard/webapp/src`` the pre-#2009 in-repo
157
- layout. Kept because a machine can legitimately still have an older
158
- ``claude-coordinator`` checkout parked on a pre-split commit, and this
159
- lane reporting UNKNOWN there would be a regression in signal for no
160
- gain. It can only ever match a tree that genuinely is webapp source.
150
+ Prefers a `coord-web` checkout (#2470), discovered via
151
+ :func:`coord.health.checks.coord_web_ci_pin.resolve_coord_web_checkout`
152
+ — the same "checkout named ``coord-web``, else one carrying
153
+ ``playwright.acceptance.config.ts`` at its root" discovery that check
154
+ already uses so `webapp_bundle` and `coord_web_ci_pin` can never
155
+ disagree about which local checkout is `coord-web`. That checkout's
156
+ ``src/`` is the webapp root (#2009, epic #2002).
157
+
158
+ Falls back to ``<checkout>/coord/dashboard/webapp/src`` the pre-#2009
159
+ in-repo layout. Kept because a machine can legitimately still have an
160
+ older ``claude-coordinator`` checkout parked on a pre-split commit, and
161
+ this lane reporting UNKNOWN there would be a regression in signal for no
162
+ gain. Configured ``health.webapp_source_dir`` still wins outright, same
163
+ convention as every other path in this module.
161
164
  """
162
165
  configured = getattr(ctx.thresholds, "webapp_source_dir", None)
163
166
  if configured:
164
167
  return expand(configured, ctx.home)
168
+ checkout = resolve_coord_web_checkout(ctx)
169
+ if checkout is not None:
170
+ candidate = checkout / "src"
171
+ if candidate.is_dir():
172
+ return candidate
165
173
  for checkout in ctx.checkouts:
166
- if (checkout.path / "package.json").is_file():
167
- candidate = checkout.path / "src"
168
- if candidate.is_dir():
169
- return candidate
170
174
  candidate = checkout.path / "coord" / "dashboard" / "webapp" / "src"
171
175
  if candidate.is_dir():
172
176
  return candidate
@@ -351,8 +351,8 @@ def probe_tui_binary(ctx: HealthContext) -> CheckResult:
351
351
  order=13,
352
352
  description=(
353
353
  "The dist/ bundle `coord web --dist` serves is not older than the "
354
- "coord/dashboard/webapp/ source tree it was supposedly built from, "
355
- "on every machine that has one (#1834 lane 5)."
354
+ "`coord-web` source tree it was supposedly built from, "
355
+ "on every machine that has one (#1834 lane 5, #2470)."
356
356
  ),
357
357
  )
358
358
  def probe_webapp_bundle(ctx: HealthContext) -> CheckResult:
@@ -395,7 +395,7 @@ def findings_for_host(host: str, health: dict | None) -> list[Finding]:
395
395
  )
396
396
  )
397
397
 
398
- # ── webapp bundle vs coord/dashboard/webapp/ source (#1834 lane 5) ───
398
+ # ── webapp bundle vs coord-web's own source tree (#1834 lane 5, #2470)
399
399
  # Deliberately not a Lane/version comparison — see release_verify.py's
400
400
  # module docstring and coord.health.checks.fleet_deploy_lanes: the
401
401
  # bundle is versioned by origin/main's SHA on a continuous publish
@@ -4,13 +4,14 @@
4
4
  #
5
5
  # A systemd *user* unit, Type=oneshot, mirroring coord-drive-queue.service's
6
6
  # tick pattern (timer-fired, its own flock so a slow run can't stack). Runs
7
- # deploy/coord-web-dist-build.sh, which:
7
+ # deploy/coord-web-dist-build.sh, which (#2470: tracks the dedicated
8
+ # `coord-web` repo, not `coord/dashboard/webapp/` inside THIS repo — see
9
+ # docs/ADR_COORD_WEB_DIST.md; #2009: that used to be ~/src/code-coordinator,
10
+ # back when the webapp was a subdirectory of this repo):
8
11
  # - fetches origin/main into ~/src/coord-web (read-only — only
9
12
  # `git fetch` + `rev-parse`, never touches that checkout's working tree
10
- # or whatever branch an operator has it parked on). #2009: that used
11
- # to be ~/src/code-coordinator, back when the webapp was a
12
- # subdirectory of this repo,
13
- # - builds that repo's ROOT at that SHA inside a DEDICATED worktree
13
+ # or whatever branch an operator has it parked on),
14
+ # - builds coord-web's repo root from that SHA inside a DEDICATED worktree
14
15
  # (~/.coord-web-checkout, never shared with an operator or `coord drive`),
15
16
  # - atomically repoints ~/coord-web-dist at the new build.
16
17
  #
@@ -1,19 +1,26 @@
1
1
  #!/usr/bin/env bash
2
2
  #
3
- # coord-web-dist-build.sh — build the `coord-web` webapp from its merged
4
- # `main` into a directory `coord web --dist` serves, WITHOUT touching
5
- # ~/.coord-venv (#1543).
3
+ # coord-web-dist-build.sh — build the React webapp from the `coord-web`
4
+ # repo's merged `main` into a directory `coord web --dist` serves, WITHOUT
5
+ # touching ~/.coord-venv (#1543; retargeted at `coord-web` by #2470 once the
6
+ # webapp moved out of THIS repo into its own, epic #2002 — see
7
+ # docs/ADR_COORD_WEB_DIST.md for the decision. Before #2470 this built
8
+ # `coord/dashboard/webapp` out of a `claude-coordinator` checkout; the
9
+ # mechanism below is otherwise unchanged, only which repo it points at).
6
10
  #
7
11
  # Why this exists: coord-web, coord-agent and coord-serve all `ExecStart`
8
12
  # from the SAME ~/.coord-venv, so "ship a webapp change" used to mean
9
13
  # `pip install --upgrade code-coordinator` on that venv — which also
10
14
  # upgrades the board daemon and the agent runtime on that host, and
11
15
  # `coord agent update` is already known to kill running headless workers
12
- # (see the #1543 issue body). This script decouples the two: it keeps an
13
- # independent worktree of the webapp's repo, builds it from merged main into
14
- # a fresh release directory named after the SHA, and atomically repoints a
15
- # symlink at it. `coord web --dist ~/coord-web-dist` (see
16
- # deploy/coord-web.service) always points at that symlink.
16
+ # (see the #1543 issue body). This script decouples the two: it keeps a
17
+ # DEDICATED clone of the `coord-web` repo (never an operator's own
18
+ # `~/src/coord-web` dev checkout's working tree same "never the checkout
19
+ # someone else is using" rule this script has always applied to the repo it
20
+ # builds from), builds it from merged main into a fresh, timestamped release
21
+ # directory, and atomically repoints a symlink at it. `coord web --dist
22
+ # ~/coord-web-dist` (see deploy/coord-web.service) always points at that
23
+ # symlink.
17
24
  #
18
25
  # #2009 (epic #2002) — WHICH repo this builds changed, nothing else did.
19
26
  # Until the split, `$BASE_CHECKOUT` was a checkout of *claude-coordinator*
@@ -28,11 +35,12 @@
28
35
  # file (#2122) all carry over untouched, because none of them ever depended
29
36
  # on which repo the source came from.
30
37
  #
31
- # ONE thing does still come from claude-coordinator: the health check boots a
32
- # real `coord web --fixture` and needs that repo's board fixture JSON, which
33
- # `coord-web` has no copy of. `$COORD_CHECKOUT` (default
34
- # `$SRC_ROOT/code-coordinator`) is where it is read from — set
35
- # `$HEALTH_CHECK_FIXTURE` directly on a host that keeps no such checkout.
38
+ # The health check boots a real `coord web --fixture` and needs a board
39
+ # fixture JSON for it — `coord-web` vendored its own copy of the one
40
+ # `e2e/fixtureServer.ts` already uses (post-#2005 split, commit 7e0bf5b), so
41
+ # this reads `$WEBAPP_CHECKOUT/e2e/fixtures/board-pipeline-basic.json` and
42
+ # has no dependency on a claude-coordinator checkout being present. Set
43
+ # `$HEALTH_CHECK_FIXTURE` directly to override.
36
44
  #
37
45
  # NO RESTART of coord-web is required after the first build. Starlette's
38
46
  # StaticFiles/FileResponse re-resolve the directory on every request (see
@@ -45,14 +53,21 @@
45
53
  # once, THEN start/enable coord-web.
46
54
  #
47
55
  # Safe to run unattended on a timer (see coord-web-dist-build.timer): it
48
- # never touches ~/.coord-venv, ~/src/coord-web's own checkout (it
49
- # uses a DEDICATED `git worktree`, so it can't collide with whatever branch
50
- # an operator has that checkout parked on same reasoning as `coord drive`'s
51
- # worktree isolation), or any running coord-agent/coord-serve/coord-web
52
- # process. A `flock` guards against overlapping runs; a same-SHA re-run is a
53
- # fast no-op.
56
+ # never touches ~/.coord-venv or $BASE_CHECKOUT's working tree (only
57
+ # `git fetch`/`rev-parse` run there the actual build happens in a
58
+ # SEPARATE, DEDICATED `git worktree`, $WEBAPP_CHECKOUT, so it can't collide
59
+ # with whatever branch an operator has $BASE_CHECKOUT parked on — same
60
+ # reasoning as `coord drive`'s worktree isolation), or any running
61
+ # coord-agent/coord-serve/coord-web process. A `flock` guards against
62
+ # overlapping runs; a same-SHA re-run is a fast no-op.
54
63
  #
55
- # Install:
64
+ # Install: $BASE_CHECKOUT (default ~/src/coord-web) must be a real, already-
65
+ # cloned `coord-web` checkout before the first run — this script only
66
+ # fetches/rev-parses/worktrees off it, it never `git clone`s one into
67
+ # existence. Use a checkout dedicated to this deploy lane if the operator
68
+ # also keeps their own `coord-web` dev checkout elsewhere on this box.
69
+ #
70
+ # git clone <coord-web-remote> ~/src/coord-web # one-time, if not already there
56
71
  # cp deploy/coord-web-dist-build.sh ~/.local/bin/ # or run in place
57
72
  # chmod +x ~/.local/bin/coord-web-dist-build.sh
58
73
  # ~/.local/bin/coord-web-dist-build.sh # first build, before
@@ -116,6 +131,12 @@
116
131
 
117
132
  set -uo pipefail
118
133
 
134
+ # #2470: tracks the `coord-web` repo's main, not this repo's — see the
135
+ # header. $BASE_CHECKOUT is read-only from this script's point of view (only
136
+ # `git fetch`/`rev-parse`/`worktree add` ever touch it, never `checkout`), so
137
+ # an operator's own `coord-web` dev checkout at the default path is safe in
138
+ # principle, but a checkout dedicated to this deploy lane is still the
139
+ # documented install step — see the header's "Install" section.
119
140
  SRC_ROOT="${SRC_ROOT:-$HOME/src}"
120
141
  # #2009: the webapp's repo, not claude-coordinator's. See the header.
121
142
  REPO_NAME="${REPO_NAME:-coord-web}"
@@ -126,10 +147,6 @@ BRANCH="${BRANCH:-main}"
126
147
  # hard-coded `coord/dashboard/webapp`, and stays configurable so a future
127
148
  # monorepo layout needs an env var rather than an edit here.
128
149
  WEBAPP_SUBDIR="${WEBAPP_SUBDIR:-}"
129
- # claude-coordinator's checkout — needed ONLY for the health-check fixture
130
- # below, which lives in that repo's tests/fixtures/ and has no coord-web
131
- # equivalent. Not fetched, not built, not written to.
132
- COORD_CHECKOUT="${COORD_CHECKOUT:-$SRC_ROOT/code-coordinator}"
133
150
 
134
151
  # A worktree DEDICATED to this script — never the same directory an operator
135
152
  # or `coord drive` worktree might be using, and never checked out over a
@@ -168,9 +185,20 @@ HEALTH_CHECK_PORT="${HEALTH_CHECK_PORT:-18434}"
168
185
  HEALTH_CHECK_TIMEOUT_SECS="${HEALTH_CHECK_TIMEOUT_SECS:-20}"
169
186
  # The reference seeded board (#1538) — deterministic, no DB/fleet/network, so
170
187
  # the scratch instance below never touches ~/.coord/coord.db or races the
171
- # real coord-web/coord-serve/coord-agent processes. Defaults to the fixture
172
- # AT THE SHA BEING DEPLOYED (via $WEBAPP_CHECKOUT), so the fixture schema
173
- # always matches the server code that will parse it.
188
+ # real coord-web/coord-serve/coord-agent processes. Defaults to the copy
189
+ # checked into $WEBAPP_CHECKOUT (the `coord-web` SHA being deployed) at
190
+ # `e2e/fixtures/board-pipeline-basic.json` that is where the fixture
191
+ # actually lives in the `coord-web` repo (`git ls-tree -r --name-only
192
+ # origin/main` has no `tests/` directory at all post-split). NOTE:
193
+ # `coord-web`'s own `playwright.acceptance.config.ts` still has a stale
194
+ # `DEFAULT_FIXTURE` pointing at the old `tests/fixtures/...` path (a
195
+ # leftover `REPO_ROOT` miscalculation from before the repo split — see
196
+ # docs/ADR_COORD_WEB_DIST.md) so do NOT use that config as the source of
197
+ # truth for this path; this comment documents the real, verified location
198
+ # instead (#2470). This is never a claim that the fixture matches the
199
+ # INSTALLED `coord`'s server code, which post-#2002-split is versioned
200
+ # independently (see docs/ADR_COORD_WEB_DIST.md, "Staleness across the
201
+ # split").
174
202
  HEALTH_CHECK_FIXTURE="${HEALTH_CHECK_FIXTURE:-}"
175
203
 
176
204
  say() { echo "[$(date -Is)] $*" >&2; }
@@ -220,9 +248,7 @@ health_check_release() {
220
248
  return 1
221
249
  fi
222
250
 
223
- # #2009: read from claude-coordinator's checkout, not $WEBAPP_CHECKOUT
224
- # the fixture is a coord *board* fixture and never moved to coord-web.
225
- fixture="${HEALTH_CHECK_FIXTURE:-$COORD_CHECKOUT/tests/fixtures/board-pipeline-basic.json}"
251
+ fixture="${HEALTH_CHECK_FIXTURE:-$WEBAPP_CHECKOUT/e2e/fixtures/board-pipeline-basic.json}"
226
252
  if [[ ! -f "$fixture" ]]; then
227
253
  say "ERROR: health-check fixture missing: $fixture — cannot health-check $release_dir"
228
254
  return 1
@@ -48,6 +48,18 @@
48
48
  # overlap the flock, in which case the next fire simply retries 10 minutes
49
49
  # later.
50
50
  #
51
+ # #2470: this unit now tracks the dedicated `coord-web` repo's `main`
52
+ # (deploy/coord-web-dist-build.sh's BASE_CHECKOUT/WEBAPP_CHECKOUT), not
53
+ # `coord/dashboard/webapp/` inside THIS repo (docs/ADR_COORD_WEB_DIST.md).
54
+ # The cadence measurement above predates that split and was taken against
55
+ # this repo's merge history; it stays the right order-of-magnitude
56
+ # justification for 10 minutes because `coord-web`, being a repo dedicated
57
+ # entirely to the webapp, has EVERY merge to its `main` in-scope for a build
58
+ # — there is no "does this commit touch webapp/ at all" filtering to do
59
+ # anymore (the script never filtered by path either; it always rebuilt on
60
+ # any `origin/main` SHA change, webapp-only or not — this just makes that
61
+ # now-trivially-true for the repo it targets).
62
+ #
51
63
  # Install: see deploy/coord-web-dist-build.sh's header, or
52
64
  # docs/PHONE_WEBAPP.md / docs/AGENT_OPERATIONS.md.
53
65
 
@@ -156,3 +156,14 @@ timer is still alive.
156
156
  - Options 2 and 3 remain available to revisit if `coord-web` ever needs a
157
157
  distribution channel independent of this fleet's own daemon host — no
158
158
  requirement in scope today calls for that.
159
+ - Known follow-up, not fixed here: `coord-web`'s own
160
+ `playwright.acceptance.config.ts` computes `DEFAULT_FIXTURE` via a
161
+ `REPO_ROOT = path.resolve(here, '../../..')` climb that predates the
162
+ split, when that config lived three levels down under
163
+ `coord/dashboard/webapp/`. Now that the config lives at the `coord-web`
164
+ repo root, that climb resolves outside the repo entirely, so the default
165
+ points at a path that doesn't exist — the same class of bug #2470 fixed
166
+ in `deploy/coord-web-dist-build.sh`'s health-check fixture default (now
167
+ `$WEBAPP_CHECKOUT/e2e/fixtures/board-pipeline-basic.json`). Will bite
168
+ `coord-web`'s own `npm run test:acceptance` whenever it runs with no
169
+ explicit fixture path arg; needs a fix in the `coord-web` repo, not here.
@@ -1418,7 +1418,7 @@ Three things follow, and they are why this command is shaped the way it is:
1418
1418
  | unit files vs the packaged `coord/deploy/**` | each machine's `/health` | `unit_drift` / PATH shadow (#1831, #1927) |
1419
1419
  | `~/.coord-cli-venv` | each machine's `/health` | `cli_venv` (#1806) |
1420
1420
  | `coord-tui` binary vs `tui/` source | each machine's `/health` | `tui_binary` — until PKG-3/PKG-4 give it a real channel |
1421
- | `coord web --dist` bundle vs `coord/dashboard/webapp/` source | each machine's `/health` | `webapp_bundle` / `fleet_webapp_bundle` — lane 5, staleness only (see below) |
1421
+ | `coord web --dist` bundle vs `coord-web`'s own source | each machine's `/health` | `webapp_bundle` / `fleet_webapp_bundle` — lane 5, staleness only (see below) |
1422
1422
 
1423
1423
  `.githooks/**` (lane 6 above) is deliberately **not** graded here: its failure
1424
1424
  mode is the inverse — it is live everywhere at the next `git fetch`, with no
@@ -1431,17 +1431,19 @@ row above — deliberately, not by oversight.** Every other lane compares
1431
1431
  against *the released version*: a pip version string that both an agent venv
1432
1432
  and a spawned `coord` can report. The webapp bundle has no such string to
1433
1433
  compare against. `deploy/coord-web-dist-build.timer` publishes it
1434
- continuously off `origin/main`'s SHA, once a minute, **decoupled on purpose**
1435
- from the `~/.coord-venv` release cadence every other lane rides (#1543)
1436
- that decoupling is the entire point of that pipeline, so folding it into the
1437
- version-skew map above would manufacture permanent, meaningless "skew"
1438
- between a semver string and a git SHA on every correctly-running fleet, not
1439
- report a real defect. What `webapp_bundle` (machine-scope) /
1440
- `fleet_webapp_bundle` (fleet-scope) check instead, on its own terms the
1441
- same shape `tui_binary`/`fleet_tui_binary` already use for the locally-built
1442
- `coord-tui` binary is whether the live bundle is *stale relative to the
1443
- `coord/dashboard/webapp/` source tree it claims to have been built from*, and
1444
- whether two machines both serving `coord web` agree on which build that is.
1434
+ continuously off the `coord-web` repo's `origin/main` SHA (#2470; before
1435
+ that, this repo's own `coord/dashboard/webapp/`, epic #2002), every 10
1436
+ minutes (#2122), **decoupled on purpose** from the `~/.coord-venv` release
1437
+ cadence every other lane rides (#1543) that decoupling is the entire point
1438
+ of that pipeline, so folding it into the version-skew map above would
1439
+ manufacture permanent, meaningless "skew" between a semver string and a git
1440
+ SHA on every correctly-running fleet, not report a real defect. What
1441
+ `webapp_bundle` (machine-scope) / `fleet_webapp_bundle` (fleet-scope) check
1442
+ instead, on its own terms the same shape `tui_binary`/`fleet_tui_binary`
1443
+ already use for the locally-built `coord-tui` binary is whether the live
1444
+ bundle is *stale relative to the `coord-web` source tree it claims to have
1445
+ been built from*, and whether two machines both serving `coord web` agree on
1446
+ which build that is.
1445
1447
  A WARN there means "`coord-web-dist-build.timer` has stopped publishing",
1446
1448
  which is the failure mode this lane exists to catch; it says nothing about
1447
1449
  whether that publish is caught up with the latest tagged release, because
@@ -126,11 +126,12 @@ cd coord/dashboard/webapp && npm run build
126
126
 
127
127
  ---
128
128
 
129
- > **Repo split (#2004):** `coord/dashboard/webapp/**` is moving to its own
130
- > `coord-web` repo (epic #2002). The mechanism below is the answer for how a
131
- > built bundle reaches this daemon host both before and after that move —
132
- > see [`docs/ADR_COORD_WEB_DIST.md`](ADR_COORD_WEB_DIST.md) for the decision
133
- > and the rejected alternatives.
129
+ > **Repo split (#2004, #2470):** `coord/dashboard/webapp/**` has moved to its
130
+ > own `coord-web` repo (epic #2002), and as of #2470 the mechanism below
131
+ > tracks `coord-web`'s `main`, not this repo's (now historical, pending
132
+ > UX-7 #2009) `coord/dashboard/webapp/`. See
133
+ > [`docs/ADR_COORD_WEB_DIST.md`](ADR_COORD_WEB_DIST.md) for the decision and
134
+ > the rejected alternatives.
134
135
 
135
136
  ## Going live automatically (#1543): merged main, not release cadence
136
137
 
@@ -158,15 +159,18 @@ inside the installed package (`coord/dashboard/webapp/dist`,
158
159
  `coord/dashboard/server.py`'s `WEBAPP_DIST`). `deploy/coord-web.service`
159
160
  points it at `~/coord-web-dist`, a symlink that
160
161
  [`deploy/coord-web-dist-build.sh`](../deploy/coord-web-dist-build.sh) —
161
- installed as `coord-web-dist-build.timer`, firing every minute keeps
162
- pointed at a fresh build of `coord/dashboard/webapp` from `origin/main`:
162
+ installed as `coord-web-dist-build.timer`, firing every 10 minutes (#2122)
163
+ — keeps pointed at a fresh build of the `coord-web` repo's `origin/main`
164
+ (#2470; before that, `coord/dashboard/webapp/` inside this repo):
163
165
 
164
166
  ```
165
- coord-web-dist-build.timer (every 1min)
166
- → fetch origin/main in ~/src/claude-coordinator (read-only: fetch + rev-parse only)
167
+ coord-web-dist-build.timer (every 10min)
168
+ → fetch origin/main in a dedicated coord-web clone (BASE_CHECKOUT, default
169
+ ~/src/coord-web — read-only: fetch + rev-parse only, never the operator's
170
+ own coord-web dev checkout's working tree)
167
171
  → build that SHA in a DEDICATED worktree (~/.coord-web-checkout — never the
168
172
  operator's own checkout, never a `coord drive` worktree)
169
- → npm ci && npm run build
173
+ → npm ci && npm run build, at coord-web's repo root
170
174
  → atomically repoint ~/coord-web-dist -> ~/.coord-web-releases/<sha>
171
175
  ```
172
176
 
@@ -141,6 +141,29 @@ def test_dist_build_script_is_executable_and_locked() -> None:
141
141
  assert not any("--upgrade" in line for line in code_lines)
142
142
 
143
143
 
144
+ def test_dist_build_script_defaults_to_the_coord_web_repo() -> None:
145
+ """#2470: the build must track the dedicated `coord-web` repo's `main`,
146
+ not `coord/dashboard/webapp/` inside THIS repo (docs/ADR_COORD_WEB_DIST.md)
147
+ -- pin the actual default env-var values, not just prose in a comment."""
148
+ text = BUILD_SCRIPT.read_text()
149
+ assert 'REPO_NAME="${REPO_NAME:-coord-web}"' in text
150
+ assert 'REPO_NAME="${REPO_NAME:-code-coordinator}"' not in text
151
+
152
+
153
+ def test_dist_build_script_builds_at_the_webapp_checkout_root() -> None:
154
+ """#2470: `coord-web` IS the webapp package now -- `npm ci`/`npm run
155
+ build` must run at $WEBAPP_CHECKOUT's own root (honoring the pre-existing
156
+ $WEBAPP_SUBDIR seam, empty by default), not a hard-coded
157
+ coord/dashboard/webapp subdirectory of it (that subdirectory only ever
158
+ existed inside `claude-coordinator`, the pre-split monorepo)."""
159
+ text = BUILD_SCRIPT.read_text()
160
+ assert 'WEBAPP_DIR="$WEBAPP_CHECKOUT${WEBAPP_SUBDIR:+/$WEBAPP_SUBDIR}"' in text
161
+ code_lines = [
162
+ line for line in text.splitlines() if not line.strip().startswith("#")
163
+ ]
164
+ assert not any("coord/dashboard/webapp" in line for line in code_lines)
165
+
166
+
144
167
  def test_dist_build_script_health_checks_before_publish() -> None:
145
168
  """#1560's actual fix: a release must be booted and probed on a scratch,
146
169
  127.0.0.1-only port BEFORE the live symlink ever points at it -- the
@@ -163,6 +186,62 @@ def test_dist_build_script_health_checks_before_publish() -> None:
163
186
  assert "resolve_coord_bin" in text
164
187
 
165
188
 
189
+ def test_health_check_fixture_default_resolves_under_webapp_checkout(
190
+ tmp_path: Path,
191
+ ) -> None:
192
+ """#2470 review fix: retargeting $WEBAPP_CHECKOUT at a `coord-web`
193
+ checkout silently broke the health-check fixture default -- it used to
194
+ read `$WEBAPP_CHECKOUT/tests/fixtures/board-pipeline-basic.json`, which
195
+ was correct when $WEBAPP_CHECKOUT was a worktree of THIS repo, but
196
+ `coord-web`'s `origin/main` has no `tests/` directory at all
197
+ (confirmed via `git ls-tree -r --name-only origin/main`); the fixture
198
+ actually lives at `e2e/fixtures/board-pipeline-basic.json`. A missing
199
+ fixture makes `health_check_release` fail closed (see
200
+ test_dist_build_script_health_checks_before_publish), which means
201
+ coord-web-dist-build.timer would NEVER successfully publish on a real
202
+ host -- exactly the bug #2470 exists to fix. This drives the actual
203
+ parameter-expansion line from the script (extracted verbatim, not
204
+ retyped) against a scratch directory shaped like a real `coord-web`
205
+ checkout, so a future edit that reintroduces the stale
206
+ `tests/fixtures/...` default fails this test instead of silently
207
+ breaking every publish."""
208
+ text = BUILD_SCRIPT.read_text()
209
+ fixture_lines = [
210
+ line
211
+ for line in text.splitlines()
212
+ if line.strip().startswith('fixture="${HEALTH_CHECK_FIXTURE:-')
213
+ ]
214
+ assert len(fixture_lines) == 1, fixture_lines
215
+ fixture_expr = fixture_lines[0].strip()
216
+
217
+ # Guard against the stale, pre-#2470-retarget-fix default reappearing.
218
+ assert "tests/fixtures/board-pipeline-basic.json" not in text
219
+
220
+ webapp_checkout = tmp_path / "webapp-checkout"
221
+ fixture_dir = webapp_checkout / "e2e" / "fixtures"
222
+ fixture_dir.mkdir(parents=True)
223
+ fixture_file = fixture_dir / "board-pipeline-basic.json"
224
+ fixture_file.write_text("{}")
225
+
226
+ env = dict(os.environ)
227
+ env.pop("HEALTH_CHECK_FIXTURE", None)
228
+ env["WEBAPP_CHECKOUT"] = str(webapp_checkout)
229
+
230
+ result = subprocess.run(
231
+ ["bash", "-c", f'{fixture_expr}\necho "$fixture"'],
232
+ env=env,
233
+ capture_output=True,
234
+ text=True,
235
+ check=True,
236
+ )
237
+ resolved = result.stdout.strip()
238
+ assert resolved == str(fixture_file)
239
+ assert Path(resolved).is_file(), (
240
+ "resolved default fixture path must actually exist on disk in a "
241
+ "real coord-web checkout layout"
242
+ )
243
+
244
+
166
245
  def test_dist_build_script_rollback_comment_points_at_rollback_script() -> None:
167
246
  """The one-liner documented pre-#1560 still works, but the header must
168
247
  also point at the safer, phone-typeable script form (#1560)."""
@@ -355,8 +434,9 @@ def test_build_script_clears_sentinel_once_main_moves_past_the_blocked_sha(
355
434
  """Once a fix actually lands on main, the sentinel must not permanently
356
435
  wedge deploys -- the guard should clear it and let the normal build
357
436
  proceed (which then fails for an unrelated, expected reason in this
358
- test: the scratch origin repo has no real coord/dashboard/webapp/ to
359
- npm-build -- this test only cares that the guard released its grip)."""
437
+ test: the scratch origin repo is not a real `coord-web` checkout with
438
+ anything npm-buildable at its root -- this test only cares that the
439
+ guard released its grip)."""
360
440
  origin_repo = tmp_path / "origin-repo"
361
441
  bad_sha = _init_git_repo_with_commit(origin_repo, message="bad commit")
362
442
  (origin_repo / "README.md").write_text("fixed")