code-coordinator 0.5.148__tar.gz → 0.5.153__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 (870) hide show
  1. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/PKG-INFO +1 -1
  2. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/code_coordinator.egg-info/PKG-INFO +1 -1
  3. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/code_coordinator.egg-info/SOURCES.txt +1 -0
  4. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/code_coordinator.egg-info/scm_file_list.json +1 -0
  5. code_coordinator-0.5.153/code_coordinator.egg-info/scm_version.json +8 -0
  6. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/commands/drive_queue.py +54 -10
  7. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/drive_queue.py +13 -0
  8. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/merge_queue.py +16 -0
  9. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-65/manifest.yml +127 -0
  10. code_coordinator-0.5.153/tests/acceptance/ms-65/pipeline_tabs_2284.rs +778 -0
  11. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_drive_queue.py +59 -0
  12. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_drive_queue.py +110 -0
  13. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/src/app/data.rs +13 -1
  14. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/src/app/dialogs.rs +147 -0
  15. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/src/app/doc_tabs.rs +8 -7
  16. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/src/app/events.rs +103 -2
  17. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/src/app/fixtures.rs +1 -0
  18. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/src/app/format.rs +105 -4
  19. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/src/app/mod.rs +22 -2
  20. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/src/app/pipeline.rs +391 -30
  21. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/src/app/render.rs +110 -6
  22. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/src/app/sidebar.rs +2 -0
  23. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/src/app/tests.rs +615 -38
  24. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/src/app/types.rs +24 -1
  25. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/tests/acceptance.rs +1 -0
  26. code_coordinator-0.5.148/code_coordinator.egg-info/scm_version.json +0 -8
  27. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/.claude/commands/board.md +0 -0
  28. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/.claude/commands/complete-session.md +0 -0
  29. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/.claude/commands/coordinator.md +0 -0
  30. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/.githooks/_lib.sh +0 -0
  31. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/.githooks/post-checkout +0 -0
  32. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/.githooks/post-commit +0 -0
  33. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/.githooks/post-merge +0 -0
  34. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  35. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/.github/coord-ci-acceptance.yml +0 -0
  36. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/.github/workflows/acceptance-web.yml +0 -0
  37. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/.github/workflows/auto-release.yml +0 -0
  38. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/.github/workflows/cargo-test.yml +0 -0
  39. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/.github/workflows/publish.yml +0 -0
  40. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/.github/workflows/release-tui.yml +0 -0
  41. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/.github/workflows/test.yml +0 -0
  42. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/.gitignore +0 -0
  43. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/CLAUDE.md +0 -0
  44. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/GOAL.md +0 -0
  45. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/LICENSE +0 -0
  46. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/MANIFEST.in +0 -0
  47. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/README.md +0 -0
  48. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/code_coordinator.egg-info/dependency_links.txt +0 -0
  49. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/code_coordinator.egg-info/entry_points.txt +0 -0
  50. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/code_coordinator.egg-info/requires.txt +0 -0
  51. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/code_coordinator.egg-info/top_level.txt +0 -0
  52. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/__init__.py +0 -0
  53. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/_board_mapping.py +0 -0
  54. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/acceptance.py +0 -0
  55. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/acceptance_drivers.py +0 -0
  56. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/agent.py +0 -0
  57. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/agent_app.py +0 -0
  58. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/agent_update.py +0 -0
  59. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/agents/opencode/.gitignore +0 -0
  60. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/agents/opencode/agents/work.md +0 -0
  61. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/agents/opencode/routing.jsonc +0 -0
  62. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/audit.py +0 -0
  63. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/auto_loop.py +0 -0
  64. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/block_log.py +0 -0
  65. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/board_bool_guard.py +0 -0
  66. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/board_service.py +0 -0
  67. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/board_wire.py +0 -0
  68. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/brain.py +0 -0
  69. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/branch_model.py +0 -0
  70. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/bug_intake.py +0 -0
  71. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/cargo_cache.py +0 -0
  72. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/ci_github.py +0 -0
  73. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/ci_store.py +0 -0
  74. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/claim.py +0 -0
  75. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/cli.py +0 -0
  76. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/client.py +0 -0
  77. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/commands/__init__.py +0 -0
  78. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/commands/_common.py +0 -0
  79. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/commands/acceptance.py +0 -0
  80. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/commands/agent_ops.py +0 -0
  81. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/commands/audit.py +0 -0
  82. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/commands/chat.py +0 -0
  83. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/commands/dispatch.py +0 -0
  84. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/commands/dispatch_workers.py +0 -0
  85. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/commands/drive.py +0 -0
  86. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/commands/gate_a.py +0 -0
  87. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/commands/gates.py +0 -0
  88. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/commands/issues.py +0 -0
  89. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/commands/lifecycle.py +0 -0
  90. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/commands/merge.py +0 -0
  91. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/commands/milestone.py +0 -0
  92. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/commands/plan_followup.py +0 -0
  93. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/commands/plans.py +0 -0
  94. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/commands/portal.py +0 -0
  95. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/commands/release.py +0 -0
  96. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/commands/repo.py +0 -0
  97. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/commands/report.py +0 -0
  98. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/commands/review.py +0 -0
  99. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/commands/scorecard.py +0 -0
  100. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/commands/sessions.py +0 -0
  101. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/commands/setup.py +0 -0
  102. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/commands/status.py +0 -0
  103. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/commands/terminal.py +0 -0
  104. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/commands/test_gate.py +0 -0
  105. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/commands/tui.py +0 -0
  106. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/comments.py +0 -0
  107. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/config.py +0 -0
  108. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/config_reload.py +0 -0
  109. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/conflict_fix.py +0 -0
  110. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dao.py +0 -0
  111. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/__init__.py +0 -0
  112. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/fixture.py +0 -0
  113. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/index.html +0 -0
  114. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/server.py +0 -0
  115. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/terminal.py +0 -0
  116. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/.gitignore +0 -0
  117. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/components.json +0 -0
  118. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/dist/assets/Gallery-BoKs3mpY.js +0 -0
  119. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/dist/assets/Terminal-9CEnUXvW.css +0 -0
  120. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/dist/assets/Terminal-CEsP08iX.js +0 -0
  121. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/dist/assets/index-CDHPlB6k.js +0 -0
  122. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/dist/assets/index-Dq4kwTdw.css +0 -0
  123. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/dist/assets/workbox-window.prod.es5-BqEJf4Xk.js +0 -0
  124. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/dist/icons/icon-192.png +0 -0
  125. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/dist/icons/icon-512.png +0 -0
  126. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/dist/icons/icon.svg +0 -0
  127. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/dist/index.html +0 -0
  128. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/dist/manifest.webmanifest +0 -0
  129. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/dist/sw.js +0 -0
  130. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/dist/workbox-e4022e15.js +0 -0
  131. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/e2e/available-gates-terminal.spec.ts +0 -0
  132. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/e2e/deep-link.spec.ts +0 -0
  133. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/e2e/fixtureServer.ts +0 -0
  134. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/e2e/live-update-fixture.spec.ts +0 -0
  135. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/e2e/realtime.spec.ts +0 -0
  136. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/e2e/shell.spec.ts +0 -0
  137. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/e2e/smoke.spec.ts +0 -0
  138. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/e2e/terminal.spec.ts +0 -0
  139. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/e2e/theme.spec.ts +0 -0
  140. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/eslint.config.js +0 -0
  141. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/index.html +0 -0
  142. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/node_modules/flatted/python/flatted.py +0 -0
  143. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/package-lock.json +0 -0
  144. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/package.json +0 -0
  145. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/playwright.acceptance.config.ts +0 -0
  146. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/playwright.config.ts +0 -0
  147. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/postcss.config.js +0 -0
  148. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/public/icons/icon-192.png +0 -0
  149. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/public/icons/icon-512.png +0 -0
  150. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/public/icons/icon.svg +0 -0
  151. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/App.tsx +0 -0
  152. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/api/client.ts +0 -0
  153. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/api/generated.ts +0 -0
  154. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/components/ConnectionBadge.tsx +0 -0
  155. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/components/Detail.tsx +0 -0
  156. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/components/Gallery.tsx +0 -0
  157. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/components/Home.tsx +0 -0
  158. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/components/MobileKeyBar.tsx +0 -0
  159. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/components/PanelHeader.tsx +0 -0
  160. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/components/PipelineCard.tsx +0 -0
  161. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/components/SessionCard.tsx +0 -0
  162. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/components/SessionDetail.tsx +0 -0
  163. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/components/SessionsList.tsx +0 -0
  164. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/components/Terminal.tsx +0 -0
  165. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/components/__tests__/ConnectionBadge.test.tsx +0 -0
  166. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/components/__tests__/Detail.test.tsx +0 -0
  167. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/components/__tests__/Gallery.test.tsx +0 -0
  168. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/components/__tests__/Home.test.tsx +0 -0
  169. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/components/__tests__/MobileKeyBar.test.tsx +0 -0
  170. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/components/__tests__/PipelineCard.test.tsx +0 -0
  171. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/components/__tests__/SessionCard.test.tsx +0 -0
  172. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/components/__tests__/Terminal.test.tsx +0 -0
  173. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/components/ui/badge.tsx +0 -0
  174. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/components/ui/button.tsx +0 -0
  175. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/components/ui/card.tsx +0 -0
  176. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/components/ui/dialog.tsx +0 -0
  177. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/components/ui/dropdown-menu.tsx +0 -0
  178. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/components/ui/empty-state.tsx +0 -0
  179. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/components/ui/sheet.tsx +0 -0
  180. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/components/ui/skeleton.tsx +0 -0
  181. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/components/ui/tabs.tsx +0 -0
  182. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/components/ui/theme-provider.tsx +0 -0
  183. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/components/ui/theme-toggle.tsx +0 -0
  184. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/components/ui/toast.tsx +0 -0
  185. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/components/ui/toaster.tsx +0 -0
  186. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/components/ui/tooltip.tsx +0 -0
  187. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/components/ui/use-toast.ts +0 -0
  188. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/index.css +0 -0
  189. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/lib/pipeline.ts +0 -0
  190. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/lib/utils.ts +0 -0
  191. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/main.tsx +0 -0
  192. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/realtime/RealtimeProvider.tsx +0 -0
  193. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/realtime/__tests__/RealtimeProvider.test.tsx +0 -0
  194. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/realtime/__tests__/connection.test.ts +0 -0
  195. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/realtime/connection.ts +0 -0
  196. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/realtime/events.ts +0 -0
  197. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/routes/__tests__/paths.test.ts +0 -0
  198. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/routes/paths.ts +0 -0
  199. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/shell/ActivityRail.tsx +0 -0
  200. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/shell/AppShell.tsx +0 -0
  201. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/shell/ComingSoon.tsx +0 -0
  202. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/shell/EmptyDetail.tsx +0 -0
  203. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/shell/RouteNotFound.tsx +0 -0
  204. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/shell/ShellLayout.tsx +0 -0
  205. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/shell/StatusBar.tsx +0 -0
  206. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/shell/__tests__/ShellLayout.test.tsx +0 -0
  207. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/shell/__tests__/shellState.test.ts +0 -0
  208. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/shell/__tests__/stubViewport.ts +0 -0
  209. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/shell/breakpoints.ts +0 -0
  210. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/shell/railItems.ts +0 -0
  211. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/shell/shellState.ts +0 -0
  212. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/shell/useRegionFocus.ts +0 -0
  213. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/test-setup.ts +0 -0
  214. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/src/vite-env.d.ts +0 -0
  215. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/tailwind.config.js +0 -0
  216. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/tsconfig.json +0 -0
  217. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/tsconfig.node.json +0 -0
  218. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dashboard/webapp/vite.config.ts +0 -0
  219. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/db.py +0 -0
  220. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dead_end.py +0 -0
  221. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/deploy/README.md +0 -0
  222. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/deploy/coord-agent.service +0 -0
  223. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/deploy/coord-db-backup.service +0 -0
  224. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/deploy/coord-db-backup.sh +0 -0
  225. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/deploy/coord-db-backup.timer +0 -0
  226. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/deploy/coord-drive-queue.service +0 -0
  227. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/deploy/coord-drive-queue.timer +0 -0
  228. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/deploy/coord-notify.service +0 -0
  229. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/deploy/coord-notify.timer +0 -0
  230. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/deploy/coord-release-propagate.service +0 -0
  231. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/deploy/coord-release-propagate.timer +0 -0
  232. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/deploy/coord-release-window.service +0 -0
  233. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/deploy/coord-release-window.timer +0 -0
  234. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/deploy/coord-serve.service +0 -0
  235. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/deploy/coord-web-dist-build.service +0 -0
  236. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/deploy/coord-web-dist-build.timer +0 -0
  237. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/deploy/coord-web.service +0 -0
  238. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/deploy_manifest.py +0 -0
  239. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/deploy_units.py +0 -0
  240. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/deps.py +0 -0
  241. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/diagnose.py +0 -0
  242. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dispatch.py +0 -0
  243. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/dist_name.py +0 -0
  244. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/drive.py +0 -0
  245. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/drive_state.py +0 -0
  246. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/events.py +0 -0
  247. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/failure_class.py +0 -0
  248. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/filelock.py +0 -0
  249. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/fleet_config_health.py +0 -0
  250. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/freshness.py +0 -0
  251. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/gate_a.py +0 -0
  252. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/gate_b.py +0 -0
  253. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/gate_snapshot.py +0 -0
  254. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/gates.py +0 -0
  255. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/github_ops.py +0 -0
  256. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/goal.py +0 -0
  257. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/graph_health.py +0 -0
  258. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/health/__init__.py +0 -0
  259. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/health/aggregate.py +0 -0
  260. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/health/checks/__init__.py +0 -0
  261. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/health/checks/agent_install.py +0 -0
  262. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/health/checks/cargo_targets.py +0 -0
  263. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/health/checks/claude_binary.py +0 -0
  264. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/health/checks/deploy_lane_facts.py +0 -0
  265. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/health/checks/disk.py +0 -0
  266. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/health/checks/fleet_board.py +0 -0
  267. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/health/checks/fleet_deploy_lanes.py +0 -0
  268. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/health/checks/fleet_phantom.py +0 -0
  269. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/health/checks/fleet_unit_drift.py +0 -0
  270. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/health/checks/graph.py +0 -0
  271. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/health/checks/graphify_cli.py +0 -0
  272. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/health/checks/index_lock.py +0 -0
  273. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/health/checks/plan_usage.py +0 -0
  274. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/health/checks/repo_state.py +0 -0
  275. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/health/checks/spawned_coord.py +0 -0
  276. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/health/checks/timer_active.py +0 -0
  277. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/health/checks/toolchain.py +0 -0
  278. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/health/checks/unit_drift.py +0 -0
  279. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/health/checks/unit_enablement.py +0 -0
  280. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/health/checks/worktrees.py +0 -0
  281. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/health/cli.py +0 -0
  282. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/health/context.py +0 -0
  283. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/health/fleet_snapshot.py +0 -0
  284. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/health/models.py +0 -0
  285. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/health/pypi.py +0 -0
  286. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/health/registry.py +0 -0
  287. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/health/render.py +0 -0
  288. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/health/units.py +0 -0
  289. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/hooks.py +0 -0
  290. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/housekeeping.py +0 -0
  291. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/interactive.py +0 -0
  292. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/issue_store.py +0 -0
  293. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/liveness_auditor.py +0 -0
  294. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/machine_pause.py +0 -0
  295. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/milestone_chat.py +0 -0
  296. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/milestone_dispatch.py +0 -0
  297. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/milestone_gate.py +0 -0
  298. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/milestone_order.py +0 -0
  299. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/mock_author.py +0 -0
  300. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/models.py +0 -0
  301. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/network.py +0 -0
  302. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/new_issue_chat.py +0 -0
  303. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/notifier/__init__.py +0 -0
  304. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/notifier/baseline.py +0 -0
  305. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/notifier/cli.py +0 -0
  306. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/notifier/collect.py +0 -0
  307. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/notifier/digest.py +0 -0
  308. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/notifier/models.py +0 -0
  309. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/notifier/predicate.py +0 -0
  310. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/notifier/service.py +0 -0
  311. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/notifier/store.py +0 -0
  312. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/notifier/transport.py +0 -0
  313. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/notify.py +0 -0
  314. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/openapi.py +0 -0
  315. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/overlap_fence.py +0 -0
  316. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/overlap_predict.py +0 -0
  317. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/parentage.py +0 -0
  318. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/parentage_github.py +0 -0
  319. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/pipeline.py +0 -0
  320. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/plan_parser.py +0 -0
  321. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/plans.py +0 -0
  322. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/platform_paths.py +0 -0
  323. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/portal_bridge.py +0 -0
  324. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/portal_store.py +0 -0
  325. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/portal_sync.py +0 -0
  326. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/pr_body_lint.py +0 -0
  327. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/prereqs.py +0 -0
  328. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/progress.py +0 -0
  329. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/providers/__init__.py +0 -0
  330. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/providers/base.py +0 -0
  331. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/providers/claude.py +0 -0
  332. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/providers/claude_pty.py +0 -0
  333. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/providers/opencode.py +0 -0
  334. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/queue_diagnose.py +0 -0
  335. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/reconcile.py +0 -0
  336. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/reconcile_tick.py +0 -0
  337. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/refine_chat.py +0 -0
  338. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/release_cordon.py +0 -0
  339. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/release_propagate.py +0 -0
  340. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/release_verify.py +0 -0
  341. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/release_window.py +0 -0
  342. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/repo_edit.py +0 -0
  343. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/repo_onboard.py +0 -0
  344. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/reports.py +0 -0
  345. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/revalidate.py +0 -0
  346. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/review.py +0 -0
  347. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/scorecard.py +0 -0
  348. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/serve_app.py +0 -0
  349. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/skills/portal-followup/SKILL.md +0 -0
  350. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/skills/update-issue/SKILL.md +0 -0
  351. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/smoke.py +0 -0
  352. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/spend_ceiling.py +0 -0
  353. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/split_work.py +0 -0
  354. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/stage_projection.py +0 -0
  355. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/state.py +0 -0
  356. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/test_author.py +0 -0
  357. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/test_chat.py +0 -0
  358. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/test_orchestrator.py +0 -0
  359. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/test_report.py +0 -0
  360. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/tui_release.py +0 -0
  361. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/usage.py +0 -0
  362. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/usage_limits.py +0 -0
  363. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/usage_rollup.py +0 -0
  364. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coord/worker_events.py +0 -0
  365. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/coordinator.example.yml +0 -0
  366. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/deploy/coord-agent.service +0 -0
  367. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/deploy/coord-db-backup.service +0 -0
  368. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/deploy/coord-db-backup.sh +0 -0
  369. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/deploy/coord-db-backup.timer +0 -0
  370. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/deploy/coord-drive-queue.service +0 -0
  371. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/deploy/coord-drive-queue.timer +0 -0
  372. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/deploy/coord-notify.service +0 -0
  373. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/deploy/coord-notify.timer +0 -0
  374. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/deploy/coord-release-propagate.service +0 -0
  375. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/deploy/coord-release-propagate.timer +0 -0
  376. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/deploy/coord-release-window.service +0 -0
  377. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/deploy/coord-release-window.timer +0 -0
  378. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/deploy/coord-serve.service +0 -0
  379. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/deploy/coord-web-dist-build.service +0 -0
  380. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/deploy/coord-web-dist-build.sh +0 -0
  381. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/deploy/coord-web-dist-build.timer +0 -0
  382. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/deploy/coord-web-rollback.sh +0 -0
  383. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/deploy/coord-web.service +0 -0
  384. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/deploy/node-shim.sh +0 -0
  385. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/docs/ADR_COORD_WEB_DIST.md +0 -0
  386. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/docs/AGENT_OPERATIONS.md +0 -0
  387. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/docs/ARCHITECTURE.md +0 -0
  388. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/docs/ARCH_SECURITY_GATES.md +0 -0
  389. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/docs/COCKPIT.md +0 -0
  390. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/docs/CONTROL_CENTER.md +0 -0
  391. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/docs/COST_DISCIPLINE.md +0 -0
  392. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/docs/CROSS_PLATFORM.md +0 -0
  393. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/docs/CUSTOMER_PORTAL.md +0 -0
  394. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/docs/DRIVE_QUEUE.md +0 -0
  395. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/docs/EPHEMERAL_WORKERS.md +0 -0
  396. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/docs/FORGE_MIGRATION.md +0 -0
  397. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/docs/GRAPHIFY_SETUP.md +0 -0
  398. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/docs/ISSUE_GUIDANCE.md +0 -0
  399. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/docs/MAC_MINI.md +0 -0
  400. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
  401. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/docs/NOTIFIER.md +0 -0
  402. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/docs/OPENCODE_VERIFICATION.md +0 -0
  403. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/docs/OPERATING_GOTCHAS.md +0 -0
  404. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/docs/ORACLE_LOOP.md +0 -0
  405. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/docs/PHONE_WEBAPP.md +0 -0
  406. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/docs/PIPELINE_V2.md +0 -0
  407. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/docs/PLATFORM_EVOLUTION.md +0 -0
  408. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/docs/SECOND_BACKEND.md +0 -0
  409. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/docs/STORE_SERVICE.md +0 -0
  410. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/docs/TEST_FIRST_BUG_LANE.md +0 -0
  411. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/docs/WEB_CONTROL_CENTER.md +0 -0
  412. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/docs/WSL_WINDOWS_WORKER.md +0 -0
  413. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/docs/mocks/web/README.md +0 -0
  414. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/docs/mocks/web/_tokens.css +0 -0
  415. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/docs/mocks/web/issue-detail.html +0 -0
  416. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/docs/mocks/web/pipeline-narrow.html +0 -0
  417. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/docs/mocks/web/pipeline-wide.html +0 -0
  418. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/graphify-out/.gitignore +0 -0
  419. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/install-agent.sh +0 -0
  420. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/pyproject.toml +0 -0
  421. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/scripts/audit_review_verdict_overrides.py +0 -0
  422. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/scripts/azure-workers/bootstrap-shared.sh +0 -0
  423. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/scripts/azure-workers/build-worker-image.sh +0 -0
  424. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/scripts/azure-workers/coordinator-machine.py +0 -0
  425. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/scripts/azure-workers/epic-down.sh +0 -0
  426. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/scripts/azure-workers/epic-up.sh +0 -0
  427. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/scripts/azure-workers/preflight.sh +0 -0
  428. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/scripts/azure-workers/provision-worker.sh +0 -0
  429. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
  430. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/scripts/azure-workers/tailnet-acl.hujson +0 -0
  431. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/scripts/azure-workers/verify-github-token.sh +0 -0
  432. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/scripts/codegen.py +0 -0
  433. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/scripts/coord-test-runner.sh +0 -0
  434. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/scripts/drive-batch.sh +0 -0
  435. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/scripts/gen_board_fixture.py +0 -0
  436. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/scripts/next_release_tag.py +0 -0
  437. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/scripts/run_tests_in_populated_home.sh +0 -0
  438. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/scripts/run_tests_without_gh.sh +0 -0
  439. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/scripts/smoke_437_interactive.py +0 -0
  440. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/scripts/verify_878_review_capture.py +0 -0
  441. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/scripts/verify_release_published.py +0 -0
  442. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/scripts/verify_release_wheel.py +0 -0
  443. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/setup.cfg +0 -0
  444. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/SMOKE_SET.md +0 -0
  445. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/__init__.py +0 -0
  446. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-33/audit_1039.rs +0 -0
  447. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-33/contract.md +0 -0
  448. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-33/manifest.yml +0 -0
  449. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-33/mocks/audit-panel-detail.screen +0 -0
  450. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-33/mocks/audit-panel-empty.screen +0 -0
  451. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-33/mocks/audit-panel-filters.screen +0 -0
  452. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-33/mocks/audit-panel-populated.screen +0 -0
  453. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-37/conftest.py +0 -0
  454. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-37/contract.md +0 -0
  455. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-37/manifest.yml +0 -0
  456. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
  457. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
  458. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-38/contract.md +0 -0
  459. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-38/manifest.yml +0 -0
  460. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-38/mocks/plans-base.screen +0 -0
  461. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-38/mocks/plans-detail-pane.screen +0 -0
  462. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-38/mocks/plans-help-overlay.screen +0 -0
  463. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-38/mocks/plans-palette.screen +0 -0
  464. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-38/mocks/plans-rightclick-epic.screen +0 -0
  465. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-38/mocks/plans-rightclick-header.screen +0 -0
  466. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-38/mocks/plans-rightclick-stub.screen +0 -0
  467. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-38/plans_detail_1122.rs +0 -0
  468. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-38/plans_help_1124.rs +0 -0
  469. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-38/plans_rightclick_1123.rs +0 -0
  470. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-51/contract.md +0 -0
  471. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
  472. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
  473. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-51/manifest.yml +0 -0
  474. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
  475. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-51/tsconfig.json +0 -0
  476. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-65/board_tabs_2282.rs +0 -0
  477. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-65/board_tabs_close_2283.rs +0 -0
  478. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-65/contract.md +0 -0
  479. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-65/mocks/board-baseline-no-tabs.screen +0 -0
  480. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-65/mocks/board-pinned-3-tabs.screen +0 -0
  481. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-65/mocks/board-preview-tab.screen +0 -0
  482. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-65/mocks/board-split-side-by-side.screen +0 -0
  483. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-65/mocks/board-tab-context-menu.screen +0 -0
  484. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-65/mocks/board-tabs-help-overlay.screen +0 -0
  485. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-65/mocks/board-tabs-overflow.screen +0 -0
  486. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-65/mocks/pipeline-tabs-independent.screen +0 -0
  487. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
  488. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/conftest.py +0 -0
  489. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/fixtures/board-pipeline-basic.json +0 -0
  490. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
  491. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
  492. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
  493. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/fixtures/opencode_run_sample.jsonl +0 -0
  494. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/fixtures/playwright/all_pass.json +0 -0
  495. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/fixtures/playwright/global_setup_crash.json +0 -0
  496. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/fixtures/playwright/mixed_fail.json +0 -0
  497. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/fixtures/playwright/retry_then_pass.json +0 -0
  498. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
  499. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/fixtures/playwright/skip.json +0 -0
  500. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/fixtures/playwright/truncated.json +0 -0
  501. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
  502. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
  503. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
  504. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
  505. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
  506. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
  507. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
  508. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
  509. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_acceptance.py +0 -0
  510. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_acceptance_drivers.py +0 -0
  511. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_agent.py +0 -0
  512. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_agent_api_error.py +0 -0
  513. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_agent_app.py +0 -0
  514. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_agent_branch_base.py +0 -0
  515. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_agent_branch_capture.py +0 -0
  516. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_agent_config_free_1712.py +0 -0
  517. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_agent_deploy_units_endpoint.py +0 -0
  518. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_agent_dirty_worktree.py +0 -0
  519. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_agent_drive_queue_reconcile_2373.py +0 -0
  520. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_agent_graph_self_heal.py +0 -0
  521. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_agent_health_h3.py +0 -0
  522. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_agent_idle_restart.py +0 -0
  523. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_agent_push_failure.py +0 -0
  524. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_agent_reap.py +0 -0
  525. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_agent_repos_and_pull.py +0 -0
  526. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_agent_restart_services_endpoint.py +0 -0
  527. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_agent_startup_diagnostics.py +0 -0
  528. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_agent_update.py +0 -0
  529. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_agent_update_bluegreen.py +0 -0
  530. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_agent_usage_limit.py +0 -0
  531. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_agent_zero_commit.py +0 -0
  532. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_ambient_home_isolation.py +0 -0
  533. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_approve_reject_plan.py +0 -0
  534. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_approve_usage_gate.py +0 -0
  535. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_assignment_already_recorded_daemon.py +0 -0
  536. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_audit_log.py +0 -0
  537. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_audit_outcome.py +0 -0
  538. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_audit_query.py +0 -0
  539. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_auto_loop.py +0 -0
  540. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_auto_release_publish_2035.py +0 -0
  541. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_base_checkout_restore.py +0 -0
  542. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_block_log.py +0 -0
  543. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_board_cap_762.py +0 -0
  544. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_board_fixture.py +0 -0
  545. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_board_read_path.py +0 -0
  546. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_board_service.py +0 -0
  547. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_board_state.py +0 -0
  548. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_board_wire.py +0 -0
  549. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_brain.py +0 -0
  550. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_branch_model.py +0 -0
  551. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_bug_intake.py +0 -0
  552. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_build_worker_image_env_update.py +0 -0
  553. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cargo_cache.py +0 -0
  554. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_ci_acceptance_gate_1950.py +0 -0
  555. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_ci_parity_2091.py +0 -0
  556. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_ci_store.py +0 -0
  557. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_claim.py +0 -0
  558. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_acceptance.py +0 -0
  559. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_assign.py +0 -0
  560. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
  561. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_assign_interactive_remote.py +0 -0
  562. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_assign_provider.py +0 -0
  563. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_assign_repo_drift_2219.py +0 -0
  564. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_audit.py +0 -0
  565. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_chat_continue.py +0 -0
  566. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_decide.py +0 -0
  567. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_diagnose_config_provenance.py +0 -0
  568. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_diagnose_graph.py +0 -0
  569. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_doctor.py +0 -0
  570. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_doctor_config_free_1801.py +0 -0
  571. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
  572. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_drive.py +0 -0
  573. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_escalate.py +0 -0
  574. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_fix_headless_review.py +0 -0
  575. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_gate_a.py +0 -0
  576. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_install_drift.py +0 -0
  577. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_install_skills.py +0 -0
  578. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_issue_create_label.py +0 -0
  579. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_issue_reopen.py +0 -0
  580. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_merge.py +0 -0
  581. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_milestone_assign.py +0 -0
  582. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_milestone_capture.py +0 -0
  583. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_milestone_chat_add_child.py +0 -0
  584. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_milestone_dispatch.py +0 -0
  585. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_milestone_gate_b.py +0 -0
  586. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_milestone_gate_c.py +0 -0
  587. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_milestone_order.py +0 -0
  588. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
  589. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_milestone_ship.py +0 -0
  590. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_network.py +0 -0
  591. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_new_issue_chat.py +0 -0
  592. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_plans.py +0 -0
  593. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_portal.py +0 -0
  594. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_pull_artifact.py +0 -0
  595. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_queue.py +0 -0
  596. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_reattach_sessions.py +0 -0
  597. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_refine_board.py +0 -0
  598. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_release_preflight.py +0 -0
  599. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_release_propagate.py +0 -0
  600. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_release_window.py +0 -0
  601. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_repo_2220.py +0 -0
  602. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_scorecard.py +0 -0
  603. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_set_review_findings.py +0 -0
  604. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_status_advisory_terminal.py +0 -0
  605. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_status_merge_queue.py +0 -0
  606. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_status_provider.py +0 -0
  607. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_status_review_finalizing.py +0 -0
  608. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_status_test_failed_tag.py +0 -0
  609. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_status_usage_limit.py +0 -0
  610. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_sync_comments_873.py +0 -0
  611. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_test_plan.py +0 -0
  612. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_track.py +0 -0
  613. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_tui_update.py +0 -0
  614. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cli_wait.py +0 -0
  615. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_client_base_install.py +0 -0
  616. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_comments.py +0 -0
  617. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_completion_summary.py +0 -0
  618. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_config.py +0 -0
  619. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_config_acceptance.py +0 -0
  620. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_config_audit.py +0 -0
  621. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_config_pricing.py +0 -0
  622. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
  623. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_config_usage_gate.py +0 -0
  624. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_conflict_fix.py +0 -0
  625. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_conflict_fix_semantic.py +0 -0
  626. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_coord_test.py +0 -0
  627. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_coord_test_runner_baseline.py +0 -0
  628. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_coord_test_runner_populated_home.py +0 -0
  629. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_coord_test_runner_routing.py +0 -0
  630. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_coord_test_runner_toolchain.py +0 -0
  631. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_coord_web_sse_restart_live.py +0 -0
  632. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_coordinator_machine.py +0 -0
  633. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_cross_platform_imports.py +0 -0
  634. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_dashboard.py +0 -0
  635. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_dashboard_fixture.py +0 -0
  636. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_dashboard_terminal.py +0 -0
  637. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_dashboard_terminal_live.py +0 -0
  638. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_db.py +0 -0
  639. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_dead_end.py +0 -0
  640. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_deploy_coord_db_backup.py +0 -0
  641. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_deploy_coord_web_dist.py +0 -0
  642. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_deploy_coord_web_rollback.py +0 -0
  643. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_deploy_drive_queue_unit.py +0 -0
  644. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_deploy_manifest.py +0 -0
  645. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_deploy_units_lane.py +0 -0
  646. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_deploy_web_unit.py +0 -0
  647. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_deps.py +0 -0
  648. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_diagnose.py +0 -0
  649. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_dispatch.py +0 -0
  650. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_dispatch_target_validation.py +0 -0
  651. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_dist_name.py +0 -0
  652. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_done_housekeeping.py +0 -0
  653. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_drive.py +0 -0
  654. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_drive_state.py +0 -0
  655. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_drive_tmux.py +0 -0
  656. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_epic_up_capability_detection.py +0 -0
  657. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
  658. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_epic_up_image_provenance.py +0 -0
  659. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_errors.py +0 -0
  660. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_events.py +0 -0
  661. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_failure_class.py +0 -0
  662. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_filelock.py +0 -0
  663. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
  664. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_fix_of_force_override.py +0 -0
  665. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_fleet_config_health.py +0 -0
  666. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_fleet_health_probes.py +0 -0
  667. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_fleet_health_snapshot.py +0 -0
  668. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_freshness.py +0 -0
  669. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_gate_a.py +0 -0
  670. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_gate_b.py +0 -0
  671. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_gate_snapshot_staleness.py +0 -0
  672. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_gates.py +0 -0
  673. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_gather_fleet_tmux_sessions.py +0 -0
  674. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_generated_types_fixture.py +0 -0
  675. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_github_ops.py +0 -0
  676. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_goal.py +0 -0
  677. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_graph_health.py +0 -0
  678. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_graph_selfheal_absent_2237.py +0 -0
  679. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_handoff.py +0 -0
  680. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_health_checks.py +0 -0
  681. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_health_cli.py +0 -0
  682. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_health_cli_graph.py +0 -0
  683. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_health_config.py +0 -0
  684. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_health_context.py +0 -0
  685. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_health_deploy_lane_facts.py +0 -0
  686. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_health_incident_regression.py +0 -0
  687. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_health_pypi.py +0 -0
  688. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_health_registry.py +0 -0
  689. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_health_timer_active.py +0 -0
  690. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_health_toolchain.py +0 -0
  691. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_health_unit_drift.py +0 -0
  692. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_health_unit_enablement.py +0 -0
  693. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_hooks.py +0 -0
  694. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_human_attended_437.py +0 -0
  695. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_init.py +0 -0
  696. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_integration.py +0 -0
  697. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_interactive_briefing_echo.py +0 -0
  698. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_interactive_prefill_state.py +0 -0
  699. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_interactive_session_relaunch.py +0 -0
  700. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_interactive_test_verdict_backstop.py +0 -0
  701. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_interactive_token_attribution.py +0 -0
  702. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_interactive_worktree.py +0 -0
  703. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_issue_store_seam.py +0 -0
  704. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_liveness_auditor.py +0 -0
  705. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_liveness_notify.py +0 -0
  706. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_machine_pause.py +0 -0
  707. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_merge_queue.py +0 -0
  708. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_merge_verify.py +0 -0
  709. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_milestone_chat.py +0 -0
  710. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_milestone_dispatch.py +0 -0
  711. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_milestone_gate.py +0 -0
  712. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_milestone_order.py +0 -0
  713. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_milestone_seam.py +0 -0
  714. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_mock_author.py +0 -0
  715. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_model_tiering.py +0 -0
  716. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_models.py +0 -0
  717. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_models_config_labels.py +0 -0
  718. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_needs_attention.py +0 -0
  719. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_network.py +0 -0
  720. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_new_issue_chat.py +0 -0
  721. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_next_release_tag.py +0 -0
  722. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_no_direct_gh_calls.py +0 -0
  723. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_node_shim.py +0 -0
  724. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_notifier_baseline.py +0 -0
  725. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_notifier_cli.py +0 -0
  726. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_notifier_collect.py +0 -0
  727. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_notifier_config.py +0 -0
  728. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_notifier_drive_seam.py +0 -0
  729. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_notifier_isolation.py +0 -0
  730. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_notifier_predicate.py +0 -0
  731. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_notifier_quiet_hours.py +0 -0
  732. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_notifier_service.py +0 -0
  733. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_notify.py +0 -0
  734. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_notify_drain.py +0 -0
  735. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_openapi.py +0 -0
  736. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_operational_defaults.py +0 -0
  737. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_overlap_fence.py +0 -0
  738. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_overlap_predict.py +0 -0
  739. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_packaged_deploy_units.py +0 -0
  740. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_parentage.py +0 -0
  741. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_paste_landed.py +0 -0
  742. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_pipeline.py +0 -0
  743. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_plan_followup_approve_plan_command.py +0 -0
  744. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_plan_followup_pr_command.py +0 -0
  745. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_plan_followup_review_command.py +0 -0
  746. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_plan_only.py +0 -0
  747. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_plan_parser.py +0 -0
  748. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_platform_paths.py +0 -0
  749. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_portal_bridge.py +0 -0
  750. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_portal_config.py +0 -0
  751. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_portal_sync.py +0 -0
  752. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_pr_body_lint.py +0 -0
  753. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_prereqs.py +0 -0
  754. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_production_db_guard.py +0 -0
  755. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_progress.py +0 -0
  756. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_provider_seam.py +0 -0
  757. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_providers.py +0 -0
  758. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_providers_config_labels.py +0 -0
  759. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_providers_pty.py +0 -0
  760. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_quiet_hours.py +0 -0
  761. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_quiet_hours_store_2146.py +0 -0
  762. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_reap_merged_sessions.py +0 -0
  763. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_reap_stale_interactive_tick.py +0 -0
  764. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_reconcile.py +0 -0
  765. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_reconcile_branch.py +0 -0
  766. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_reconcile_completions.py +0 -0
  767. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_reconcile_merges.py +0 -0
  768. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_reconcile_no_agent_record.py +0 -0
  769. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_reconcile_tick.py +0 -0
  770. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_reconcile_usage_limit_done.py +0 -0
  771. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_refine_chat.py +0 -0
  772. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_release_cordon_2101.py +0 -0
  773. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
  774. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_release_cordon_deadlock_2240.py +0 -0
  775. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_release_propagate.py +0 -0
  776. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_release_unified_1242.py +0 -0
  777. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_release_verify.py +0 -0
  778. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_release_window.py +0 -0
  779. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_remote_auto_prune.py +0 -0
  780. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_remote_interactive_reaper.py +0 -0
  781. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_repo_edit_2220.py +0 -0
  782. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_repo_graph_fleet_2237.py +0 -0
  783. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_repo_onboard_2220.py +0 -0
  784. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_report_result_push.py +0 -0
  785. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_reports.py +0 -0
  786. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_retry.py +0 -0
  787. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_retry_advisory_1606.py +0 -0
  788. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_retry_type_1636.py +0 -0
  789. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_revalidate.py +0 -0
  790. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_review.py +0 -0
  791. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_review_end_review_without_verdict.py +0 -0
  792. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_review_parse_failure_diagnostic.py +0 -0
  793. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_review_reaffirm.py +0 -0
  794. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_review_state.py +0 -0
  795. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_review_verdict_backstop.py +0 -0
  796. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_review_verdict_override_audit.py +0 -0
  797. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_review_verdict_relay.py +0 -0
  798. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_review_zero_commits.py +0 -0
  799. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_scoped_review_wiring.py +0 -0
  800. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_scorecard.py +0 -0
  801. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_serve.py +0 -0
  802. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_serve_app_board_trim.py +0 -0
  803. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_session.py +0 -0
  804. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_slice_issue_attribution.py +0 -0
  805. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_smoke.py +0 -0
  806. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_smoke_live_checkout_restore.py +0 -0
  807. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_smoke_workflow.py +0 -0
  808. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_spend_ceiling.py +0 -0
  809. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_spend_ceiling_coordinator.py +0 -0
  810. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_split.py +0 -0
  811. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_split_work.py +0 -0
  812. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_stage_projection.py +0 -0
  813. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_stalled_pipeline.py +0 -0
  814. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_state.py +0 -0
  815. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_state_review_findings_daemon.py +0 -0
  816. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_status_fleet_footer.py +0 -0
  817. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_stop_1567.py +0 -0
  818. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_stuck.py +0 -0
  819. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_terminal_command.py +0 -0
  820. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_test_author.py +0 -0
  821. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_test_chat.py +0 -0
  822. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_test_orchestrator.py +0 -0
  823. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_test_report.py +0 -0
  824. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_test_verdict_parsing.py +0 -0
  825. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_test_verdict_transcript_floor.py +0 -0
  826. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_thin_client_board_audit.py +0 -0
  827. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_thin_client_config_load_1080.py +0 -0
  828. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_thin_client_daemon_routing_906.py +0 -0
  829. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_tmux_host.py +0 -0
  830. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_tmux_session.py +0 -0
  831. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_transcript_floor.py +0 -0
  832. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_usage.py +0 -0
  833. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_usage_limits.py +0 -0
  834. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_usage_rollup.py +0 -0
  835. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_venv_live_install_2121.py +0 -0
  836. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_version_single_source.py +0 -0
  837. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_watch.py +0 -0
  838. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
  839. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_worker_events.py +0 -0
  840. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_worker_image_pin_sync.py +0 -0
  841. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_worker_safety.py +0 -0
  842. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_worker_test_scoping.py +0 -0
  843. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_worktree.py +0 -0
  844. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tests/test_worktree_rmtree_chokepoint.py +0 -0
  845. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/Cargo.lock +0 -0
  846. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/Cargo.toml +0 -0
  847. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/cargo-config-local-quadraui.toml.example +0 -0
  848. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/src/app/audit.rs +0 -0
  849. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/src/app/chat.rs +0 -0
  850. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/src/app/drive.rs +0 -0
  851. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/src/app/drive_queue.rs +0 -0
  852. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/src/app/escalation.rs +0 -0
  853. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/src/app/fleet_health.rs +0 -0
  854. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/src/app/fleet_sessions.rs +0 -0
  855. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/src/app/fleet_terminals.rs +0 -0
  856. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/src/app/milestone_dag.rs +0 -0
  857. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/src/app/msv.rs +0 -0
  858. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/src/app/plans.rs +0 -0
  859. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/src/app/reports.rs +0 -0
  860. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/src/app/sessions.rs +0 -0
  861. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/src/app/settings_ui.rs +0 -0
  862. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/src/app/terminal.rs +0 -0
  863. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/src/app/workspace.rs +0 -0
  864. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/src/bin/gtk.rs +0 -0
  865. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/src/commands.rs +0 -0
  866. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/src/lib.rs +0 -0
  867. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/src/main.rs +0 -0
  868. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/src/settings.rs +0 -0
  869. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/tui/tests/cli.rs +0 -0
  870. {code_coordinator-0.5.148 → code_coordinator-0.5.153}/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.148
3
+ Version: 0.5.153
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.148
3
+ Version: 0.5.153
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
@@ -796,6 +796,7 @@ tests/acceptance/ms-65/board_tabs_2282.rs
796
796
  tests/acceptance/ms-65/board_tabs_close_2283.rs
797
797
  tests/acceptance/ms-65/contract.md
798
798
  tests/acceptance/ms-65/manifest.yml
799
+ tests/acceptance/ms-65/pipeline_tabs_2284.rs
799
800
  tests/acceptance/ms-65/mocks/board-baseline-no-tabs.screen
800
801
  tests/acceptance/ms-65/mocks/board-pinned-3-tabs.screen
801
802
  tests/acceptance/ms-65/mocks/board-preview-tab.screen
@@ -445,6 +445,7 @@
445
445
  "tests/acceptance/ms-65/mocks/board-tabs-help-overlay.screen",
446
446
  "tests/acceptance/ms-65/mocks/board-tabs-overflow.screen",
447
447
  "tests/acceptance/ms-65/mocks/pipeline-tabs-independent.screen",
448
+ "tests/acceptance/ms-65/pipeline_tabs_2284.rs",
448
449
  "tests/acceptance/ms-example/mocks/home-active.html",
449
450
  "tests/conftest.py",
450
451
  "tests/fixtures/board-pipeline-basic.json",
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "0.5.153",
3
+ "distance": 0,
4
+ "node": "g2968c6a10a7c3b15da201f4fd9049f641c23b3ee",
5
+ "dirty": false,
6
+ "branch": "HEAD",
7
+ "node_date": "2026-08-19"
8
+ }
@@ -71,6 +71,7 @@ from coord.drive_queue import (
71
71
  find_cycle,
72
72
  fired_holds,
73
73
  is_permanent_block_reason,
74
+ is_unsatisfiable_prereq_reason,
74
75
  parse_after_spec,
75
76
  parse_key,
76
77
  pending_probe_targets,
@@ -562,13 +563,31 @@ _BLOCKED_REMEDY = (
562
563
  "actually fixed, not merely because a pre-req merged"
563
564
  )
564
565
 
565
- # #2230: `blocked`'s MERGE GATE (as opposed to its `after=` graph, which
566
- # `_BLOCKED_REMEDY` above still correctly calls never-re-checked) is no
567
- # longer unconditionally terminal see `coord.drive_queue.
568
- # is_permanent_block_reason`/`_reconcile_blocked`. Shown only for `blocked`
569
- # (never `failed`, which #2230 does not touch at all) so an operator reading
570
- # `list` right after this ships doesn't have to go read the issue to learn
571
- # their remove+add might be about to race an automatic resume.
566
+ # #2362: a `blocked` row (never `failed` the tick's `after=` resume sweep,
567
+ # `coord.drive_queue._reconcile_blocked_after`, is scoped to `blocked` only)
568
+ # whose OWN `last_reason` IS `_resolve_prereqs`'s "queued but blocked/failed
569
+ # it will never satisfy" verdict is auto re-checked every tick, and
570
+ # resumes to `waiting` on its own the moment every named pre-req lands.
571
+ # `_BLOCKED_REMEDY` above is flatly wrong for exactly this row shape (it is
572
+ # in fact re-checked, on its own, without an operator) — this note replaces
573
+ # it there instead of merely appending, mirroring #2230's own concern: an
574
+ # operator told "never re-checked" for a row about to self-resume would
575
+ # either do a needless remove+add or race the automatic one.
576
+ _BLOCKED_AFTER_NOTE = (
577
+ "remedy: {state}'s `after=` graph above IS re-checked automatically "
578
+ "every tick (#2362) — once every named pre-req lands (`facts.landed`), "
579
+ "this row resumes to `waiting` on its own, attempt budget reset; no "
580
+ "operator remove+add needed. See `resumes=` above if it has already "
581
+ "self-resumed and re-blocked for an unrelated reason."
582
+ )
583
+
584
+ # #2230: `blocked`'s MERGE GATE (as opposed to its `after=` graph, handled by
585
+ # `_BLOCKED_AFTER_NOTE`/`_BLOCKED_REMEDY` above) is no longer unconditionally
586
+ # terminal — see `coord.drive_queue.is_permanent_block_reason`/
587
+ # `_reconcile_blocked`. Shown only for `blocked` (never `failed`, which
588
+ # #2230 does not touch at all) so an operator reading `list` right after this
589
+ # ships doesn't have to go read the issue to learn their remove+add might be
590
+ # about to race an automatic resume.
572
591
  _BLOCKED_GATE_NOTE = (
573
592
  "note: a re-evaluable blocked cause (i.e. not a #1844/#2019 permanent "
574
593
  "refusal) IS re-checked against the merge gate automatically (#2230) — "
@@ -693,12 +712,37 @@ def drive_queue_list(repo: str | None, output_json: bool, config_path: Path) ->
693
712
  # #2183 point 4: `blocked`/`failed` is terminal — say so where the
694
713
  # operator is already reading the row, not just in an unrelated
695
714
  # operator's hand-written `--hold-after` note.
696
- click.echo(f" {_BLOCKED_REMEDY.format(state=entry.state)}")
715
+ #
716
+ # #2404: EXCEPT when this row's own `last_reason` is exactly the
717
+ # unsatisfiable-`after=`-pre-req verdict on a `blocked` (not
718
+ # `failed`) entry — that shape auto-resumes on its own every tick
719
+ # (#2362), so the generic "never re-checked on its own" remedy
720
+ # would be actively wrong for it; swap in the note that says so.
721
+ if entry.state == STATE_BLOCKED and is_unsatisfiable_prereq_reason(
722
+ entry.last_reason
723
+ ):
724
+ click.echo(f" {_BLOCKED_AFTER_NOTE.format(state=entry.state)}")
725
+ else:
726
+ click.echo(f" {_BLOCKED_REMEDY.format(state=entry.state)}")
697
727
  # #2230: independent of the `after=` diagnosis above (most `blocked`
698
728
  # rows have no `after=` at all — they blocked on attempts, not a
699
729
  # pre-req), so gated on the row's OWN state and cause, not `diagnosed`.
700
- if entry.state == STATE_BLOCKED and not is_permanent_block_reason(
701
- entry.last_reason
730
+ #
731
+ # #2404 review: EXCLUDE the unsatisfiable-`after=`-pre-req shape
732
+ # `_BLOCKED_AFTER_NOTE` above already covers. #2230's sweep
733
+ # (`_blocked_gate_reading`) returns `None` — "no evidence" — for an
734
+ # entry that never reached the merge queue at all, which is exactly
735
+ # what a purely `after=`-caused block is; showing this note there
736
+ # would stack two auto-recheck notes citing two different issue
737
+ # numbers under one row, one of which has nothing to say about that
738
+ # row's actual cause. `is_permanent_block_reason` rows already skip
739
+ # this note on their own; this adds the sibling exclusion so the two
740
+ # notes stay mutually exclusive, matching what each mechanism can
741
+ # actually promise for a given row.
742
+ if (
743
+ entry.state == STATE_BLOCKED
744
+ and not is_permanent_block_reason(entry.last_reason)
745
+ and not is_unsatisfiable_prereq_reason(entry.last_reason)
702
746
  ):
703
747
  click.echo(f" {_BLOCKED_GATE_NOTE}")
704
748
  for line in _hold_lines(entry):
@@ -1600,6 +1600,19 @@ def _is_unsatisfiable_prereq_reason(text: str | None) -> bool:
1600
1600
  return bool(text) and _UNSATISFIABLE_PREREQ_MARKER in text
1601
1601
 
1602
1602
 
1603
+ def is_unsatisfiable_prereq_reason(text: str | None) -> bool:
1604
+ """Public alias for :func:`_is_unsatisfiable_prereq_reason`.
1605
+
1606
+ `coord drive-queue list`'s rendering (#2404) needs to tell whether a
1607
+ `blocked` row's frozen ``last_reason`` is the exact shape
1608
+ :func:`_reconcile_blocked_after` (#2362) auto-resumes once every named
1609
+ pre-req lands, so it can stop telling the operator the ``after=`` graph
1610
+ "is never re-checked on its own" for a row where that has stopped being
1611
+ true — see ``coord.commands.drive_queue._BLOCKED_AFTER_NOTE``.
1612
+ """
1613
+ return _is_unsatisfiable_prereq_reason(text)
1614
+
1615
+
1603
1616
  def _reconcile_blocked_after(
1604
1617
  entry: QueueEntry,
1605
1618
  board: BoardView,
@@ -3984,6 +3984,17 @@ class PlannedMerge:
3984
3984
  # when no PR is open yet, or `ci_store` has no checks for this PR.
3985
3985
  pr_number: int | None = None
3986
3986
  ci_summary: "CiCheckSummary | None" = None
3987
+ # #2397: mirrors `config.merge.auto_drain` (default False) at plan-build
3988
+ # time — read-only exposure, no gate-logic change. The TUI's per-issue
3989
+ # Merge stage box needs this to tell "nothing retries until a human runs
3990
+ # `coord merge`" (auto_drain off) apart from "an automatic retry tick is
3991
+ # already handling this" (auto_drain on); today it has no way to know
3992
+ # and the box renders identically either way (issue #2397's incident:
3993
+ # `#2284`'s acceptance-authoring slice sat "pending — waiting 2:22" with
3994
+ # no signal that `merge.auto_drain: false` meant nothing was coming on
3995
+ # its own). Same value on every entry in one `plan()` call — it's a
3996
+ # single process-wide config flag, not per-entry state.
3997
+ auto_drain: bool = False
3987
3998
 
3988
3999
 
3989
4000
  def _load_milestones_for_queue(
@@ -4058,6 +4069,10 @@ def plan(
4058
4069
  """
4059
4070
  items = load_queue()
4060
4071
  milestones = _load_milestones_for_queue(items)
4072
+ # #2397: read once, stamped on every entry below — see `PlannedMerge
4073
+ # .auto_drain`'s doc comment for why the TUI needs this alongside
4074
+ # `reason`.
4075
+ auto_drain = bool(getattr(getattr(config, "merge", None), "auto_drain", False))
4061
4076
 
4062
4077
  # ── Group by (repo_github, target_branch) ──────────────────────────────
4063
4078
  group_order: list[tuple[str, str]] = []
@@ -4133,6 +4148,7 @@ def plan(
4133
4148
  enqueued_at=entry.enqueued_at,
4134
4149
  last_attempt=entry.last_attempt,
4135
4150
  milestone=milestones.get((entry.repo_name, entry.issue_number)),
4151
+ auto_drain=auto_drain,
4136
4152
  ))
4137
4153
 
4138
4154
  return result
@@ -86,6 +86,35 @@ tests:
86
86
  # zero-tab state. THIS IS THE GREEN CONTROL — see `expected_red` below.
87
87
  board_tabs_close_2283::zero_tabs_render_no_close_or_overflow_glyphs: 2283
88
88
 
89
+ # ── #2284 (W-3) — Pipeline's own independent tab set (contract §3) ────────
90
+ # Slice: pipeline_tabs_2284.rs · mocks: pipeline-tabs-independent.screen
91
+ # (plus board-pinned-3-tabs.screen — §3b calls the two "the independence
92
+ # pair")
93
+ #
94
+ # §3a — zero Pipeline tabs render no strip on Pipeline. THIS IS THE GREEN
95
+ # CONTROL — see the `expected_red` block below.
96
+ pipeline_tabs_2284::pipeline_with_zero_doc_tabs_renders_no_tab_strip: 2284
97
+ # §3a — Pipeline has no toolbar, so its strip is the FIRST main-panel content
98
+ # row, immediately above the Overview/Issue/Log/Summary/Terminal sub-tab bar
99
+ # (with §3a's own stated contrast: on Board the toolbar precedes the strip)
100
+ pipeline_tabs_2284::pipeline_doc_tab_strip_is_the_first_main_panel_row_with_no_toolbar_above_it: 2284
101
+ # §3b bullet 1 — switching to Pipeline shows Pipeline's (empty) set, not the
102
+ # Board's three tabs, and does not lose them. THIS IS A GREEN RATCHET — see
103
+ # the `expected_red` block below.
104
+ pipeline_tabs_2284::switching_to_pipeline_hides_the_boards_tabs_without_losing_them: 2284
105
+ # §3b + #2284 AC 1 — two Pipeline tabs with three already open on the Board
106
+ # shows EXACTLY two on Pipeline, and no Board document leaks into the strip
107
+ pipeline_tabs_2284::pipeline_opens_its_own_two_tabs_while_the_board_keeps_three: 2284
108
+ # §3b bullet 2 + AC 2 — the milestone's headline round trip: Board →
109
+ # Pipeline → Board restores the same three tabs, same order, same active tab
110
+ pipeline_tabs_2284::board_pipeline_board_round_trip_restores_the_boards_tabs_order_and_active_tab: 2284
111
+ # §3b + AC 3 — each scope owns its own preview slot: a single click in
112
+ # Pipeline leaves the Board's `∘ ` preview tab exactly where it was
113
+ pipeline_tabs_2284::each_scope_owns_its_own_preview_slot: 2284
114
+ # §3b + AC 4 — reveal-on-activate is per scope: activating a Pipeline tab
115
+ # selects its row in the PIPELINE sidebar and leaves the Board's selection
116
+ pipeline_tabs_2284::activating_a_pipeline_tab_reveals_its_row_in_the_pipeline_sidebar_not_the_boards: 2284
117
+
89
118
  # ── expected_red (#2164) ───────────────────────────────────────────────────
90
119
  # Hand-derived from a REAL run of the sealed suite against origin/main at the
91
120
  # time of authoring (`cd tui && cargo test --test acceptance --features
@@ -140,6 +169,34 @@ expected_red:
140
169
  - board_tabs_close_2283::activating_a_scrolled_out_tab_scrolls_it_back_into_view_and_renders_the_right_affordance
141
170
  - board_tabs_close_2283::closing_the_last_tab_restores_the_zero_tab_baseline
142
171
 
172
+ # #2284 — OBSERVED, not intended. Taken from three consecutive real runs of
173
+ # the sealed suite (`cd tui && RUSTC_BOOTSTRAP=1 cargo test --test acceptance
174
+ # --features test-support -- -Z unstable-options --format json`, the driver
175
+ # command in coordinator.yml) at authoring time: of this slice's 7 ids, the
176
+ # same 5 FAILED and the same 2 passed on every run. The 2 that passed are
177
+ # deliberately ABSENT below:
178
+ #
179
+ # * `pipeline_with_zero_doc_tabs_renders_no_tab_strip` — the CONTROL.
180
+ # Green today (no panel paints a strip with nothing open) and must stay
181
+ # green after #2284 lands: an implementation that reserves the Pipeline
182
+ # strip row unconditionally, or that renders the Board's tabs on
183
+ # Pipeline, breaks exactly this test. Listing it would make its
184
+ # inevitable pass a HARD FAILURE.
185
+ # * `switching_to_pipeline_hides_the_boards_tabs_without_losing_them` — a
186
+ # RATCHET. Green today for the degenerate reason that the single global
187
+ # set #2282 shipped renders only on the Board, so nothing leaks onto
188
+ # Pipeline and nothing is lost coming back. Both halves become real
189
+ # constraints the moment the set is keyed by scope: a per-scope map that
190
+ # rebuilds (rather than preserves) the outgoing scope's entry fails the
191
+ # return leg, and a strip that paints the focused scope's tabs on the
192
+ # wrong panel fails the outbound one.
193
+ 2284:
194
+ - pipeline_tabs_2284::pipeline_doc_tab_strip_is_the_first_main_panel_row_with_no_toolbar_above_it
195
+ - pipeline_tabs_2284::pipeline_opens_its_own_two_tabs_while_the_board_keeps_three
196
+ - pipeline_tabs_2284::board_pipeline_board_round_trip_restores_the_boards_tabs_order_and_active_tab
197
+ - pipeline_tabs_2284::each_scope_owns_its_own_preview_slot
198
+ - pipeline_tabs_2284::activating_a_pipeline_tab_reveals_its_row_in_the_pipeline_sidebar_not_the_boards
199
+
143
200
  # ═══════════════════════════════════════════════════════════════════════════
144
201
  # FOR THE COORDINATOR — three findings from authoring this slice. None of them
145
202
  # is a worker's to fix, and none was resolved by editing the contract (a
@@ -255,3 +312,73 @@ expected_red:
255
312
  # (quadraui#593) have also landed (`style_at`/`styled_row`), but §1's ruling
256
313
  # stands: the `∘ ` marker remains the pinned preview signal, and this slice
257
314
  # asserts no styles.
315
+
316
+ # ═══════════════════════════════════════════════════════════════════════════
317
+ # FOR THE COORDINATOR — findings from authoring the #2284 slice (contract §3).
318
+ # Independent of the #2282 / #2283 notes above; again, none is a worker's to
319
+ # fix by editing this suite, and none was resolved by editing the contract.
320
+ # ═══════════════════════════════════════════════════════════════════════════
321
+ #
322
+ # 7. LIVE HARNESS BLOCKER (flaky, machine-dependent, and it will bite #2284's
323
+ # worker on the very first run): **entering the Pipeline panel destroys the
324
+ # seeded fixture in the sealed suite.** Switching panels runs
325
+ # `sync_active_view_from_shell` -> `maybe_kick_pipeline_loader` ->
326
+ # `refresh()` -> `start_data_load()` (`tui/src/app/data.rs:2620`). That
327
+ # function short-circuits to `BoardData::default()` — so
328
+ # `apply_pending_data`'s #620 degraded-tick guard keeps the seeded board —
329
+ # but the short-circuit is gated `#[cfg(test)]` ONLY. `tui/tests/acceptance.rs`
330
+ # is a separate integration-test crate, so the `coord_tui` it links is built
331
+ # WITHOUT `cfg(test)`; the loader therefore reads the real local
332
+ # `~/.coord/coord.db`, and the next dispatched event (`dispatch_handle`
333
+ # drains the receiver before handling anything) wholesale-replaces
334
+ # `self.data`. Measured on this machine: two clicks after landing on
335
+ # Pipeline, the Board sidebar renders the developer's real `api (1)` repo
336
+ # and the Pipeline tree is empty ("Loading tracked issues…").
337
+ #
338
+ # It is a RACE, not a certainty — the load runs on a spawned thread, so
339
+ # whether the fixture survives depends on whether that thread finished
340
+ # before the next event. Across three authoring runs, 3 of the 5 red ids
341
+ # died at the harness precondition and 2 got far enough to fail on the real
342
+ # §3a clause; which is which varied run to run. Every affected assertion
343
+ # says `HARNESS PRECONDITION (NOT a #2284 defect …)` in its panic message so
344
+ # the two failure modes are distinguishable from a JSON report alone.
345
+ #
346
+ # The fix is one line of app code, and this repo has already made it once
347
+ # for the same reason: `resolve_board_service()`
348
+ # (`tui/src/app/data.rs:1950`) is gated
349
+ # `#[cfg(any(test, feature = "test-support"))]` with a comment citing #1039
350
+ # and naming this exact external-crate `cfg(test)` trap.
351
+ # `start_data_load()`'s stub needs the same widening. It is NOT in #2284's
352
+ # "Files" list, so the coordinator should either land it as a prerequisite
353
+ # or explicitly authorise the worker to widen that cfg — without it the five
354
+ # red ids below cannot go green reliably no matter how correct the
355
+ # per-scope tab model is.
356
+ #
357
+ # 8. §3b's "same scroll position as before the switch" is not asserted. The
358
+ # round-trip test opens three tabs in an 82-column strip, where nothing is
359
+ # scrolled, and the contract pins no rendered signal for a *restored* strip
360
+ # scroll offset beyond §4's `‹`/`›` affordances — which are #2283's slice
361
+ # and whose own mock the #2283 author already flagged (finding 4) as
362
+ # contradicting §2b's label width. Inventing an observable for it would
363
+ # have meant inventing a width. Flagged as a `TODO(test-author)` in the
364
+ # slice.
365
+ #
366
+ # 9. §2f's scroll half is likewise not re-asserted for the Pipeline scope.
367
+ # #2284's own AC says "reveals its row in the Pipeline sidebar, not the
368
+ # Board's", and the contract pins the scroll requirement only for the Board
369
+ # (§2f, five issues on a short viewport). This slice asserts the per-scope
370
+ # SELECTION (`▸ #201` inside the Pipeline sidebar's columns 3–37, plus the
371
+ # Board's own `▸ #103` surviving a Pipeline-side activation) and leaves the
372
+ # scroll half to #2282's slice, which owns §2f. Also a `TODO(test-author)`.
373
+ #
374
+ # Also worth knowing, not a contract problem: the Pipeline sidebar nests
375
+ # tracked issues under state -> repo -> milestone nodes whose innermost node is
376
+ # COLLAPSED by default, and renders rows as `#201 Add retry backoffwork`
377
+ # (two spaces, title truncated to the 35-column sidebar, stage badge butted
378
+ # against it) — nothing like the mocks' `#201 Add retry backoff to fetch`. The
379
+ # slice therefore targets Pipeline rows by their `#<N>` tag restricted to the
380
+ # sidebar columns (§0), never by a full row string, and expands that group as a
381
+ # labelled precondition. The fixture also gives #101–#103 an untracked label
382
+ # and #201–#203 the tracked `coord` one: the Board sidebar lists all six (it
383
+ # does not filter by label) while the Pipeline lists only the 200s, which is
384
+ # what makes the mocks' 100s/200s ranges disjoint in a single seeded board.