code-coordinator 0.5.234__tar.gz → 0.5.235__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 (814) hide show
  1. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/PKG-INFO +1 -1
  2. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/code_coordinator.egg-info/PKG-INFO +1 -1
  3. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/code_coordinator.egg-info/scm_version.json +2 -2
  4. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/agent.py +51 -8
  5. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/commands/dispatch_workers.py +26 -0
  6. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/commands/merge.py +28 -3
  7. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/interactive.py +30 -2
  8. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_assign_interactive_remote.py +113 -14
  9. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_merge_verify.py +141 -4
  10. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/.claude/commands/board.md +0 -0
  11. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/.claude/commands/complete-session.md +0 -0
  12. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/.claude/commands/coordinator.md +0 -0
  13. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/.githooks/_lib.sh +0 -0
  14. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/.githooks/post-checkout +0 -0
  15. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/.githooks/post-commit +0 -0
  16. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/.githooks/post-merge +0 -0
  17. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  18. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/.github/coord-ci-acceptance.yml +0 -0
  19. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/.github/workflows/auto-release.yml +0 -0
  20. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/.github/workflows/cargo-test.yml +0 -0
  21. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/.github/workflows/publish.yml +0 -0
  22. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/.github/workflows/release-tui.yml +0 -0
  23. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/.github/workflows/test.yml +0 -0
  24. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/.gitignore +0 -0
  25. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/CLAUDE.md +0 -0
  26. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/GOAL.md +0 -0
  27. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/LICENSE +0 -0
  28. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/MANIFEST.in +0 -0
  29. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/README.md +0 -0
  30. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/code_coordinator.egg-info/SOURCES.txt +0 -0
  31. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/code_coordinator.egg-info/dependency_links.txt +0 -0
  32. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/code_coordinator.egg-info/entry_points.txt +0 -0
  33. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/code_coordinator.egg-info/requires.txt +0 -0
  34. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/code_coordinator.egg-info/scm_file_list.json +0 -0
  35. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/code_coordinator.egg-info/top_level.txt +0 -0
  36. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/__init__.py +0 -0
  37. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/_board_mapping.py +0 -0
  38. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/acceptance.py +0 -0
  39. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/acceptance_drivers.py +0 -0
  40. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/agent_app.py +0 -0
  41. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/agent_update.py +0 -0
  42. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/agents/opencode/.gitignore +0 -0
  43. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/agents/opencode/agents/work.md +0 -0
  44. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/agents/opencode/routing.jsonc +0 -0
  45. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/approved_work.py +0 -0
  46. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/audit.py +0 -0
  47. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/auto_loop.py +0 -0
  48. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/block_log.py +0 -0
  49. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/board_bool_guard.py +0 -0
  50. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/board_service.py +0 -0
  51. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/board_wire.py +0 -0
  52. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/brain.py +0 -0
  53. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/branch_model.py +0 -0
  54. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/bug_intake.py +0 -0
  55. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/cargo_cache.py +0 -0
  56. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/ci_fix.py +0 -0
  57. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/ci_github.py +0 -0
  58. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/ci_gitlab.py +0 -0
  59. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/ci_store.py +0 -0
  60. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/claim.py +0 -0
  61. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/cli.py +0 -0
  62. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/client.py +0 -0
  63. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/commands/__init__.py +0 -0
  64. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/commands/_common.py +0 -0
  65. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/commands/acceptance.py +0 -0
  66. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/commands/agent_ops.py +0 -0
  67. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/commands/audit.py +0 -0
  68. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/commands/chat.py +0 -0
  69. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/commands/dispatch.py +0 -0
  70. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/commands/drive.py +0 -0
  71. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/commands/drive_queue.py +0 -0
  72. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/commands/gate_a.py +0 -0
  73. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/commands/gates.py +0 -0
  74. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/commands/issues.py +0 -0
  75. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/commands/lifecycle.py +0 -0
  76. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/commands/milestone.py +0 -0
  77. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/commands/plan_followup.py +0 -0
  78. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/commands/plans.py +0 -0
  79. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/commands/portal.py +0 -0
  80. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/commands/release.py +0 -0
  81. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/commands/repo.py +0 -0
  82. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/commands/report.py +0 -0
  83. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/commands/review.py +0 -0
  84. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/commands/scorecard.py +0 -0
  85. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/commands/sessions.py +0 -0
  86. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/commands/setup.py +0 -0
  87. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/commands/status.py +0 -0
  88. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/commands/terminal.py +0 -0
  89. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/commands/test_gate.py +0 -0
  90. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/commands/tui.py +0 -0
  91. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/comments.py +0 -0
  92. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/config.py +0 -0
  93. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/config_reload.py +0 -0
  94. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/confirm_test.py +0 -0
  95. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/conflict_fix.py +0 -0
  96. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/dao.py +0 -0
  97. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/dashboard/__init__.py +0 -0
  98. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/dashboard/fixture.py +0 -0
  99. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/dashboard/index.html +0 -0
  100. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/dashboard/server.py +0 -0
  101. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/dashboard/terminal.py +0 -0
  102. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/db.py +0 -0
  103. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/dead_end.py +0 -0
  104. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/deploy/README.md +0 -0
  105. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/deploy/coord-agent.service +0 -0
  106. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/deploy/coord-db-backup.service +0 -0
  107. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/deploy/coord-db-backup.sh +0 -0
  108. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/deploy/coord-db-backup.timer +0 -0
  109. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/deploy/coord-drive-queue.service +0 -0
  110. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/deploy/coord-drive-queue.timer +0 -0
  111. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/deploy/coord-notify.service +0 -0
  112. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/deploy/coord-notify.timer +0 -0
  113. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/deploy/coord-release-propagate.service +0 -0
  114. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/deploy/coord-release-propagate.timer +0 -0
  115. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/deploy/coord-release-window.service +0 -0
  116. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/deploy/coord-release-window.timer +0 -0
  117. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/deploy/coord-serve.service +0 -0
  118. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/deploy/coord-web-dist-build.service +0 -0
  119. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/deploy/coord-web-dist-build.timer +0 -0
  120. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/deploy/coord-web.service +0 -0
  121. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/deploy_manifest.py +0 -0
  122. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/deploy_units.py +0 -0
  123. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/deps.py +0 -0
  124. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/diagnose.py +0 -0
  125. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/dispatch.py +0 -0
  126. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/dist_name.py +0 -0
  127. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/drive.py +0 -0
  128. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/drive_queue.py +0 -0
  129. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/drive_state.py +0 -0
  130. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/events.py +0 -0
  131. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/failure_class.py +0 -0
  132. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/filelock.py +0 -0
  133. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/fleet_config_health.py +0 -0
  134. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/forge_availability.py +0 -0
  135. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/freshness.py +0 -0
  136. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/gate_a.py +0 -0
  137. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/gate_b.py +0 -0
  138. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/gate_snapshot.py +0 -0
  139. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/gates.py +0 -0
  140. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/github_ops.py +0 -0
  141. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/goal.py +0 -0
  142. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/graph_health.py +0 -0
  143. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/health/__init__.py +0 -0
  144. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/health/aggregate.py +0 -0
  145. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/health/checks/__init__.py +0 -0
  146. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/health/checks/agent_install.py +0 -0
  147. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/health/checks/cargo_targets.py +0 -0
  148. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/health/checks/claude_binary.py +0 -0
  149. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/health/checks/coord_web_ci_pin.py +0 -0
  150. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/health/checks/deploy_lane_facts.py +0 -0
  151. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/health/checks/disk.py +0 -0
  152. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/health/checks/fleet_board.py +0 -0
  153. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/health/checks/fleet_deploy_lanes.py +0 -0
  154. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/health/checks/fleet_phantom.py +0 -0
  155. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/health/checks/fleet_unit_drift.py +0 -0
  156. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/health/checks/graph.py +0 -0
  157. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/health/checks/graphify_cli.py +0 -0
  158. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/health/checks/index_lock.py +0 -0
  159. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/health/checks/plan_usage.py +0 -0
  160. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/health/checks/repo_state.py +0 -0
  161. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/health/checks/spawned_coord.py +0 -0
  162. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/health/checks/timer_active.py +0 -0
  163. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/health/checks/toolchain.py +0 -0
  164. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/health/checks/unit_drift.py +0 -0
  165. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/health/checks/unit_enablement.py +0 -0
  166. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/health/checks/worktrees.py +0 -0
  167. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/health/cli.py +0 -0
  168. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/health/context.py +0 -0
  169. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/health/fleet_snapshot.py +0 -0
  170. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/health/models.py +0 -0
  171. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/health/pypi.py +0 -0
  172. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/health/registry.py +0 -0
  173. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/health/render.py +0 -0
  174. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/health/units.py +0 -0
  175. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/hooks.py +0 -0
  176. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/housekeeping.py +0 -0
  177. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/issue_store.py +0 -0
  178. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/liveness_auditor.py +0 -0
  179. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/machine_pause.py +0 -0
  180. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/merge_queue.py +0 -0
  181. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/milestone_chat.py +0 -0
  182. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/milestone_dispatch.py +0 -0
  183. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/milestone_gate.py +0 -0
  184. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/milestone_order.py +0 -0
  185. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/mock_author.py +0 -0
  186. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/models.py +0 -0
  187. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/network.py +0 -0
  188. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/new_issue_chat.py +0 -0
  189. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/notifier/__init__.py +0 -0
  190. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/notifier/baseline.py +0 -0
  191. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/notifier/cli.py +0 -0
  192. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/notifier/collect.py +0 -0
  193. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/notifier/digest.py +0 -0
  194. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/notifier/models.py +0 -0
  195. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/notifier/predicate.py +0 -0
  196. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/notifier/service.py +0 -0
  197. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/notifier/store.py +0 -0
  198. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/notifier/transport.py +0 -0
  199. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/notify.py +0 -0
  200. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/openapi.py +0 -0
  201. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/overlap_fence.py +0 -0
  202. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/overlap_predict.py +0 -0
  203. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/parentage.py +0 -0
  204. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/parentage_github.py +0 -0
  205. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/pipeline.py +0 -0
  206. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/plan_parser.py +0 -0
  207. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/plans.py +0 -0
  208. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/platform_paths.py +0 -0
  209. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/portal_bridge.py +0 -0
  210. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/portal_store.py +0 -0
  211. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/portal_sync.py +0 -0
  212. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/pr_body_lint.py +0 -0
  213. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/prereqs.py +0 -0
  214. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/progress.py +0 -0
  215. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/providers/__init__.py +0 -0
  216. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/providers/base.py +0 -0
  217. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/providers/claude.py +0 -0
  218. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/providers/claude_pty.py +0 -0
  219. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/providers/opencode.py +0 -0
  220. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/queue_diagnose.py +0 -0
  221. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/reconcile.py +0 -0
  222. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/reconcile_tick.py +0 -0
  223. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/refine_chat.py +0 -0
  224. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/release_cordon.py +0 -0
  225. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/release_propagate.py +0 -0
  226. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/release_verify.py +0 -0
  227. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/release_window.py +0 -0
  228. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/repo_edit.py +0 -0
  229. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/repo_onboard.py +0 -0
  230. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/reports.py +0 -0
  231. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/revalidate.py +0 -0
  232. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/review.py +0 -0
  233. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/scorecard.py +0 -0
  234. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/self_health.py +0 -0
  235. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/serve_app.py +0 -0
  236. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/skills/coord-dispatch-verbs/SKILL.md +0 -0
  237. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/skills/drive-queue-preflight/SKILL.md +0 -0
  238. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/skills/fleet-restart-safety/SKILL.md +0 -0
  239. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/skills/merge-stuck-triage/SKILL.md +0 -0
  240. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/skills/pipeline-limbo-triage/SKILL.md +0 -0
  241. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/skills/portal-followup/SKILL.md +0 -0
  242. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/skills/review-verdict-recovery/SKILL.md +0 -0
  243. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/skills/tui-quadraui-workflow/SKILL.md +0 -0
  244. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/skills/update-issue/SKILL.md +0 -0
  245. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/smoke.py +0 -0
  246. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/spend_ceiling.py +0 -0
  247. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/split_work.py +0 -0
  248. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/stage_projection.py +0 -0
  249. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/state.py +0 -0
  250. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/test_author.py +0 -0
  251. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/test_chat.py +0 -0
  252. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/test_orchestrator.py +0 -0
  253. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/test_report.py +0 -0
  254. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/tui_release.py +0 -0
  255. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/usage.py +0 -0
  256. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/usage_limits.py +0 -0
  257. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/usage_rollup.py +0 -0
  258. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coord/worker_events.py +0 -0
  259. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/coordinator.example.yml +0 -0
  260. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/deploy/coord-agent.service +0 -0
  261. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/deploy/coord-db-backup.service +0 -0
  262. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/deploy/coord-db-backup.sh +0 -0
  263. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/deploy/coord-db-backup.timer +0 -0
  264. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/deploy/coord-drive-queue.service +0 -0
  265. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/deploy/coord-drive-queue.timer +0 -0
  266. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/deploy/coord-notify.service +0 -0
  267. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/deploy/coord-notify.timer +0 -0
  268. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/deploy/coord-release-propagate.service +0 -0
  269. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/deploy/coord-release-propagate.timer +0 -0
  270. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/deploy/coord-release-window.service +0 -0
  271. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/deploy/coord-release-window.timer +0 -0
  272. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/deploy/coord-serve.service +0 -0
  273. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/deploy/coord-web-dist-build.service +0 -0
  274. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/deploy/coord-web-dist-build.sh +0 -0
  275. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/deploy/coord-web-dist-build.timer +0 -0
  276. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/deploy/coord-web-rollback.sh +0 -0
  277. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/deploy/coord-web.service +0 -0
  278. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/deploy/node-shim.sh +0 -0
  279. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/docs/ADR_COORD_WEB_ACCEPTANCE_SUITE.md +0 -0
  280. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/docs/ADR_COORD_WEB_CI.md +0 -0
  281. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/docs/ADR_COORD_WEB_DIST.md +0 -0
  282. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/docs/AGENT_OPERATIONS.md +0 -0
  283. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/docs/ARCHITECTURE.md +0 -0
  284. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/docs/ARCH_SECURITY_GATES.md +0 -0
  285. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/docs/COCKPIT.md +0 -0
  286. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/docs/CONTROL_CENTER.md +0 -0
  287. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/docs/COST_DISCIPLINE.md +0 -0
  288. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/docs/CROSS_PLATFORM.md +0 -0
  289. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/docs/CUSTOMER_PORTAL.md +0 -0
  290. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/docs/DRIVE_QUEUE.md +0 -0
  291. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/docs/EPHEMERAL_WORKERS.md +0 -0
  292. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/docs/FORGE_MIGRATION.md +0 -0
  293. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/docs/GRAPHIFY_SETUP.md +0 -0
  294. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/docs/ISSUE_GUIDANCE.md +0 -0
  295. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/docs/MAC_MINI.md +0 -0
  296. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
  297. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/docs/NOTIFIER.md +0 -0
  298. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/docs/OPENCODE_VERIFICATION.md +0 -0
  299. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/docs/OPERATING_GOTCHAS.md +0 -0
  300. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/docs/ORACLE_LOOP.md +0 -0
  301. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/docs/PHONE_WEBAPP.md +0 -0
  302. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/docs/PIPELINE_V2.md +0 -0
  303. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/docs/PLATFORM_EVOLUTION.md +0 -0
  304. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/docs/SECOND_BACKEND.md +0 -0
  305. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/docs/STORE_SERVICE.md +0 -0
  306. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/docs/TEST_FIRST_BUG_LANE.md +0 -0
  307. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/docs/WEB_CONTROL_CENTER.md +0 -0
  308. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/docs/WSL_WINDOWS_WORKER.md +0 -0
  309. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/docs/mocks/web/README.md +0 -0
  310. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/docs/mocks/web/_tokens.css +0 -0
  311. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/docs/mocks/web/issue-detail.html +0 -0
  312. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/docs/mocks/web/pipeline-narrow.html +0 -0
  313. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/docs/mocks/web/pipeline-wide.html +0 -0
  314. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/graphify-out/.gitignore +0 -0
  315. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/install-agent.sh +0 -0
  316. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/pyproject.toml +0 -0
  317. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/scripts/audit_review_verdict_overrides.py +0 -0
  318. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/scripts/azure-workers/bootstrap-shared.sh +0 -0
  319. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/scripts/azure-workers/build-worker-image.sh +0 -0
  320. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/scripts/azure-workers/coordinator-machine.py +0 -0
  321. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/scripts/azure-workers/epic-down.sh +0 -0
  322. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/scripts/azure-workers/epic-up.sh +0 -0
  323. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/scripts/azure-workers/preflight.sh +0 -0
  324. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/scripts/azure-workers/provision-worker.sh +0 -0
  325. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
  326. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/scripts/azure-workers/tailnet-acl.hujson +0 -0
  327. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/scripts/azure-workers/verify-github-token.sh +0 -0
  328. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/scripts/check_gh_argv_containment.py +0 -0
  329. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/scripts/codegen.py +0 -0
  330. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/scripts/coord-test-runner.sh +0 -0
  331. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/scripts/drive-batch.sh +0 -0
  332. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/scripts/gen_board_fixture.py +0 -0
  333. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/scripts/gen_mock_index.py +0 -0
  334. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/scripts/next_release_tag.py +0 -0
  335. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/scripts/run_tests_in_populated_home.sh +0 -0
  336. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/scripts/run_tests_without_gh.sh +0 -0
  337. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/scripts/smoke_437_interactive.py +0 -0
  338. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/scripts/verify_878_review_capture.py +0 -0
  339. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/scripts/verify_release_published.py +0 -0
  340. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/scripts/verify_release_wheel.py +0 -0
  341. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/setup.cfg +0 -0
  342. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/SMOKE_SET.md +0 -0
  343. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/__init__.py +0 -0
  344. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-33/audit_1039.rs +0 -0
  345. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-33/contract.md +0 -0
  346. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-33/manifest.yml +0 -0
  347. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-33/mocks/audit-panel-detail.screen +0 -0
  348. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-33/mocks/audit-panel-empty.screen +0 -0
  349. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-33/mocks/audit-panel-filters.screen +0 -0
  350. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-33/mocks/audit-panel-populated.screen +0 -0
  351. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-37/conftest.py +0 -0
  352. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-37/contract.md +0 -0
  353. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-37/manifest.yml +0 -0
  354. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
  355. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
  356. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-38/contract.md +0 -0
  357. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-38/manifest.yml +0 -0
  358. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-38/mocks/plans-base.screen +0 -0
  359. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-38/mocks/plans-detail-pane.screen +0 -0
  360. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-38/mocks/plans-help-overlay.screen +0 -0
  361. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-38/mocks/plans-palette.screen +0 -0
  362. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-38/mocks/plans-rightclick-epic.screen +0 -0
  363. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-38/mocks/plans-rightclick-header.screen +0 -0
  364. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-38/mocks/plans-rightclick-stub.screen +0 -0
  365. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-38/plans_detail_1122.rs +0 -0
  366. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-38/plans_help_1124.rs +0 -0
  367. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-38/plans_rightclick_1123.rs +0 -0
  368. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-51/contract.md +0 -0
  369. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
  370. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
  371. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-51/manifest.yml +0 -0
  372. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
  373. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-51/tsconfig.json +0 -0
  374. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-65/board_split_2288.rs +0 -0
  375. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-65/board_tabs_2282.rs +0 -0
  376. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-65/board_tabs_close_2283.rs +0 -0
  377. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-65/contract.md +0 -0
  378. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-65/detail_substate_2285.rs +0 -0
  379. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-65/manifest.yml +0 -0
  380. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-65/mocks/board-baseline-no-tabs.screen +0 -0
  381. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-65/mocks/board-pinned-3-tabs.screen +0 -0
  382. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-65/mocks/board-preview-tab.screen +0 -0
  383. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-65/mocks/board-split-side-by-side.screen +0 -0
  384. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-65/mocks/board-tab-context-menu.screen +0 -0
  385. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-65/mocks/board-tabs-help-overlay.screen +0 -0
  386. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-65/mocks/board-tabs-overflow.screen +0 -0
  387. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-65/mocks/pipeline-tabs-independent.screen +0 -0
  388. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-65/pipeline_tabs_2284.rs +0 -0
  389. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-65/tabs_discoverability_2287.rs +0 -0
  390. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-65/tabs_persistence_2286.rs +0 -0
  391. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-67/approved_items_2532.rs +0 -0
  392. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-67/contract.md +0 -0
  393. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-67/manifest.d/2533.yml +0 -0
  394. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-67/manifest.yml +0 -0
  395. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-67/mocks/approved-items-chat-opened.screen +0 -0
  396. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-67/mocks/approved-items-context-menu.screen +0 -0
  397. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-67/mocks/approved-items-detail.screen +0 -0
  398. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-67/mocks/approved-items-empty.screen +0 -0
  399. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-67/mocks/approved-items-populated.screen +0 -0
  400. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-67/pull_decomposition_2533.rs +0 -0
  401. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
  402. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/conftest.py +0 -0
  403. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/fixtures/board-pipeline-basic.json +0 -0
  404. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
  405. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
  406. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
  407. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/fixtures/opencode_run_sample.jsonl +0 -0
  408. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/fixtures/playwright/all_pass.json +0 -0
  409. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/fixtures/playwright/global_setup_crash.json +0 -0
  410. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/fixtures/playwright/mixed_fail.json +0 -0
  411. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/fixtures/playwright/retry_then_pass.json +0 -0
  412. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
  413. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/fixtures/playwright/skip.json +0 -0
  414. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/fixtures/playwright/truncated.json +0 -0
  415. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
  416. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
  417. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
  418. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
  419. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
  420. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
  421. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
  422. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
  423. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_acceptance.py +0 -0
  424. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_acceptance_drivers.py +0 -0
  425. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_agent.py +0 -0
  426. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_agent_api_error.py +0 -0
  427. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_agent_app.py +0 -0
  428. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_agent_branch_base.py +0 -0
  429. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_agent_branch_capture.py +0 -0
  430. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_agent_config_free_1712.py +0 -0
  431. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_agent_deploy_units_endpoint.py +0 -0
  432. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_agent_dirty_worktree.py +0 -0
  433. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_agent_drive_queue_reconcile_2373.py +0 -0
  434. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_agent_graph_self_heal.py +0 -0
  435. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_agent_health_h3.py +0 -0
  436. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_agent_idle_restart.py +0 -0
  437. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_agent_push_failure.py +0 -0
  438. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_agent_reap.py +0 -0
  439. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_agent_repos_and_pull.py +0 -0
  440. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_agent_restart_services_endpoint.py +0 -0
  441. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_agent_skills_self_heal.py +0 -0
  442. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_agent_startup_diagnostics.py +0 -0
  443. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_agent_update.py +0 -0
  444. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_agent_update_bluegreen.py +0 -0
  445. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_agent_usage_limit.py +0 -0
  446. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_agent_zero_commit.py +0 -0
  447. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_ambient_home_isolation.py +0 -0
  448. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_approve_reject_plan.py +0 -0
  449. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_approve_usage_gate.py +0 -0
  450. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_approved_work_2532.py +0 -0
  451. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_assignment_already_recorded_daemon.py +0 -0
  452. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_audit_log.py +0 -0
  453. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_audit_outcome.py +0 -0
  454. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_audit_query.py +0 -0
  455. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_auto_loop.py +0 -0
  456. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_auto_release_publish_2035.py +0 -0
  457. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_base_checkout_restore.py +0 -0
  458. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_block_log.py +0 -0
  459. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_board_cap_762.py +0 -0
  460. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_board_fixture.py +0 -0
  461. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_board_read_path.py +0 -0
  462. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_board_service.py +0 -0
  463. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_board_state.py +0 -0
  464. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_board_wire.py +0 -0
  465. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_brain.py +0 -0
  466. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_branch_model.py +0 -0
  467. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_bug_intake.py +0 -0
  468. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_build_worker_image_env_update.py +0 -0
  469. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cargo_cache.py +0 -0
  470. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_check_gh_argv_containment.py +0 -0
  471. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_ci_acceptance_gate_1950.py +0 -0
  472. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_ci_fix.py +0 -0
  473. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_ci_gitlab.py +0 -0
  474. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_ci_parity_2091.py +0 -0
  475. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_ci_store.py +0 -0
  476. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_claim.py +0 -0
  477. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_acceptance.py +0 -0
  478. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_assign.py +0 -0
  479. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
  480. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_assign_provider.py +0 -0
  481. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_assign_repo_drift_2219.py +0 -0
  482. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_audit.py +0 -0
  483. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_chat_continue.py +0 -0
  484. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_decide.py +0 -0
  485. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_diagnose_config_provenance.py +0 -0
  486. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_diagnose_forge_availability.py +0 -0
  487. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_diagnose_graph.py +0 -0
  488. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_diagnose_self.py +0 -0
  489. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_doctor.py +0 -0
  490. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_doctor_config_free_1801.py +0 -0
  491. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
  492. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_drive.py +0 -0
  493. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_drive_queue.py +0 -0
  494. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_escalate.py +0 -0
  495. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_fix_headless_review.py +0 -0
  496. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_gate_a.py +0 -0
  497. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_install_drift.py +0 -0
  498. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_install_skills.py +0 -0
  499. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_issue_create_label.py +0 -0
  500. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_issue_reopen.py +0 -0
  501. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_merge.py +0 -0
  502. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_milestone_assign.py +0 -0
  503. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_milestone_capture.py +0 -0
  504. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_milestone_chat_add_child.py +0 -0
  505. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_milestone_dispatch.py +0 -0
  506. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_milestone_gate_b.py +0 -0
  507. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_milestone_gate_c.py +0 -0
  508. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_milestone_order.py +0 -0
  509. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
  510. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_milestone_ship.py +0 -0
  511. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_network.py +0 -0
  512. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_new_issue_chat.py +0 -0
  513. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_plans.py +0 -0
  514. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_portal.py +0 -0
  515. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_pull_artifact.py +0 -0
  516. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_queue.py +0 -0
  517. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_reattach_sessions.py +0 -0
  518. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_refine_board.py +0 -0
  519. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_release_preflight.py +0 -0
  520. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_release_propagate.py +0 -0
  521. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_release_window.py +0 -0
  522. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_repo_2220.py +0 -0
  523. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_scorecard.py +0 -0
  524. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_set_review_findings.py +0 -0
  525. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_status_advisory_terminal.py +0 -0
  526. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_status_merge_queue.py +0 -0
  527. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_status_provider.py +0 -0
  528. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_status_review_finalizing.py +0 -0
  529. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_status_test_failed_tag.py +0 -0
  530. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_status_usage_limit.py +0 -0
  531. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_sync_comments_873.py +0 -0
  532. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_test_plan.py +0 -0
  533. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_track.py +0 -0
  534. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_tui_update.py +0 -0
  535. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cli_wait.py +0 -0
  536. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_client_base_install.py +0 -0
  537. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_comments.py +0 -0
  538. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_completion_summary.py +0 -0
  539. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_config.py +0 -0
  540. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_config_acceptance.py +0 -0
  541. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_config_audit.py +0 -0
  542. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_config_pricing.py +0 -0
  543. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
  544. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_config_usage_gate.py +0 -0
  545. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_confirm_test.py +0 -0
  546. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_conflict_fix.py +0 -0
  547. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_conflict_fix_semantic.py +0 -0
  548. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_coord_test.py +0 -0
  549. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_coord_test_runner_baseline.py +0 -0
  550. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_coord_test_runner_populated_home.py +0 -0
  551. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_coord_test_runner_routing.py +0 -0
  552. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_coord_test_runner_toolchain.py +0 -0
  553. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_coord_web_sse_restart_live.py +0 -0
  554. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_coordinator_machine.py +0 -0
  555. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_cross_platform_imports.py +0 -0
  556. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_dashboard.py +0 -0
  557. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_dashboard_fixture.py +0 -0
  558. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_dashboard_terminal.py +0 -0
  559. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_dashboard_terminal_live.py +0 -0
  560. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_db.py +0 -0
  561. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_dead_end.py +0 -0
  562. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_deploy_coord_db_backup.py +0 -0
  563. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_deploy_coord_web_dist.py +0 -0
  564. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_deploy_coord_web_rollback.py +0 -0
  565. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_deploy_drive_queue_unit.py +0 -0
  566. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_deploy_manifest.py +0 -0
  567. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_deploy_notify_unit.py +0 -0
  568. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_deploy_units_lane.py +0 -0
  569. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_deploy_web_unit.py +0 -0
  570. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_deps.py +0 -0
  571. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_diagnose.py +0 -0
  572. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_dispatch.py +0 -0
  573. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_dispatch_target_validation.py +0 -0
  574. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_dist_name.py +0 -0
  575. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_done_housekeeping.py +0 -0
  576. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_drive.py +0 -0
  577. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_drive_queue.py +0 -0
  578. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_drive_state.py +0 -0
  579. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_drive_tmux.py +0 -0
  580. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_epic_up_capability_detection.py +0 -0
  581. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
  582. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_epic_up_image_provenance.py +0 -0
  583. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_errors.py +0 -0
  584. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_events.py +0 -0
  585. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_failure_class.py +0 -0
  586. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_filelock.py +0 -0
  587. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
  588. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_fix_of_force_override.py +0 -0
  589. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_fleet_config_health.py +0 -0
  590. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_fleet_health_probes.py +0 -0
  591. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_fleet_health_snapshot.py +0 -0
  592. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_forge_availability.py +0 -0
  593. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_freshness.py +0 -0
  594. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_gate_a.py +0 -0
  595. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_gate_b.py +0 -0
  596. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_gate_snapshot_staleness.py +0 -0
  597. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_gates.py +0 -0
  598. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_gather_fleet_tmux_sessions.py +0 -0
  599. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_gen_mock_index.py +0 -0
  600. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_generated_types_fixture.py +0 -0
  601. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_github_ops.py +0 -0
  602. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_goal.py +0 -0
  603. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_graph_health.py +0 -0
  604. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_graph_selfheal_absent_2237.py +0 -0
  605. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_handoff.py +0 -0
  606. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_health_checks.py +0 -0
  607. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_health_cli.py +0 -0
  608. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_health_cli_graph.py +0 -0
  609. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_health_config.py +0 -0
  610. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_health_context.py +0 -0
  611. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_health_coord_web_ci_pin.py +0 -0
  612. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_health_deploy_lane_facts.py +0 -0
  613. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_health_incident_regression.py +0 -0
  614. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_health_pypi.py +0 -0
  615. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_health_registry.py +0 -0
  616. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_health_timer_active.py +0 -0
  617. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_health_toolchain.py +0 -0
  618. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_health_unit_drift.py +0 -0
  619. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_health_unit_enablement.py +0 -0
  620. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_hooks.py +0 -0
  621. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_human_attended_437.py +0 -0
  622. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_init.py +0 -0
  623. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_integration.py +0 -0
  624. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_interactive_briefing_echo.py +0 -0
  625. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_interactive_pane_log_2541.py +0 -0
  626. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_interactive_prefill_state.py +0 -0
  627. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_interactive_session_relaunch.py +0 -0
  628. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_interactive_test_verdict_backstop.py +0 -0
  629. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_interactive_token_attribution.py +0 -0
  630. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_interactive_worktree.py +0 -0
  631. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_issue_store_seam.py +0 -0
  632. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_liveness_auditor.py +0 -0
  633. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_liveness_notify.py +0 -0
  634. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_machine_pause.py +0 -0
  635. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_merge_queue.py +0 -0
  636. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_milestone_chat.py +0 -0
  637. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_milestone_dispatch.py +0 -0
  638. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_milestone_gate.py +0 -0
  639. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_milestone_order.py +0 -0
  640. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_milestone_seam.py +0 -0
  641. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_mock_author.py +0 -0
  642. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_model_tiering.py +0 -0
  643. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_models.py +0 -0
  644. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_models_config_labels.py +0 -0
  645. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_needs_attention.py +0 -0
  646. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_network.py +0 -0
  647. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_new_issue_chat.py +0 -0
  648. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_next_release_tag.py +0 -0
  649. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_node_shim.py +0 -0
  650. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_notifier_baseline.py +0 -0
  651. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_notifier_cli.py +0 -0
  652. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_notifier_collect.py +0 -0
  653. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_notifier_config.py +0 -0
  654. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_notifier_drive_seam.py +0 -0
  655. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_notifier_isolation.py +0 -0
  656. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_notifier_predicate.py +0 -0
  657. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_notifier_quiet_hours.py +0 -0
  658. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_notifier_service.py +0 -0
  659. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_notify.py +0 -0
  660. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_notify_drain.py +0 -0
  661. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_openapi.py +0 -0
  662. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_operational_defaults.py +0 -0
  663. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_overlap_fence.py +0 -0
  664. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_overlap_predict.py +0 -0
  665. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_packaged_deploy_units.py +0 -0
  666. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_parentage.py +0 -0
  667. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_paste_landed.py +0 -0
  668. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_pipeline.py +0 -0
  669. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_plan_followup_approve_plan_command.py +0 -0
  670. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_plan_followup_pr_command.py +0 -0
  671. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_plan_followup_review_command.py +0 -0
  672. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_plan_only.py +0 -0
  673. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_plan_parser.py +0 -0
  674. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_platform_paths.py +0 -0
  675. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_portal_bridge.py +0 -0
  676. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_portal_config.py +0 -0
  677. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_portal_store.py +0 -0
  678. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_portal_sync.py +0 -0
  679. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_pr_body_lint.py +0 -0
  680. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_prereqs.py +0 -0
  681. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_production_db_guard.py +0 -0
  682. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_progress.py +0 -0
  683. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_provider_seam.py +0 -0
  684. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_providers.py +0 -0
  685. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_providers_config_labels.py +0 -0
  686. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_providers_pty.py +0 -0
  687. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_quiet_hours.py +0 -0
  688. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_quiet_hours_store_2146.py +0 -0
  689. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_reap_merged_sessions.py +0 -0
  690. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_reap_stale_interactive_tick.py +0 -0
  691. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_reconcile.py +0 -0
  692. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_reconcile_branch.py +0 -0
  693. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_reconcile_completions.py +0 -0
  694. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_reconcile_merges.py +0 -0
  695. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_reconcile_no_agent_record.py +0 -0
  696. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_reconcile_tick.py +0 -0
  697. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_reconcile_usage_limit_done.py +0 -0
  698. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_refine_chat.py +0 -0
  699. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_release_cordon_2101.py +0 -0
  700. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
  701. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_release_cordon_deadlock_2240.py +0 -0
  702. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_release_cordon_stuck_2490.py +0 -0
  703. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_release_propagate.py +0 -0
  704. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_release_roll_window_handoff.py +0 -0
  705. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_release_unified_1242.py +0 -0
  706. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_release_verify.py +0 -0
  707. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_release_window.py +0 -0
  708. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_remote_auto_prune.py +0 -0
  709. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_remote_interactive_reaper.py +0 -0
  710. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_repo_edit_2220.py +0 -0
  711. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_repo_graph_fleet_2237.py +0 -0
  712. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_repo_onboard_2220.py +0 -0
  713. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_report_result_push.py +0 -0
  714. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_reports.py +0 -0
  715. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_retry.py +0 -0
  716. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_retry_advisory_1606.py +0 -0
  717. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_retry_type_1636.py +0 -0
  718. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_revalidate.py +0 -0
  719. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_review.py +0 -0
  720. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_review_end_review_without_verdict.py +0 -0
  721. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_review_parse_failure_diagnostic.py +0 -0
  722. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_review_reaffirm.py +0 -0
  723. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_review_state.py +0 -0
  724. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_review_verdict_backstop.py +0 -0
  725. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_review_verdict_override_audit.py +0 -0
  726. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_review_verdict_relay.py +0 -0
  727. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_review_zero_commits.py +0 -0
  728. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_scoped_review_wiring.py +0 -0
  729. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_scorecard.py +0 -0
  730. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_self_health.py +0 -0
  731. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_serve.py +0 -0
  732. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_serve_app_board_trim.py +0 -0
  733. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_session.py +0 -0
  734. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_slice_issue_attribution.py +0 -0
  735. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_smoke.py +0 -0
  736. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_smoke_live_checkout_restore.py +0 -0
  737. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_smoke_workflow.py +0 -0
  738. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_spend_ceiling.py +0 -0
  739. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_spend_ceiling_coordinator.py +0 -0
  740. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_split.py +0 -0
  741. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_split_work.py +0 -0
  742. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_stage_projection.py +0 -0
  743. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_stalled_pipeline.py +0 -0
  744. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_state.py +0 -0
  745. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_state_review_findings_daemon.py +0 -0
  746. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_status_fleet_footer.py +0 -0
  747. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_stop_1567.py +0 -0
  748. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_stuck.py +0 -0
  749. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_terminal_command.py +0 -0
  750. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_test_author.py +0 -0
  751. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_test_chat.py +0 -0
  752. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_test_orchestrator.py +0 -0
  753. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_test_report.py +0 -0
  754. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_test_verdict_parsing.py +0 -0
  755. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_test_verdict_transcript_floor.py +0 -0
  756. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_thin_client_board_audit.py +0 -0
  757. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_thin_client_config_load_1080.py +0 -0
  758. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_thin_client_daemon_routing_906.py +0 -0
  759. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_tmux_host.py +0 -0
  760. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_tmux_session.py +0 -0
  761. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_transcript_floor.py +0 -0
  762. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_usage.py +0 -0
  763. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_usage_limits.py +0 -0
  764. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_usage_rollup.py +0 -0
  765. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_venv_live_install_2121.py +0 -0
  766. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_version_single_source.py +0 -0
  767. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_watch.py +0 -0
  768. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
  769. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_worker_events.py +0 -0
  770. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_worker_image_pin_sync.py +0 -0
  771. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_worker_safety.py +0 -0
  772. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_worker_test_scoping.py +0 -0
  773. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_worktree.py +0 -0
  774. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tests/test_worktree_rmtree_chokepoint.py +0 -0
  775. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/Cargo.lock +0 -0
  776. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/Cargo.toml +0 -0
  777. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/cargo-config-local-quadraui.toml.example +0 -0
  778. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/src/app/approved.rs +0 -0
  779. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/src/app/audit.rs +0 -0
  780. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/src/app/chat.rs +0 -0
  781. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/src/app/data.rs +0 -0
  782. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/src/app/dialogs.rs +0 -0
  783. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/src/app/doc_tabs.rs +0 -0
  784. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/src/app/drive.rs +0 -0
  785. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/src/app/drive_queue.rs +0 -0
  786. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/src/app/escalation.rs +0 -0
  787. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/src/app/events.rs +0 -0
  788. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/src/app/fixtures.rs +0 -0
  789. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/src/app/fleet_health.rs +0 -0
  790. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/src/app/fleet_sessions.rs +0 -0
  791. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/src/app/fleet_terminals.rs +0 -0
  792. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/src/app/format.rs +0 -0
  793. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/src/app/milestone_dag.rs +0 -0
  794. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/src/app/mod.rs +0 -0
  795. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/src/app/msv.rs +0 -0
  796. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/src/app/pipeline.rs +0 -0
  797. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/src/app/plans.rs +0 -0
  798. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/src/app/render.rs +0 -0
  799. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/src/app/reports.rs +0 -0
  800. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/src/app/sessions.rs +0 -0
  801. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/src/app/settings_ui.rs +0 -0
  802. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/src/app/sidebar.rs +0 -0
  803. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/src/app/terminal.rs +0 -0
  804. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/src/app/tests.rs +0 -0
  805. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/src/app/types.rs +0 -0
  806. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/src/app/workspace.rs +0 -0
  807. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/src/bin/gtk.rs +0 -0
  808. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/src/commands.rs +0 -0
  809. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/src/lib.rs +0 -0
  810. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/src/main.rs +0 -0
  811. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/src/settings.rs +0 -0
  812. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/tests/acceptance.rs +0 -0
  813. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/tui/tests/cli.rs +0 -0
  814. {code_coordinator-0.5.234 → code_coordinator-0.5.235}/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.234
3
+ Version: 0.5.235
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.234
3
+ Version: 0.5.235
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.234",
2
+ "tag": "0.5.235",
3
3
  "distance": 0,
4
- "node": "g24d0c079b3a206f0037f3385f58eefdf567c593d",
4
+ "node": "g5e1480a48c81b0a8cba96e6b1a3f8efc68470379",
5
5
  "dirty": false,
6
6
  "branch": "HEAD",
7
7
  "node_date": "2026-08-22"
@@ -1110,14 +1110,36 @@ def _pushed_commits_ahead(repo_path: Path, base: str, branch: str) -> int | None
1110
1110
  _ISSUE_REF_RE = re.compile(r"#(\d+)")
1111
1111
 
1112
1112
 
1113
- def _foreign_issue_refs(subject: str, issue_number: int) -> frozenset[int]:
1113
+ def _foreign_issue_refs(
1114
+ subject: str,
1115
+ issue_number: int,
1116
+ extra_allowed: frozenset[int] = frozenset(),
1117
+ ) -> frozenset[int]:
1114
1118
  """Return the set of *foreign* issue numbers referenced in *subject* —
1115
- those that are not *issue_number*. Empty if the subject doesn't reference
1116
- any foreign issue."""
1119
+ those that are neither *issue_number* nor in *extra_allowed*. Empty if
1120
+ the subject doesn't reference any foreign issue.
1121
+
1122
+ *extra_allowed* (#2545): for a ``type="test-author"``/``"mock-author"``
1123
+ merge entry, *issue_number* is the milestone's TRACKING issue (every JIT
1124
+ slice for one milestone shares a single branch/PR — see
1125
+ ``Assignment.for_issue_number``'s docstring), but the slice's own commit
1126
+ correctly and necessarily cites its OWN child issue
1127
+ (``test(ms-4): ... slice #132``). Without this, every such commit was
1128
+ flagged FOREIGN on every single verify, regardless of whether the rebase
1129
+ was actually clean. Callers resolve the slice's own issue number (e.g.
1130
+ via ``coord.models.effective_issue_number``) and pass it here so a
1131
+ reference to *either* the tracking issue or the resolved slice issue
1132
+ counts as home, not foreign. Defaults to empty, preserving the original
1133
+ all-blocking-except-``issue_number`` behaviour for ordinary ``work``
1134
+ assignments.
1135
+ """
1117
1136
  refs = {int(m) for m in _ISSUE_REF_RE.findall(subject)}
1118
- if not refs or issue_number in refs:
1137
+ if not refs:
1119
1138
  return frozenset()
1120
- return frozenset(refs - {issue_number})
1139
+ home = {issue_number} | extra_allowed
1140
+ if refs & home:
1141
+ return frozenset()
1142
+ return frozenset(refs - home)
1121
1143
 
1122
1144
 
1123
1145
  def _resolve_base_ref(wt_path: Path, base: str) -> str | None:
@@ -1218,6 +1240,7 @@ def verify_merge_branch(
1218
1240
  *,
1219
1241
  base: str,
1220
1242
  issue_number: int,
1243
+ extra_allowed_issue_numbers: frozenset[int] = frozenset(),
1221
1244
  closed_issue_numbers: frozenset[int] = frozenset(),
1222
1245
  ) -> MergeVerify:
1223
1246
  """Verify a ``--merge-of`` branch before its terminal ``done`` is recorded.
@@ -1233,10 +1256,17 @@ def verify_merge_branch(
1233
1256
  ``claude``, no PTY — so the gate runs as a fast local-only test fixture.
1234
1257
 
1235
1258
  Args:
1259
+ extra_allowed_issue_numbers: Additional issue numbers, besides
1260
+ *issue_number*, that a commit subject may legitimately reference
1261
+ without being flagged foreign (#2545) — see
1262
+ :func:`_foreign_issue_refs`'s ``extra_allowed`` for why a
1263
+ ``test-author``/``mock-author`` merge entry needs this (its own
1264
+ slice issue, not just the milestone's tracking issue).
1236
1265
  closed_issue_numbers: Issue numbers that are known to be closed/merged
1237
1266
  in the upstream repo. When a commit's subject references *only*
1238
- issues in this set (and not ``issue_number``), it is downgraded
1239
- from a **blocking** foreign finding to an **advisory** one (#1279).
1267
+ issues in this set (and not ``issue_number`` or
1268
+ ``extra_allowed_issue_numbers``), it is downgraded from a
1269
+ **blocking** foreign finding to an **advisory** one (#1279).
1240
1270
  The rationale: a commit referencing a *closed* issue cannot be
1241
1271
  live rebase-pollution — it is almost certainly a worker typo in the
1242
1272
  commit subject. Pass the empty frozenset (default) to preserve the
@@ -1271,7 +1301,9 @@ def verify_merge_branch(
1271
1301
  foreign: list[tuple[str, str]] = []
1272
1302
  advisory_foreign: list[tuple[str, str]] = []
1273
1303
  for sha, subj in added:
1274
- foreign_refs = _foreign_issue_refs(subj, issue_number)
1304
+ foreign_refs = _foreign_issue_refs(
1305
+ subj, issue_number, extra_allowed=extra_allowed_issue_numbers
1306
+ )
1275
1307
  if not foreign_refs:
1276
1308
  continue # not flagged — own work or bare message
1277
1309
  # #1279: downgrade to advisory when ALL referenced foreign issues are
@@ -1312,6 +1344,17 @@ def resolve_closed_issue_numbers(
1312
1344
  Returns an empty frozenset immediately when *repo_github* is falsy or
1313
1345
  *foreign_commits* is empty, so callers can skip the second verify pass
1314
1346
  entirely (``if closed: ...``) without an extra branch.
1347
+
1348
+ Deliberately does **not** accept an ``extra_allowed_issue_numbers``
1349
+ parameter to thread through to :func:`_foreign_issue_refs` (#2545
1350
+ review): *foreign_commits* here is always the ``.foreign`` list a prior,
1351
+ ``extra_allowed``-aware :func:`verify_merge_branch` pass already
1352
+ produced, and ``_foreign_issue_refs`` treats any overlap with the "home"
1353
+ set (``{issue_number} | extra_allowed``) as voiding a commit's foreign
1354
+ status entirely — so no subject surviving into *foreign_commits* can
1355
+ reference an ``extra_allowed`` issue in the first place. If a future
1356
+ caller ever feeds this something other than a prior pass's ``.foreign``,
1357
+ re-check this assumption before relying on it.
1315
1358
  """
1316
1359
  foreign_commits = list(foreign_commits)
1317
1360
  if not repo_github or not foreign_commits:
@@ -3355,6 +3355,26 @@ def _dispatch_merge_of(
3355
3355
  )
3356
3356
  sys.exit(2)
3357
3357
 
3358
+ # #2545: a `type="test-author"`/`"mock-author"` work row's `issue_number`
3359
+ # (== `issue` above) is always the milestone's TRACKING issue, but its
3360
+ # commit correctly cites the slice's OWN child issue — resolved via the
3361
+ # canonical `coord.models.effective_issue_number` helper (built for
3362
+ # exactly this tracking-vs-slice distinction, #1553) rather than reading
3363
+ # `for_issue_number` directly, so this stays in sync with the other
3364
+ # callers of that helper (e.g. `merge_queue._test_author_effective_
3365
+ # issue_number`) instead of drifting as an independent copy. Without
3366
+ # allowing the resolved issue too, the #604 FOREIGN check below flags
3367
+ # every JIT slice's own, correctly-labeled commit on every single verify.
3368
+ # Ordinary `work` assignments have no `for_issue_number`, so this
3369
+ # resolves to `issue` itself — already in the "home" set, a harmless
3370
+ # no-op.
3371
+ from coord.models import effective_issue_number as _mg_effective_issue_number # noqa: PLC0415
3372
+
3373
+ _mg_for_issue = _mg_effective_issue_number(work)
3374
+ _mg_extra_allowed = (
3375
+ frozenset({_mg_for_issue}) if _mg_for_issue and _mg_for_issue != issue else frozenset()
3376
+ )
3377
+
3358
3378
  resolved_model = model if model else cfg.models.default
3359
3379
  assignment_id = _uuid.uuid4().hex[:12]
3360
3380
  if _is_local:
@@ -3607,6 +3627,9 @@ def _dispatch_merge_of(
3607
3627
  # #604: git truth overrides the agent's self-report on the
3608
3628
  # merge path — a botched rebase records `blocked`, not `done`.
3609
3629
  verify_merge=True,
3630
+ # #2545: allow the JIT slice's own child issue, not just the
3631
+ # tracking issue, in the FOREIGN check.
3632
+ extra_allowed_issue_numbers=_mg_extra_allowed,
3610
3633
  branch=work.branch,
3611
3634
  )
3612
3635
  _echo_merge_finalize(finalize_result, merge_target_branch)
@@ -3869,6 +3892,9 @@ def _dispatch_merge_of(
3869
3892
  exit_code=exit_code,
3870
3893
  started_at=started_at,
3871
3894
  verify_merge=True,
3895
+ # #2545: allow the JIT slice's own child issue, not just the
3896
+ # tracking issue, in the FOREIGN check.
3897
+ extra_allowed_issue_numbers=_mg_extra_allowed,
3872
3898
  )
3873
3899
  _echo_merge_finalize(finalize_result, merge_target_branch)
3874
3900
  _mv = finalize_result.merge_verify
@@ -11,7 +11,7 @@ import click
11
11
 
12
12
 
13
13
  from coord.commands._common import _CONFIG_OPTION, _load_config
14
- from coord.models import WORK_LIKE_TYPES
14
+ from coord.models import WORK_LIKE_TYPES, effective_issue_number
15
15
 
16
16
 
17
17
  def _machine_for_assignment(board, assignment_id: str | None) -> str | None:
@@ -726,10 +726,26 @@ def verify_merge(
726
726
  err=True,
727
727
  )
728
728
  sys.exit(2)
729
+ extra_allowed: frozenset[int] = frozenset()
729
730
  else:
730
731
  repo_name = work.repo_name
731
732
  issue_num = int(work.issue_number)
732
733
  branch_display = work.branch or "(unknown)"
734
+ # #2545: a `type="test-author"`/`"mock-author"` merge entry's
735
+ # `issue_number` is always the milestone's TRACKING issue (every JIT
736
+ # slice for one milestone shares a branch/PR), but its commit
737
+ # correctly cites the slice's OWN child issue — resolved via the
738
+ # canonical `effective_issue_number` helper (built for exactly this
739
+ # tracking-vs-slice distinction, #1553) rather than reading
740
+ # `for_issue_number` directly, so this stays in sync with the other
741
+ # callers of that helper (e.g. `merge_queue._test_author_effective_
742
+ # issue_number`) instead of drifting as an independent copy. Ordinary
743
+ # `work` assignments have no `for_issue_number`, so this resolves to
744
+ # `issue_num` itself — already in the "home" set, a harmless no-op.
745
+ _for_issue = effective_issue_number(work)
746
+ extra_allowed = (
747
+ frozenset({_for_issue}) if _for_issue and _for_issue != issue_num else frozenset()
748
+ )
733
749
 
734
750
  repo_cfg = cfg.repo(repo_name)
735
751
  base = (repo_cfg.default_branch if repo_cfg else None) or "main"
@@ -747,14 +763,23 @@ def verify_merge(
747
763
  repo_github = repo_cfg.github if repo_cfg else None
748
764
  wt_path = Path(path_opt).expanduser() if path_opt else Path.cwd()
749
765
 
750
- mv = verify_merge_branch(wt_path, base=base, issue_number=issue_num)
766
+ mv = verify_merge_branch(
767
+ wt_path,
768
+ base=base,
769
+ issue_number=issue_num,
770
+ extra_allowed_issue_numbers=extra_allowed,
771
+ )
751
772
  # #1279: only worth a `gh` round-trip when the cheap git-only pass above
752
773
  # actually found blocking foreign commits — corroborate against GitHub's
753
774
  # closed-issue state and re-verify with the downgrade signal populated.
754
775
  closed = resolve_closed_issue_numbers(repo_github, mv.foreign, issue_num)
755
776
  if closed:
756
777
  mv = verify_merge_branch(
757
- wt_path, base=base, issue_number=issue_num, closed_issue_numbers=closed
778
+ wt_path,
779
+ base=base,
780
+ issue_number=issue_num,
781
+ extra_allowed_issue_numbers=extra_allowed,
782
+ closed_issue_numbers=closed,
758
783
  )
759
784
 
760
785
  click.echo(f"branch: {branch_display}")
@@ -3057,6 +3057,7 @@ def finalize_interactive_exit(
3057
3057
  repo_path: str | None = None,
3058
3058
  artifact_paths: list[str] | None = None,
3059
3059
  verify_merge: bool = False,
3060
+ extra_allowed_issue_numbers: frozenset[int] = frozenset(),
3060
3061
  ssh_target: str | None = None,
3061
3062
  branch: str | None = None,
3062
3063
  smoke_repo_path: str | None = None,
@@ -3116,6 +3117,12 @@ def finalize_interactive_exit(
3116
3117
  session, with no structured block, no transcript floor, and no fallback
3117
3118
  if that command never ran (#1351). ``None`` (every non-smoke caller)
3118
3119
  makes this an unconditional no-op.
3120
+
3121
+ *extra_allowed_issue_numbers* (#2545): forwarded to
3122
+ :func:`coord.agent.verify_merge_branch`'s parameter of the same name —
3123
+ additional issue numbers a merge-prep commit subject may legitimately
3124
+ reference (besides *issue_number*) without tripping the #604 FOREIGN
3125
+ check. Only meaningful when *verify_merge* is set; ignored otherwise.
3119
3126
  """
3120
3127
  _effective_patterns = list(artifact_paths or [])
3121
3128
 
@@ -3197,7 +3204,10 @@ def finalize_interactive_exit(
3197
3204
  )
3198
3205
 
3199
3206
  merge_verify = verify_merge_branch(
3200
- wt_v, base=base_branch, issue_number=issue_number
3207
+ wt_v,
3208
+ base=base_branch,
3209
+ issue_number=issue_number,
3210
+ extra_allowed_issue_numbers=extra_allowed_issue_numbers,
3201
3211
  )
3202
3212
  # #1279: corroborate blocking foreign commits against GitHub's
3203
3213
  # closed-issue state before deciding — a typo'd reference to an
@@ -3210,6 +3220,7 @@ def finalize_interactive_exit(
3210
3220
  wt_v,
3211
3221
  base=base_branch,
3212
3222
  issue_number=issue_number,
3223
+ extra_allowed_issue_numbers=extra_allowed_issue_numbers,
3213
3224
  closed_issue_numbers=closed,
3214
3225
  )
3215
3226
  if not merge_verify.ok:
@@ -3915,6 +3926,7 @@ def _remote_verify_merge_branch(
3915
3926
  base: str,
3916
3927
  issue_number: int,
3917
3928
  timeout: float = 30.0,
3929
+ extra_allowed_issue_numbers: frozenset[int] = frozenset(),
3918
3930
  closed_issue_numbers: frozenset[int] = frozenset(),
3919
3931
  ) -> MergeVerify:
3920
3932
  """Remote (over ssh) analogue of :func:`coord.agent.verify_merge_branch`
@@ -3935,6 +3947,11 @@ def _remote_verify_merge_branch(
3935
3947
  same conservative "unverifiable ⇒ not ok" fallback as the local function.
3936
3948
 
3937
3949
  Args:
3950
+ extra_allowed_issue_numbers: Mirrors the same parameter in
3951
+ :func:`coord.agent.verify_merge_branch` (#2545) — additional
3952
+ issue numbers, besides *issue_number*, that a commit subject may
3953
+ legitimately reference without being flagged foreign (a
3954
+ ``test-author``/``mock-author`` slice's own child issue).
3938
3955
  closed_issue_numbers: Mirrors the same parameter in
3939
3956
  :func:`coord.agent.verify_merge_branch` — issue numbers known to
3940
3957
  be closed/merged. Foreign-subject commits referencing only
@@ -3990,7 +4007,9 @@ def _remote_verify_merge_branch(
3990
4007
  foreign: list[tuple[str, str]] = []
3991
4008
  advisory_foreign: list[tuple[str, str]] = []
3992
4009
  for sha, subj in added:
3993
- foreign_refs = _foreign_issue_refs(subj, issue_number)
4010
+ foreign_refs = _foreign_issue_refs(
4011
+ subj, issue_number, extra_allowed=extra_allowed_issue_numbers
4012
+ )
3994
4013
  if not foreign_refs:
3995
4014
  continue
3996
4015
  if closed_issue_numbers and foreign_refs.issubset(closed_issue_numbers):
@@ -4088,6 +4107,7 @@ def finalize_remote_interactive_exit(
4088
4107
  started_at: float | None = None,
4089
4108
  artifact_paths: list[str] | None = None,
4090
4109
  verify_merge: bool = False,
4110
+ extra_allowed_issue_numbers: frozenset[int] = frozenset(),
4091
4111
  ) -> InteractiveFinalizeResult:
4092
4112
  """Remote (#486d) analog of :func:`finalize_interactive_exit` for a remote
4093
4113
  interactive FIX (and, since #1007, a remote ``--merge-of``).
@@ -4116,6 +4136,12 @@ def finalize_remote_interactive_exit(
4116
4136
  self-report, so a botched remote rebase is never silently accepted as
4117
4137
  ``done``. This check runs FIRST, before the ``_assignment_already_recorded``
4118
4138
  fast path below — do NOT reorder it after that check.
4139
+
4140
+ ``extra_allowed_issue_numbers`` (#2545): mirrors the same parameter on
4141
+ :func:`finalize_interactive_exit` — forwarded to
4142
+ :func:`_remote_verify_merge_branch` so a ``test-author``/``mock-author``
4143
+ slice's own child-issue commit doesn't trip the FOREIGN check just
4144
+ because *issue_number* here is the milestone's tracking issue.
4119
4145
  """
4120
4146
  _effective_patterns = list(artifact_paths or [])
4121
4147
 
@@ -4130,6 +4156,7 @@ def finalize_remote_interactive_exit(
4130
4156
  merge_verify = _remote_verify_merge_branch(
4131
4157
  ssh_target, remote_worktree_sh,
4132
4158
  base=base_branch, issue_number=issue_number,
4159
+ extra_allowed_issue_numbers=extra_allowed_issue_numbers,
4133
4160
  )
4134
4161
  # #1279: same corroboration as the local finalize path — re-verify
4135
4162
  # with the closed-issue downgrade signal only when the first (cheap,
@@ -4141,6 +4168,7 @@ def finalize_remote_interactive_exit(
4141
4168
  merge_verify = _remote_verify_merge_branch(
4142
4169
  ssh_target, remote_worktree_sh,
4143
4170
  base=base_branch, issue_number=issue_number,
4171
+ extra_allowed_issue_numbers=extra_allowed_issue_numbers,
4144
4172
  closed_issue_numbers=closed,
4145
4173
  )
4146
4174
  if not merge_verify.ok:
@@ -1433,10 +1433,28 @@ class TestRemoteFixWorktreeCollision:
1433
1433
  # ── #1007: --merge-of on a REMOTE machine ─────────────────────────────────────
1434
1434
 
1435
1435
 
1436
- def _seed_merge_board(work_id: str, branch: str) -> None:
1437
- """Seed a completed+approved work assignment for `--merge-of` tests."""
1438
- from coord.models import Assignment, Board, Repo
1439
- from coord.state import save_board
1436
+ def _seed_merge_board(
1437
+ work_id: str,
1438
+ branch: str,
1439
+ *,
1440
+ assignment_type: str = "work",
1441
+ for_issue_number: int | None = None,
1442
+ ) -> None:
1443
+ """Seed a completed+approved work assignment for `--merge-of` tests.
1444
+
1445
+ *assignment_type* / *for_issue_number* (#2545): a ``type="test-author"``
1446
+ JIT-slice work row carries its own child issue in ``for_issue_number``,
1447
+ distinct from ``issue_number`` (which stays the milestone's tracking
1448
+ issue) — see ``Assignment.for_issue_number``'s docstring.
1449
+
1450
+ Uses ``record_dispatched_assignment`` (not the whole-board
1451
+ ``save_board``) because ``save_board``'s bulk UPSERT statement doesn't
1452
+ include the ``for_issue_number`` column at all — only the single-row
1453
+ dispatch writer does — so a plain ``Board(...); save_board(...)`` seed
1454
+ would silently drop it and defeat any test that needs it set.
1455
+ """
1456
+ from coord.models import Assignment
1457
+ from coord.state import get_connection, record_dispatched_assignment
1440
1458
 
1441
1459
  work = Assignment(
1442
1460
  machine_name="precision",
@@ -1444,19 +1462,20 @@ def _seed_merge_board(work_id: str, branch: str) -> None:
1444
1462
  issue_number=1,
1445
1463
  issue_title="Fix bug",
1446
1464
  assignment_id=work_id,
1447
- status="done",
1465
+ status="running",
1448
1466
  branch=branch,
1449
- type="work",
1467
+ type=assignment_type,
1468
+ for_issue_number=for_issue_number,
1450
1469
  dispatched_at=0.0,
1451
- finished_at=1.0,
1452
1470
  )
1453
- board = Board(
1454
- repos=[Repo(name="api", github="acme/api", default_branch="main")],
1455
- machines=[],
1456
- active=[],
1457
- completed=[work],
1458
- )
1459
- save_board(board)
1471
+ record_dispatched_assignment(assignment=work, repo_github="acme/api")
1472
+ conn = get_connection()
1473
+ with conn:
1474
+ conn.execute(
1475
+ "UPDATE assignments SET status='done', branch=?, finished_at=1.0 "
1476
+ "WHERE assignment_id=?",
1477
+ (branch, work_id),
1478
+ )
1460
1479
 
1461
1480
 
1462
1481
  class TestRemoteMergeOf:
@@ -1539,6 +1558,47 @@ class TestRemoteMergeOf:
1539
1558
  assert captured_kwargs[0]["verify_merge"] is True
1540
1559
  assert captured_kwargs[0]["ssh_target"] == "precision.tailnet"
1541
1560
  assert captured_kwargs[0]["branch"] == "issue-1-fix-bug"
1561
+ # #2545: an ordinary `type="work"` row has no `for_issue_number` —
1562
+ # nothing extra to allow.
1563
+ assert captured_kwargs[0]["extra_allowed_issue_numbers"] == frozenset()
1564
+
1565
+ def test_remote_merge_of_allows_test_author_slices_own_issue(
1566
+ self, remote_config_file: Path, coord_dir: Path,
1567
+ ) -> None:
1568
+ """#2545: a `type="test-author"` merge entry's `issue_number` is the
1569
+ milestone's TRACKING issue, but its own commit correctly cites the
1570
+ JIT slice's child issue (`for_issue_number`). The remote finalize
1571
+ call must thread that through as `extra_allowed_issue_numbers` so
1572
+ the #604 FOREIGN check doesn't flag every slice's own commit."""
1573
+ _seed_merge_board(
1574
+ "work-mg2-ta", "issue-1-slice-132",
1575
+ assignment_type="test-author", for_issue_number=132,
1576
+ )
1577
+
1578
+ captured_kwargs: list[dict[str, Any]] = []
1579
+
1580
+ def _fake_finalize(**kwargs: Any) -> Any:
1581
+ captured_kwargs.append(kwargs)
1582
+ return _make_finalize_result(push_ok=True)
1583
+
1584
+ with patch("coord.github_ops.get_issue",
1585
+ return_value={"title": "Fix bug", "body": "b"}), \
1586
+ patch("coord.interactive._launch_via_tmux", return_value=0), \
1587
+ patch("coord.interactive.launch_human_attended_interactive") as mock_local, \
1588
+ patch("coord.interactive.tmux_session_alive", return_value=False), \
1589
+ patch("coord.interactive.finalize_remote_interactive_exit",
1590
+ side_effect=_fake_finalize):
1591
+ result = CliRunner().invoke(
1592
+ main,
1593
+ ["assign", "precision", "api", "1",
1594
+ "--config", str(remote_config_file),
1595
+ "--interactive", "--merge-of", "work-mg2-ta"],
1596
+ )
1597
+
1598
+ assert result.exit_code == 0, result.output
1599
+ mock_local.assert_not_called()
1600
+ assert len(captured_kwargs) == 1
1601
+ assert captured_kwargs[0]["extra_allowed_issue_numbers"] == frozenset({132})
1542
1602
 
1543
1603
  def test_local_merge_of_still_uses_local_tty(
1544
1604
  self, config_file: Path, coord_dir: Path,
@@ -1572,6 +1632,45 @@ class TestRemoteMergeOf:
1572
1632
  mock_local.assert_called_once()
1573
1633
  mock_remote.assert_not_called()
1574
1634
 
1635
+ def test_local_merge_of_allows_test_author_slices_own_issue(
1636
+ self, config_file: Path, coord_dir: Path,
1637
+ ) -> None:
1638
+ """#2545 local counterpart: the LOCAL finalize call must also thread
1639
+ the JIT slice's own child issue through as
1640
+ `extra_allowed_issue_numbers`, not just the remote path."""
1641
+ _seed_merge_board(
1642
+ "work-mg3-ta", "issue-1-slice-130",
1643
+ assignment_type="test-author", for_issue_number=130,
1644
+ )
1645
+
1646
+ captured_kwargs: list[dict[str, Any]] = []
1647
+
1648
+ def _fake_finalize(**kwargs: Any) -> Any:
1649
+ captured_kwargs.append(kwargs)
1650
+ return _make_finalize_result(push_ok=True)
1651
+
1652
+ with patch("coord.github_ops.get_issue",
1653
+ return_value={"title": "Fix bug", "body": "b"}), \
1654
+ patch("coord.agent.setup_interactive_worktree",
1655
+ return_value=(Path("/tmp/wt"), "issue-1-slice-130")), \
1656
+ patch("coord.interactive.launch_human_attended_interactive",
1657
+ return_value=0), \
1658
+ patch("coord.interactive._launch_via_tmux"), \
1659
+ patch("coord.interactive.tmux_available", return_value=False), \
1660
+ patch("coord.interactive.tmux_session_alive", return_value=False), \
1661
+ patch("coord.interactive.finalize_interactive_exit",
1662
+ side_effect=_fake_finalize):
1663
+ result = CliRunner().invoke(
1664
+ main,
1665
+ ["assign", _LOCAL_HOST, "api", "1",
1666
+ "--config", str(config_file),
1667
+ "--interactive", "--merge-of", "work-mg3-ta"],
1668
+ )
1669
+
1670
+ assert result.exit_code == 0, result.output
1671
+ assert len(captured_kwargs) == 1
1672
+ assert captured_kwargs[0]["extra_allowed_issue_numbers"] == frozenset({130})
1673
+
1575
1674
 
1576
1675
  # ── #1280: merge-prep prompt — FOREIGN decision procedure ────────────────────
1577
1676