code-coordinator 0.5.158__tar.gz → 0.5.161__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 (879) hide show
  1. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/PKG-INFO +1 -1
  2. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/code_coordinator.egg-info/PKG-INFO +1 -1
  3. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/code_coordinator.egg-info/SOURCES.txt +1 -0
  4. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/code_coordinator.egg-info/scm_file_list.json +1 -0
  5. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/code_coordinator.egg-info/scm_version.json +2 -2
  6. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/drive.py +65 -7
  7. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-65/manifest.yml +163 -0
  8. code_coordinator-0.5.161/tests/acceptance/ms-65/tabs_discoverability_2287.rs +1040 -0
  9. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_drive.py +56 -22
  10. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/src/app/doc_tabs.rs +158 -0
  11. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/src/app/events.rs +24 -9
  12. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/src/app/mod.rs +142 -2
  13. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/src/app/pipeline.rs +11 -0
  14. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/src/app/tests.rs +184 -0
  15. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/tests/acceptance.rs +1 -0
  16. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/.claude/commands/board.md +0 -0
  17. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/.claude/commands/complete-session.md +0 -0
  18. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/.claude/commands/coordinator.md +0 -0
  19. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/.githooks/_lib.sh +0 -0
  20. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/.githooks/post-checkout +0 -0
  21. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/.githooks/post-commit +0 -0
  22. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/.githooks/post-merge +0 -0
  23. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  24. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/.github/coord-ci-acceptance.yml +0 -0
  25. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/.github/workflows/acceptance-web.yml +0 -0
  26. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/.github/workflows/auto-release.yml +0 -0
  27. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/.github/workflows/cargo-test.yml +0 -0
  28. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/.github/workflows/publish.yml +0 -0
  29. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/.github/workflows/release-tui.yml +0 -0
  30. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/.github/workflows/test.yml +0 -0
  31. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/.gitignore +0 -0
  32. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/CLAUDE.md +0 -0
  33. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/GOAL.md +0 -0
  34. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/LICENSE +0 -0
  35. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/MANIFEST.in +0 -0
  36. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/README.md +0 -0
  37. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/code_coordinator.egg-info/dependency_links.txt +0 -0
  38. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/code_coordinator.egg-info/entry_points.txt +0 -0
  39. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/code_coordinator.egg-info/requires.txt +0 -0
  40. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/code_coordinator.egg-info/top_level.txt +0 -0
  41. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/__init__.py +0 -0
  42. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/_board_mapping.py +0 -0
  43. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/acceptance.py +0 -0
  44. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/acceptance_drivers.py +0 -0
  45. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/agent.py +0 -0
  46. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/agent_app.py +0 -0
  47. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/agent_update.py +0 -0
  48. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/agents/opencode/.gitignore +0 -0
  49. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/agents/opencode/agents/work.md +0 -0
  50. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/agents/opencode/routing.jsonc +0 -0
  51. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/audit.py +0 -0
  52. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/auto_loop.py +0 -0
  53. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/block_log.py +0 -0
  54. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/board_bool_guard.py +0 -0
  55. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/board_service.py +0 -0
  56. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/board_wire.py +0 -0
  57. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/brain.py +0 -0
  58. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/branch_model.py +0 -0
  59. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/bug_intake.py +0 -0
  60. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/cargo_cache.py +0 -0
  61. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/ci_github.py +0 -0
  62. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/ci_store.py +0 -0
  63. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/claim.py +0 -0
  64. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/cli.py +0 -0
  65. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/client.py +0 -0
  66. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/commands/__init__.py +0 -0
  67. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/commands/_common.py +0 -0
  68. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/commands/acceptance.py +0 -0
  69. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/commands/agent_ops.py +0 -0
  70. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/commands/audit.py +0 -0
  71. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/commands/chat.py +0 -0
  72. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/commands/dispatch.py +0 -0
  73. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/commands/dispatch_workers.py +0 -0
  74. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/commands/drive.py +0 -0
  75. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/commands/drive_queue.py +0 -0
  76. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/commands/gate_a.py +0 -0
  77. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/commands/gates.py +0 -0
  78. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/commands/issues.py +0 -0
  79. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/commands/lifecycle.py +0 -0
  80. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/commands/merge.py +0 -0
  81. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/commands/milestone.py +0 -0
  82. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/commands/plan_followup.py +0 -0
  83. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/commands/plans.py +0 -0
  84. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/commands/portal.py +0 -0
  85. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/commands/release.py +0 -0
  86. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/commands/repo.py +0 -0
  87. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/commands/report.py +0 -0
  88. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/commands/review.py +0 -0
  89. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/commands/scorecard.py +0 -0
  90. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/commands/sessions.py +0 -0
  91. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/commands/setup.py +0 -0
  92. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/commands/status.py +0 -0
  93. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/commands/terminal.py +0 -0
  94. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/commands/test_gate.py +0 -0
  95. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/commands/tui.py +0 -0
  96. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/comments.py +0 -0
  97. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/config.py +0 -0
  98. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/config_reload.py +0 -0
  99. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/conflict_fix.py +0 -0
  100. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dao.py +0 -0
  101. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/__init__.py +0 -0
  102. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/fixture.py +0 -0
  103. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/index.html +0 -0
  104. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/server.py +0 -0
  105. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/terminal.py +0 -0
  106. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/.gitignore +0 -0
  107. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/components.json +0 -0
  108. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/dist/assets/Gallery-BoKs3mpY.js +0 -0
  109. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/dist/assets/Terminal-9CEnUXvW.css +0 -0
  110. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/dist/assets/Terminal-CEsP08iX.js +0 -0
  111. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/dist/assets/index-CDHPlB6k.js +0 -0
  112. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/dist/assets/index-Dq4kwTdw.css +0 -0
  113. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/dist/assets/workbox-window.prod.es5-BqEJf4Xk.js +0 -0
  114. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/dist/icons/icon-192.png +0 -0
  115. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/dist/icons/icon-512.png +0 -0
  116. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/dist/icons/icon.svg +0 -0
  117. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/dist/index.html +0 -0
  118. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/dist/manifest.webmanifest +0 -0
  119. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/dist/sw.js +0 -0
  120. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/dist/workbox-e4022e15.js +0 -0
  121. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/e2e/available-gates-terminal.spec.ts +0 -0
  122. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/e2e/deep-link.spec.ts +0 -0
  123. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/e2e/fixtureServer.ts +0 -0
  124. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/e2e/live-update-fixture.spec.ts +0 -0
  125. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/e2e/realtime.spec.ts +0 -0
  126. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/e2e/shell.spec.ts +0 -0
  127. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/e2e/smoke.spec.ts +0 -0
  128. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/e2e/terminal.spec.ts +0 -0
  129. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/e2e/theme.spec.ts +0 -0
  130. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/eslint.config.js +0 -0
  131. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/index.html +0 -0
  132. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/node_modules/flatted/python/flatted.py +0 -0
  133. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/package-lock.json +0 -0
  134. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/package.json +0 -0
  135. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/playwright.acceptance.config.ts +0 -0
  136. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/playwright.config.ts +0 -0
  137. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/postcss.config.js +0 -0
  138. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/public/icons/icon-192.png +0 -0
  139. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/public/icons/icon-512.png +0 -0
  140. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/public/icons/icon.svg +0 -0
  141. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/App.tsx +0 -0
  142. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/api/client.ts +0 -0
  143. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/api/generated.ts +0 -0
  144. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/components/ConnectionBadge.tsx +0 -0
  145. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/components/Detail.tsx +0 -0
  146. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/components/Gallery.tsx +0 -0
  147. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/components/Home.tsx +0 -0
  148. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/components/MobileKeyBar.tsx +0 -0
  149. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/components/PanelHeader.tsx +0 -0
  150. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/components/PipelineCard.tsx +0 -0
  151. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/components/SessionCard.tsx +0 -0
  152. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/components/SessionDetail.tsx +0 -0
  153. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/components/SessionsList.tsx +0 -0
  154. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/components/Terminal.tsx +0 -0
  155. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/components/__tests__/ConnectionBadge.test.tsx +0 -0
  156. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/components/__tests__/Detail.test.tsx +0 -0
  157. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/components/__tests__/Gallery.test.tsx +0 -0
  158. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/components/__tests__/Home.test.tsx +0 -0
  159. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/components/__tests__/MobileKeyBar.test.tsx +0 -0
  160. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/components/__tests__/PipelineCard.test.tsx +0 -0
  161. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/components/__tests__/SessionCard.test.tsx +0 -0
  162. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/components/__tests__/Terminal.test.tsx +0 -0
  163. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/components/ui/badge.tsx +0 -0
  164. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/components/ui/button.tsx +0 -0
  165. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/components/ui/card.tsx +0 -0
  166. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/components/ui/dialog.tsx +0 -0
  167. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/components/ui/dropdown-menu.tsx +0 -0
  168. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/components/ui/empty-state.tsx +0 -0
  169. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/components/ui/sheet.tsx +0 -0
  170. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/components/ui/skeleton.tsx +0 -0
  171. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/components/ui/tabs.tsx +0 -0
  172. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/components/ui/theme-provider.tsx +0 -0
  173. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/components/ui/theme-toggle.tsx +0 -0
  174. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/components/ui/toast.tsx +0 -0
  175. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/components/ui/toaster.tsx +0 -0
  176. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/components/ui/tooltip.tsx +0 -0
  177. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/components/ui/use-toast.ts +0 -0
  178. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/index.css +0 -0
  179. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/lib/pipeline.ts +0 -0
  180. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/lib/utils.ts +0 -0
  181. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/main.tsx +0 -0
  182. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/realtime/RealtimeProvider.tsx +0 -0
  183. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/realtime/__tests__/RealtimeProvider.test.tsx +0 -0
  184. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/realtime/__tests__/connection.test.ts +0 -0
  185. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/realtime/connection.ts +0 -0
  186. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/realtime/events.ts +0 -0
  187. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/routes/__tests__/paths.test.ts +0 -0
  188. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/routes/paths.ts +0 -0
  189. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/shell/ActivityRail.tsx +0 -0
  190. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/shell/AppShell.tsx +0 -0
  191. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/shell/ComingSoon.tsx +0 -0
  192. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/shell/EmptyDetail.tsx +0 -0
  193. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/shell/RouteNotFound.tsx +0 -0
  194. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/shell/ShellLayout.tsx +0 -0
  195. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/shell/StatusBar.tsx +0 -0
  196. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/shell/__tests__/ShellLayout.test.tsx +0 -0
  197. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/shell/__tests__/shellState.test.ts +0 -0
  198. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/shell/__tests__/stubViewport.ts +0 -0
  199. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/shell/breakpoints.ts +0 -0
  200. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/shell/railItems.ts +0 -0
  201. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/shell/shellState.ts +0 -0
  202. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/shell/useRegionFocus.ts +0 -0
  203. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/test-setup.ts +0 -0
  204. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/src/vite-env.d.ts +0 -0
  205. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/tailwind.config.js +0 -0
  206. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/tsconfig.json +0 -0
  207. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/tsconfig.node.json +0 -0
  208. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dashboard/webapp/vite.config.ts +0 -0
  209. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/db.py +0 -0
  210. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dead_end.py +0 -0
  211. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/deploy/README.md +0 -0
  212. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/deploy/coord-agent.service +0 -0
  213. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/deploy/coord-db-backup.service +0 -0
  214. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/deploy/coord-db-backup.sh +0 -0
  215. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/deploy/coord-db-backup.timer +0 -0
  216. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/deploy/coord-drive-queue.service +0 -0
  217. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/deploy/coord-drive-queue.timer +0 -0
  218. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/deploy/coord-notify.service +0 -0
  219. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/deploy/coord-notify.timer +0 -0
  220. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/deploy/coord-release-propagate.service +0 -0
  221. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/deploy/coord-release-propagate.timer +0 -0
  222. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/deploy/coord-release-window.service +0 -0
  223. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/deploy/coord-release-window.timer +0 -0
  224. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/deploy/coord-serve.service +0 -0
  225. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/deploy/coord-web-dist-build.service +0 -0
  226. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/deploy/coord-web-dist-build.timer +0 -0
  227. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/deploy/coord-web.service +0 -0
  228. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/deploy_manifest.py +0 -0
  229. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/deploy_units.py +0 -0
  230. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/deps.py +0 -0
  231. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/diagnose.py +0 -0
  232. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dispatch.py +0 -0
  233. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/dist_name.py +0 -0
  234. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/drive_queue.py +0 -0
  235. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/drive_state.py +0 -0
  236. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/events.py +0 -0
  237. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/failure_class.py +0 -0
  238. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/filelock.py +0 -0
  239. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/fleet_config_health.py +0 -0
  240. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/freshness.py +0 -0
  241. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/gate_a.py +0 -0
  242. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/gate_b.py +0 -0
  243. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/gate_snapshot.py +0 -0
  244. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/gates.py +0 -0
  245. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/github_ops.py +0 -0
  246. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/goal.py +0 -0
  247. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/graph_health.py +0 -0
  248. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/health/__init__.py +0 -0
  249. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/health/aggregate.py +0 -0
  250. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/health/checks/__init__.py +0 -0
  251. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/health/checks/agent_install.py +0 -0
  252. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/health/checks/cargo_targets.py +0 -0
  253. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/health/checks/claude_binary.py +0 -0
  254. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/health/checks/deploy_lane_facts.py +0 -0
  255. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/health/checks/disk.py +0 -0
  256. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/health/checks/fleet_board.py +0 -0
  257. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/health/checks/fleet_deploy_lanes.py +0 -0
  258. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/health/checks/fleet_phantom.py +0 -0
  259. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/health/checks/fleet_unit_drift.py +0 -0
  260. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/health/checks/graph.py +0 -0
  261. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/health/checks/graphify_cli.py +0 -0
  262. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/health/checks/index_lock.py +0 -0
  263. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/health/checks/plan_usage.py +0 -0
  264. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/health/checks/repo_state.py +0 -0
  265. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/health/checks/spawned_coord.py +0 -0
  266. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/health/checks/timer_active.py +0 -0
  267. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/health/checks/toolchain.py +0 -0
  268. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/health/checks/unit_drift.py +0 -0
  269. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/health/checks/unit_enablement.py +0 -0
  270. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/health/checks/worktrees.py +0 -0
  271. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/health/cli.py +0 -0
  272. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/health/context.py +0 -0
  273. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/health/fleet_snapshot.py +0 -0
  274. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/health/models.py +0 -0
  275. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/health/pypi.py +0 -0
  276. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/health/registry.py +0 -0
  277. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/health/render.py +0 -0
  278. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/health/units.py +0 -0
  279. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/hooks.py +0 -0
  280. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/housekeeping.py +0 -0
  281. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/interactive.py +0 -0
  282. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/issue_store.py +0 -0
  283. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/liveness_auditor.py +0 -0
  284. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/machine_pause.py +0 -0
  285. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/merge_queue.py +0 -0
  286. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/milestone_chat.py +0 -0
  287. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/milestone_dispatch.py +0 -0
  288. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/milestone_gate.py +0 -0
  289. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/milestone_order.py +0 -0
  290. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/mock_author.py +0 -0
  291. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/models.py +0 -0
  292. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/network.py +0 -0
  293. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/new_issue_chat.py +0 -0
  294. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/notifier/__init__.py +0 -0
  295. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/notifier/baseline.py +0 -0
  296. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/notifier/cli.py +0 -0
  297. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/notifier/collect.py +0 -0
  298. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/notifier/digest.py +0 -0
  299. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/notifier/models.py +0 -0
  300. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/notifier/predicate.py +0 -0
  301. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/notifier/service.py +0 -0
  302. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/notifier/store.py +0 -0
  303. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/notifier/transport.py +0 -0
  304. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/notify.py +0 -0
  305. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/openapi.py +0 -0
  306. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/overlap_fence.py +0 -0
  307. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/overlap_predict.py +0 -0
  308. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/parentage.py +0 -0
  309. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/parentage_github.py +0 -0
  310. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/pipeline.py +0 -0
  311. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/plan_parser.py +0 -0
  312. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/plans.py +0 -0
  313. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/platform_paths.py +0 -0
  314. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/portal_bridge.py +0 -0
  315. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/portal_store.py +0 -0
  316. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/portal_sync.py +0 -0
  317. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/pr_body_lint.py +0 -0
  318. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/prereqs.py +0 -0
  319. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/progress.py +0 -0
  320. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/providers/__init__.py +0 -0
  321. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/providers/base.py +0 -0
  322. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/providers/claude.py +0 -0
  323. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/providers/claude_pty.py +0 -0
  324. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/providers/opencode.py +0 -0
  325. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/queue_diagnose.py +0 -0
  326. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/reconcile.py +0 -0
  327. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/reconcile_tick.py +0 -0
  328. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/refine_chat.py +0 -0
  329. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/release_cordon.py +0 -0
  330. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/release_propagate.py +0 -0
  331. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/release_verify.py +0 -0
  332. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/release_window.py +0 -0
  333. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/repo_edit.py +0 -0
  334. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/repo_onboard.py +0 -0
  335. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/reports.py +0 -0
  336. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/revalidate.py +0 -0
  337. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/review.py +0 -0
  338. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/scorecard.py +0 -0
  339. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/serve_app.py +0 -0
  340. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/skills/coord-dispatch-verbs/SKILL.md +0 -0
  341. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/skills/drive-queue-preflight/SKILL.md +0 -0
  342. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/skills/fleet-restart-safety/SKILL.md +0 -0
  343. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/skills/merge-stuck-triage/SKILL.md +0 -0
  344. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/skills/pipeline-limbo-triage/SKILL.md +0 -0
  345. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/skills/portal-followup/SKILL.md +0 -0
  346. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/skills/review-verdict-recovery/SKILL.md +0 -0
  347. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/skills/tui-quadraui-workflow/SKILL.md +0 -0
  348. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/skills/update-issue/SKILL.md +0 -0
  349. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/smoke.py +0 -0
  350. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/spend_ceiling.py +0 -0
  351. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/split_work.py +0 -0
  352. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/stage_projection.py +0 -0
  353. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/state.py +0 -0
  354. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/test_author.py +0 -0
  355. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/test_chat.py +0 -0
  356. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/test_orchestrator.py +0 -0
  357. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/test_report.py +0 -0
  358. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/tui_release.py +0 -0
  359. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/usage.py +0 -0
  360. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/usage_limits.py +0 -0
  361. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/usage_rollup.py +0 -0
  362. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coord/worker_events.py +0 -0
  363. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/coordinator.example.yml +0 -0
  364. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/deploy/coord-agent.service +0 -0
  365. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/deploy/coord-db-backup.service +0 -0
  366. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/deploy/coord-db-backup.sh +0 -0
  367. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/deploy/coord-db-backup.timer +0 -0
  368. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/deploy/coord-drive-queue.service +0 -0
  369. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/deploy/coord-drive-queue.timer +0 -0
  370. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/deploy/coord-notify.service +0 -0
  371. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/deploy/coord-notify.timer +0 -0
  372. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/deploy/coord-release-propagate.service +0 -0
  373. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/deploy/coord-release-propagate.timer +0 -0
  374. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/deploy/coord-release-window.service +0 -0
  375. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/deploy/coord-release-window.timer +0 -0
  376. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/deploy/coord-serve.service +0 -0
  377. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/deploy/coord-web-dist-build.service +0 -0
  378. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/deploy/coord-web-dist-build.sh +0 -0
  379. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/deploy/coord-web-dist-build.timer +0 -0
  380. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/deploy/coord-web-rollback.sh +0 -0
  381. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/deploy/coord-web.service +0 -0
  382. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/deploy/node-shim.sh +0 -0
  383. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/docs/ADR_COORD_WEB_DIST.md +0 -0
  384. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/docs/AGENT_OPERATIONS.md +0 -0
  385. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/docs/ARCHITECTURE.md +0 -0
  386. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/docs/ARCH_SECURITY_GATES.md +0 -0
  387. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/docs/COCKPIT.md +0 -0
  388. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/docs/CONTROL_CENTER.md +0 -0
  389. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/docs/COST_DISCIPLINE.md +0 -0
  390. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/docs/CROSS_PLATFORM.md +0 -0
  391. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/docs/CUSTOMER_PORTAL.md +0 -0
  392. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/docs/DRIVE_QUEUE.md +0 -0
  393. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/docs/EPHEMERAL_WORKERS.md +0 -0
  394. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/docs/FORGE_MIGRATION.md +0 -0
  395. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/docs/GRAPHIFY_SETUP.md +0 -0
  396. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/docs/ISSUE_GUIDANCE.md +0 -0
  397. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/docs/MAC_MINI.md +0 -0
  398. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
  399. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/docs/NOTIFIER.md +0 -0
  400. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/docs/OPENCODE_VERIFICATION.md +0 -0
  401. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/docs/OPERATING_GOTCHAS.md +0 -0
  402. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/docs/ORACLE_LOOP.md +0 -0
  403. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/docs/PHONE_WEBAPP.md +0 -0
  404. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/docs/PIPELINE_V2.md +0 -0
  405. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/docs/PLATFORM_EVOLUTION.md +0 -0
  406. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/docs/SECOND_BACKEND.md +0 -0
  407. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/docs/STORE_SERVICE.md +0 -0
  408. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/docs/TEST_FIRST_BUG_LANE.md +0 -0
  409. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/docs/WEB_CONTROL_CENTER.md +0 -0
  410. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/docs/WSL_WINDOWS_WORKER.md +0 -0
  411. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/docs/mocks/web/README.md +0 -0
  412. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/docs/mocks/web/_tokens.css +0 -0
  413. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/docs/mocks/web/issue-detail.html +0 -0
  414. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/docs/mocks/web/pipeline-narrow.html +0 -0
  415. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/docs/mocks/web/pipeline-wide.html +0 -0
  416. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/graphify-out/.gitignore +0 -0
  417. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/install-agent.sh +0 -0
  418. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/pyproject.toml +0 -0
  419. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/scripts/audit_review_verdict_overrides.py +0 -0
  420. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/scripts/azure-workers/bootstrap-shared.sh +0 -0
  421. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/scripts/azure-workers/build-worker-image.sh +0 -0
  422. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/scripts/azure-workers/coordinator-machine.py +0 -0
  423. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/scripts/azure-workers/epic-down.sh +0 -0
  424. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/scripts/azure-workers/epic-up.sh +0 -0
  425. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/scripts/azure-workers/preflight.sh +0 -0
  426. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/scripts/azure-workers/provision-worker.sh +0 -0
  427. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
  428. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/scripts/azure-workers/tailnet-acl.hujson +0 -0
  429. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/scripts/azure-workers/verify-github-token.sh +0 -0
  430. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/scripts/codegen.py +0 -0
  431. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/scripts/coord-test-runner.sh +0 -0
  432. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/scripts/drive-batch.sh +0 -0
  433. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/scripts/gen_board_fixture.py +0 -0
  434. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/scripts/next_release_tag.py +0 -0
  435. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/scripts/run_tests_in_populated_home.sh +0 -0
  436. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/scripts/run_tests_without_gh.sh +0 -0
  437. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/scripts/smoke_437_interactive.py +0 -0
  438. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/scripts/verify_878_review_capture.py +0 -0
  439. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/scripts/verify_release_published.py +0 -0
  440. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/scripts/verify_release_wheel.py +0 -0
  441. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/setup.cfg +0 -0
  442. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/SMOKE_SET.md +0 -0
  443. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/__init__.py +0 -0
  444. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-33/audit_1039.rs +0 -0
  445. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-33/contract.md +0 -0
  446. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-33/manifest.yml +0 -0
  447. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-33/mocks/audit-panel-detail.screen +0 -0
  448. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-33/mocks/audit-panel-empty.screen +0 -0
  449. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-33/mocks/audit-panel-filters.screen +0 -0
  450. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-33/mocks/audit-panel-populated.screen +0 -0
  451. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-37/conftest.py +0 -0
  452. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-37/contract.md +0 -0
  453. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-37/manifest.yml +0 -0
  454. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
  455. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
  456. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-38/contract.md +0 -0
  457. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-38/manifest.yml +0 -0
  458. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-38/mocks/plans-base.screen +0 -0
  459. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-38/mocks/plans-detail-pane.screen +0 -0
  460. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-38/mocks/plans-help-overlay.screen +0 -0
  461. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-38/mocks/plans-palette.screen +0 -0
  462. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-38/mocks/plans-rightclick-epic.screen +0 -0
  463. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-38/mocks/plans-rightclick-header.screen +0 -0
  464. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-38/mocks/plans-rightclick-stub.screen +0 -0
  465. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-38/plans_detail_1122.rs +0 -0
  466. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-38/plans_help_1124.rs +0 -0
  467. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-38/plans_rightclick_1123.rs +0 -0
  468. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-51/contract.md +0 -0
  469. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
  470. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
  471. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-51/manifest.yml +0 -0
  472. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
  473. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-51/tsconfig.json +0 -0
  474. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-65/board_tabs_2282.rs +0 -0
  475. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-65/board_tabs_close_2283.rs +0 -0
  476. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-65/contract.md +0 -0
  477. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-65/detail_substate_2285.rs +0 -0
  478. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-65/mocks/board-baseline-no-tabs.screen +0 -0
  479. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-65/mocks/board-pinned-3-tabs.screen +0 -0
  480. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-65/mocks/board-preview-tab.screen +0 -0
  481. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-65/mocks/board-split-side-by-side.screen +0 -0
  482. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-65/mocks/board-tab-context-menu.screen +0 -0
  483. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-65/mocks/board-tabs-help-overlay.screen +0 -0
  484. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-65/mocks/board-tabs-overflow.screen +0 -0
  485. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-65/mocks/pipeline-tabs-independent.screen +0 -0
  486. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-65/pipeline_tabs_2284.rs +0 -0
  487. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
  488. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/conftest.py +0 -0
  489. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/fixtures/board-pipeline-basic.json +0 -0
  490. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
  491. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
  492. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
  493. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/fixtures/opencode_run_sample.jsonl +0 -0
  494. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/fixtures/playwright/all_pass.json +0 -0
  495. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/fixtures/playwright/global_setup_crash.json +0 -0
  496. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/fixtures/playwright/mixed_fail.json +0 -0
  497. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/fixtures/playwright/retry_then_pass.json +0 -0
  498. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
  499. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/fixtures/playwright/skip.json +0 -0
  500. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/fixtures/playwright/truncated.json +0 -0
  501. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
  502. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
  503. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
  504. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
  505. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
  506. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
  507. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
  508. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
  509. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_acceptance.py +0 -0
  510. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_acceptance_drivers.py +0 -0
  511. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_agent.py +0 -0
  512. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_agent_api_error.py +0 -0
  513. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_agent_app.py +0 -0
  514. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_agent_branch_base.py +0 -0
  515. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_agent_branch_capture.py +0 -0
  516. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_agent_config_free_1712.py +0 -0
  517. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_agent_deploy_units_endpoint.py +0 -0
  518. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_agent_dirty_worktree.py +0 -0
  519. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_agent_drive_queue_reconcile_2373.py +0 -0
  520. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_agent_graph_self_heal.py +0 -0
  521. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_agent_health_h3.py +0 -0
  522. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_agent_idle_restart.py +0 -0
  523. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_agent_push_failure.py +0 -0
  524. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_agent_reap.py +0 -0
  525. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_agent_repos_and_pull.py +0 -0
  526. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_agent_restart_services_endpoint.py +0 -0
  527. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_agent_skills_self_heal.py +0 -0
  528. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_agent_startup_diagnostics.py +0 -0
  529. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_agent_update.py +0 -0
  530. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_agent_update_bluegreen.py +0 -0
  531. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_agent_usage_limit.py +0 -0
  532. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_agent_zero_commit.py +0 -0
  533. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_ambient_home_isolation.py +0 -0
  534. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_approve_reject_plan.py +0 -0
  535. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_approve_usage_gate.py +0 -0
  536. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_assignment_already_recorded_daemon.py +0 -0
  537. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_audit_log.py +0 -0
  538. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_audit_outcome.py +0 -0
  539. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_audit_query.py +0 -0
  540. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_auto_loop.py +0 -0
  541. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_auto_release_publish_2035.py +0 -0
  542. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_base_checkout_restore.py +0 -0
  543. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_block_log.py +0 -0
  544. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_board_cap_762.py +0 -0
  545. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_board_fixture.py +0 -0
  546. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_board_read_path.py +0 -0
  547. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_board_service.py +0 -0
  548. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_board_state.py +0 -0
  549. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_board_wire.py +0 -0
  550. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_brain.py +0 -0
  551. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_branch_model.py +0 -0
  552. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_bug_intake.py +0 -0
  553. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_build_worker_image_env_update.py +0 -0
  554. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cargo_cache.py +0 -0
  555. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_ci_acceptance_gate_1950.py +0 -0
  556. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_ci_parity_2091.py +0 -0
  557. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_ci_store.py +0 -0
  558. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_claim.py +0 -0
  559. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_acceptance.py +0 -0
  560. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_assign.py +0 -0
  561. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
  562. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_assign_interactive_remote.py +0 -0
  563. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_assign_provider.py +0 -0
  564. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_assign_repo_drift_2219.py +0 -0
  565. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_audit.py +0 -0
  566. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_chat_continue.py +0 -0
  567. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_decide.py +0 -0
  568. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_diagnose_config_provenance.py +0 -0
  569. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_diagnose_graph.py +0 -0
  570. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_doctor.py +0 -0
  571. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_doctor_config_free_1801.py +0 -0
  572. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
  573. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_drive.py +0 -0
  574. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_drive_queue.py +0 -0
  575. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_escalate.py +0 -0
  576. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_fix_headless_review.py +0 -0
  577. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_gate_a.py +0 -0
  578. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_install_drift.py +0 -0
  579. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_install_skills.py +0 -0
  580. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_issue_create_label.py +0 -0
  581. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_issue_reopen.py +0 -0
  582. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_merge.py +0 -0
  583. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_milestone_assign.py +0 -0
  584. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_milestone_capture.py +0 -0
  585. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_milestone_chat_add_child.py +0 -0
  586. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_milestone_dispatch.py +0 -0
  587. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_milestone_gate_b.py +0 -0
  588. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_milestone_gate_c.py +0 -0
  589. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_milestone_order.py +0 -0
  590. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
  591. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_milestone_ship.py +0 -0
  592. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_network.py +0 -0
  593. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_new_issue_chat.py +0 -0
  594. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_plans.py +0 -0
  595. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_portal.py +0 -0
  596. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_pull_artifact.py +0 -0
  597. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_queue.py +0 -0
  598. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_reattach_sessions.py +0 -0
  599. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_refine_board.py +0 -0
  600. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_release_preflight.py +0 -0
  601. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_release_propagate.py +0 -0
  602. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_release_window.py +0 -0
  603. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_repo_2220.py +0 -0
  604. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_scorecard.py +0 -0
  605. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_set_review_findings.py +0 -0
  606. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_status_advisory_terminal.py +0 -0
  607. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_status_merge_queue.py +0 -0
  608. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_status_provider.py +0 -0
  609. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_status_review_finalizing.py +0 -0
  610. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_status_test_failed_tag.py +0 -0
  611. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_status_usage_limit.py +0 -0
  612. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_sync_comments_873.py +0 -0
  613. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_test_plan.py +0 -0
  614. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_track.py +0 -0
  615. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_tui_update.py +0 -0
  616. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cli_wait.py +0 -0
  617. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_client_base_install.py +0 -0
  618. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_comments.py +0 -0
  619. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_completion_summary.py +0 -0
  620. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_config.py +0 -0
  621. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_config_acceptance.py +0 -0
  622. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_config_audit.py +0 -0
  623. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_config_pricing.py +0 -0
  624. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
  625. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_config_usage_gate.py +0 -0
  626. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_conflict_fix.py +0 -0
  627. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_conflict_fix_semantic.py +0 -0
  628. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_coord_test.py +0 -0
  629. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_coord_test_runner_baseline.py +0 -0
  630. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_coord_test_runner_populated_home.py +0 -0
  631. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_coord_test_runner_routing.py +0 -0
  632. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_coord_test_runner_toolchain.py +0 -0
  633. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_coord_web_sse_restart_live.py +0 -0
  634. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_coordinator_machine.py +0 -0
  635. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_cross_platform_imports.py +0 -0
  636. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_dashboard.py +0 -0
  637. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_dashboard_fixture.py +0 -0
  638. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_dashboard_terminal.py +0 -0
  639. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_dashboard_terminal_live.py +0 -0
  640. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_db.py +0 -0
  641. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_dead_end.py +0 -0
  642. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_deploy_coord_db_backup.py +0 -0
  643. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_deploy_coord_web_dist.py +0 -0
  644. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_deploy_coord_web_rollback.py +0 -0
  645. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_deploy_drive_queue_unit.py +0 -0
  646. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_deploy_manifest.py +0 -0
  647. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_deploy_units_lane.py +0 -0
  648. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_deploy_web_unit.py +0 -0
  649. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_deps.py +0 -0
  650. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_diagnose.py +0 -0
  651. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_dispatch.py +0 -0
  652. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_dispatch_target_validation.py +0 -0
  653. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_dist_name.py +0 -0
  654. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_done_housekeeping.py +0 -0
  655. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_drive_queue.py +0 -0
  656. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_drive_state.py +0 -0
  657. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_drive_tmux.py +0 -0
  658. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_epic_up_capability_detection.py +0 -0
  659. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
  660. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_epic_up_image_provenance.py +0 -0
  661. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_errors.py +0 -0
  662. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_events.py +0 -0
  663. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_failure_class.py +0 -0
  664. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_filelock.py +0 -0
  665. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
  666. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_fix_of_force_override.py +0 -0
  667. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_fleet_config_health.py +0 -0
  668. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_fleet_health_probes.py +0 -0
  669. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_fleet_health_snapshot.py +0 -0
  670. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_freshness.py +0 -0
  671. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_gate_a.py +0 -0
  672. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_gate_b.py +0 -0
  673. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_gate_snapshot_staleness.py +0 -0
  674. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_gates.py +0 -0
  675. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_gather_fleet_tmux_sessions.py +0 -0
  676. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_generated_types_fixture.py +0 -0
  677. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_github_ops.py +0 -0
  678. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_goal.py +0 -0
  679. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_graph_health.py +0 -0
  680. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_graph_selfheal_absent_2237.py +0 -0
  681. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_handoff.py +0 -0
  682. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_health_checks.py +0 -0
  683. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_health_cli.py +0 -0
  684. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_health_cli_graph.py +0 -0
  685. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_health_config.py +0 -0
  686. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_health_context.py +0 -0
  687. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_health_deploy_lane_facts.py +0 -0
  688. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_health_incident_regression.py +0 -0
  689. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_health_pypi.py +0 -0
  690. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_health_registry.py +0 -0
  691. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_health_timer_active.py +0 -0
  692. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_health_toolchain.py +0 -0
  693. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_health_unit_drift.py +0 -0
  694. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_health_unit_enablement.py +0 -0
  695. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_hooks.py +0 -0
  696. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_human_attended_437.py +0 -0
  697. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_init.py +0 -0
  698. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_integration.py +0 -0
  699. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_interactive_briefing_echo.py +0 -0
  700. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_interactive_prefill_state.py +0 -0
  701. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_interactive_session_relaunch.py +0 -0
  702. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_interactive_test_verdict_backstop.py +0 -0
  703. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_interactive_token_attribution.py +0 -0
  704. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_interactive_worktree.py +0 -0
  705. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_issue_store_seam.py +0 -0
  706. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_liveness_auditor.py +0 -0
  707. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_liveness_notify.py +0 -0
  708. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_machine_pause.py +0 -0
  709. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_merge_queue.py +0 -0
  710. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_merge_verify.py +0 -0
  711. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_milestone_chat.py +0 -0
  712. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_milestone_dispatch.py +0 -0
  713. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_milestone_gate.py +0 -0
  714. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_milestone_order.py +0 -0
  715. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_milestone_seam.py +0 -0
  716. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_mock_author.py +0 -0
  717. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_model_tiering.py +0 -0
  718. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_models.py +0 -0
  719. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_models_config_labels.py +0 -0
  720. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_needs_attention.py +0 -0
  721. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_network.py +0 -0
  722. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_new_issue_chat.py +0 -0
  723. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_next_release_tag.py +0 -0
  724. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_no_direct_gh_calls.py +0 -0
  725. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_node_shim.py +0 -0
  726. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_notifier_baseline.py +0 -0
  727. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_notifier_cli.py +0 -0
  728. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_notifier_collect.py +0 -0
  729. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_notifier_config.py +0 -0
  730. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_notifier_drive_seam.py +0 -0
  731. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_notifier_isolation.py +0 -0
  732. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_notifier_predicate.py +0 -0
  733. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_notifier_quiet_hours.py +0 -0
  734. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_notifier_service.py +0 -0
  735. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_notify.py +0 -0
  736. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_notify_drain.py +0 -0
  737. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_openapi.py +0 -0
  738. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_operational_defaults.py +0 -0
  739. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_overlap_fence.py +0 -0
  740. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_overlap_predict.py +0 -0
  741. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_packaged_deploy_units.py +0 -0
  742. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_parentage.py +0 -0
  743. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_paste_landed.py +0 -0
  744. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_pipeline.py +0 -0
  745. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_plan_followup_approve_plan_command.py +0 -0
  746. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_plan_followup_pr_command.py +0 -0
  747. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_plan_followup_review_command.py +0 -0
  748. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_plan_only.py +0 -0
  749. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_plan_parser.py +0 -0
  750. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_platform_paths.py +0 -0
  751. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_portal_bridge.py +0 -0
  752. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_portal_config.py +0 -0
  753. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_portal_sync.py +0 -0
  754. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_pr_body_lint.py +0 -0
  755. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_prereqs.py +0 -0
  756. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_production_db_guard.py +0 -0
  757. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_progress.py +0 -0
  758. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_provider_seam.py +0 -0
  759. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_providers.py +0 -0
  760. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_providers_config_labels.py +0 -0
  761. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_providers_pty.py +0 -0
  762. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_quiet_hours.py +0 -0
  763. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_quiet_hours_store_2146.py +0 -0
  764. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_reap_merged_sessions.py +0 -0
  765. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_reap_stale_interactive_tick.py +0 -0
  766. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_reconcile.py +0 -0
  767. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_reconcile_branch.py +0 -0
  768. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_reconcile_completions.py +0 -0
  769. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_reconcile_merges.py +0 -0
  770. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_reconcile_no_agent_record.py +0 -0
  771. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_reconcile_tick.py +0 -0
  772. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_reconcile_usage_limit_done.py +0 -0
  773. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_refine_chat.py +0 -0
  774. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_release_cordon_2101.py +0 -0
  775. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
  776. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_release_cordon_deadlock_2240.py +0 -0
  777. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_release_propagate.py +0 -0
  778. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_release_unified_1242.py +0 -0
  779. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_release_verify.py +0 -0
  780. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_release_window.py +0 -0
  781. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_remote_auto_prune.py +0 -0
  782. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_remote_interactive_reaper.py +0 -0
  783. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_repo_edit_2220.py +0 -0
  784. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_repo_graph_fleet_2237.py +0 -0
  785. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_repo_onboard_2220.py +0 -0
  786. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_report_result_push.py +0 -0
  787. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_reports.py +0 -0
  788. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_retry.py +0 -0
  789. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_retry_advisory_1606.py +0 -0
  790. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_retry_type_1636.py +0 -0
  791. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_revalidate.py +0 -0
  792. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_review.py +0 -0
  793. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_review_end_review_without_verdict.py +0 -0
  794. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_review_parse_failure_diagnostic.py +0 -0
  795. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_review_reaffirm.py +0 -0
  796. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_review_state.py +0 -0
  797. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_review_verdict_backstop.py +0 -0
  798. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_review_verdict_override_audit.py +0 -0
  799. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_review_verdict_relay.py +0 -0
  800. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_review_zero_commits.py +0 -0
  801. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_scoped_review_wiring.py +0 -0
  802. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_scorecard.py +0 -0
  803. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_serve.py +0 -0
  804. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_serve_app_board_trim.py +0 -0
  805. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_session.py +0 -0
  806. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_slice_issue_attribution.py +0 -0
  807. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_smoke.py +0 -0
  808. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_smoke_live_checkout_restore.py +0 -0
  809. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_smoke_workflow.py +0 -0
  810. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_spend_ceiling.py +0 -0
  811. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_spend_ceiling_coordinator.py +0 -0
  812. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_split.py +0 -0
  813. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_split_work.py +0 -0
  814. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_stage_projection.py +0 -0
  815. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_stalled_pipeline.py +0 -0
  816. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_state.py +0 -0
  817. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_state_review_findings_daemon.py +0 -0
  818. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_status_fleet_footer.py +0 -0
  819. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_stop_1567.py +0 -0
  820. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_stuck.py +0 -0
  821. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_terminal_command.py +0 -0
  822. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_test_author.py +0 -0
  823. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_test_chat.py +0 -0
  824. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_test_orchestrator.py +0 -0
  825. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_test_report.py +0 -0
  826. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_test_verdict_parsing.py +0 -0
  827. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_test_verdict_transcript_floor.py +0 -0
  828. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_thin_client_board_audit.py +0 -0
  829. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_thin_client_config_load_1080.py +0 -0
  830. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_thin_client_daemon_routing_906.py +0 -0
  831. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_tmux_host.py +0 -0
  832. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_tmux_session.py +0 -0
  833. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_transcript_floor.py +0 -0
  834. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_usage.py +0 -0
  835. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_usage_limits.py +0 -0
  836. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_usage_rollup.py +0 -0
  837. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_venv_live_install_2121.py +0 -0
  838. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_version_single_source.py +0 -0
  839. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_watch.py +0 -0
  840. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
  841. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_worker_events.py +0 -0
  842. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_worker_image_pin_sync.py +0 -0
  843. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_worker_safety.py +0 -0
  844. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_worker_test_scoping.py +0 -0
  845. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_worktree.py +0 -0
  846. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tests/test_worktree_rmtree_chokepoint.py +0 -0
  847. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/Cargo.lock +0 -0
  848. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/Cargo.toml +0 -0
  849. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/cargo-config-local-quadraui.toml.example +0 -0
  850. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/src/app/audit.rs +0 -0
  851. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/src/app/chat.rs +0 -0
  852. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/src/app/data.rs +0 -0
  853. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/src/app/dialogs.rs +0 -0
  854. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/src/app/drive.rs +0 -0
  855. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/src/app/drive_queue.rs +0 -0
  856. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/src/app/escalation.rs +0 -0
  857. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/src/app/fixtures.rs +0 -0
  858. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/src/app/fleet_health.rs +0 -0
  859. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/src/app/fleet_sessions.rs +0 -0
  860. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/src/app/fleet_terminals.rs +0 -0
  861. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/src/app/format.rs +0 -0
  862. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/src/app/milestone_dag.rs +0 -0
  863. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/src/app/msv.rs +0 -0
  864. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/src/app/plans.rs +0 -0
  865. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/src/app/render.rs +0 -0
  866. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/src/app/reports.rs +0 -0
  867. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/src/app/sessions.rs +0 -0
  868. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/src/app/settings_ui.rs +0 -0
  869. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/src/app/sidebar.rs +0 -0
  870. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/src/app/terminal.rs +0 -0
  871. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/src/app/types.rs +0 -0
  872. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/src/app/workspace.rs +0 -0
  873. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/src/bin/gtk.rs +0 -0
  874. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/src/commands.rs +0 -0
  875. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/src/lib.rs +0 -0
  876. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/src/main.rs +0 -0
  877. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/src/settings.rs +0 -0
  878. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/tui/tests/cli.rs +0 -0
  879. {code_coordinator-0.5.158 → code_coordinator-0.5.161}/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.158
3
+ Version: 0.5.161
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.158
3
+ Version: 0.5.161
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
@@ -806,6 +806,7 @@ tests/acceptance/ms-65/contract.md
806
806
  tests/acceptance/ms-65/detail_substate_2285.rs
807
807
  tests/acceptance/ms-65/manifest.yml
808
808
  tests/acceptance/ms-65/pipeline_tabs_2284.rs
809
+ tests/acceptance/ms-65/tabs_discoverability_2287.rs
809
810
  tests/acceptance/ms-65/mocks/board-baseline-no-tabs.screen
810
811
  tests/acceptance/ms-65/mocks/board-pinned-3-tabs.screen
811
812
  tests/acceptance/ms-65/mocks/board-preview-tab.screen
@@ -454,6 +454,7 @@
454
454
  "tests/acceptance/ms-65/mocks/board-tabs-overflow.screen",
455
455
  "tests/acceptance/ms-65/mocks/pipeline-tabs-independent.screen",
456
456
  "tests/acceptance/ms-65/pipeline_tabs_2284.rs",
457
+ "tests/acceptance/ms-65/tabs_discoverability_2287.rs",
457
458
  "tests/acceptance/ms-example/mocks/home-active.html",
458
459
  "tests/conftest.py",
459
460
  "tests/fixtures/board-pipeline-basic.json",
@@ -1,7 +1,7 @@
1
1
  {
2
- "tag": "0.5.158",
2
+ "tag": "0.5.161",
3
3
  "distance": 0,
4
- "node": "g4e440181f25b4e02cfc8fc64b76c584c7e63a197",
4
+ "node": "g2c9d3ac54cc47979d8229c26e8852ac4852dc577",
5
5
  "dirty": false,
6
6
  "branch": "HEAD",
7
7
  "node_date": "2026-08-19"
@@ -396,6 +396,22 @@ class DriveCounters:
396
396
  # overwhelming majority of drives — non-oracle ones — never allocate it,
397
397
  # and `--dry-run`'s counter snapshot stays unchanged for them.
398
398
  acceptance: "DriveCounters | None" = None
399
+ # #2416: bounded retry for an ADVISORY work row whose branch carries zero
400
+ # commits — `_decide_advisory`'s dead-end signature. Before this, that
401
+ # branch went straight to `_die()` on every observation, so the only
402
+ # thing that could ever supersede the terminal row was a human running
403
+ # `coord retry <aid>` by hand (`coord diagnose --stage work --reset` is
404
+ # NOT the escape hatch here — it never sets `needs_reset` for this
405
+ # shape). `drive-queue`'s own automatic retry does not take that path
406
+ # either: it just relaunches a brand new `coord drive` process, which
407
+ # re-observes the SAME terminal row and dies again in seconds, burning a
408
+ # queue attempt+backoff cycle for nothing (coord-portal#119, drive-queue
409
+ # entry 432). Bounded the same way `work_retries` is (`opts.
410
+ # max_work_retries`) so a genuinely unactionable row (the issue's real
411
+ # resolution is a sibling task, not another attempt) still reaches a
412
+ # terminal `_die()` — never an unbounded loop — once the budget is
413
+ # spent.
414
+ advisory_retries: int = 0
399
415
 
400
416
  def slice_budget(self) -> "DriveCounters":
401
417
  """This run's slice-landing budget, created on first use (#2079)."""
@@ -1603,8 +1619,15 @@ def decide(
1603
1619
  if state.work_status == "done":
1604
1620
  pass
1605
1621
  elif state.work_status == "advisory":
1606
- advisory = _decide_advisory(state, opts, machine, verifier)
1607
- if advisory.is_exit:
1622
+ advisory = _decide_advisory(state, opts, counters, machine, verifier)
1623
+ # #2416: `_decide_advisory` now returns a RUN action (a bounded
1624
+ # `coord retry` dispatch) for the zero-commit case, not only an EXIT
1625
+ # — `is_exit` alone would let a RUN action fall through to the
1626
+ # Test/Review/Merge logic below as though the row were validated
1627
+ # work. Only its "proceeding under --accept-advisory" branch returns
1628
+ # WAIT (with warnings to fold in); every other branch (EXIT or RUN)
1629
+ # is this poll's whole answer.
1630
+ if advisory.kind != WAIT:
1608
1631
  return advisory
1609
1632
  warnings = advisory.warnings
1610
1633
  elif state.work_status == "refused_policy":
@@ -1825,6 +1848,7 @@ def _dispatch_work_stage(
1825
1848
  def _decide_advisory(
1826
1849
  state: IssueState,
1827
1850
  opts: DriveOptions,
1851
+ counters: DriveCounters,
1828
1852
  machine: str,
1829
1853
  verifier: MergeVerifier,
1830
1854
  ) -> Action:
@@ -1835,13 +1859,47 @@ def _decide_advisory(
1835
1859
  ``tui/target/debug/coord-tui``, which a Python diff never produces, so
1836
1860
  #1323's stash-miss check downgrades a perfectly good DONE. Ask git which
1837
1861
  case this actually is rather than trusting the status.
1862
+
1863
+ #2416: a GENUINE zero-commit advisory (no branch, or a branch verified to
1864
+ carry no commits) used to be an immediate, unconditional `_die()` — the
1865
+ ONE thing that can actually change this row, `coord retry <aid>`'s
1866
+ zero-commit-advisory path (#1606: `ahead == 0` → reassign a fresh
1867
+ worker), was never invoked automatically. That made every automatic
1868
+ retry — `drive-queue`'s own included — a no-op: a brand new `coord
1869
+ drive` process just re-observes the identical terminal row and dies
1870
+ again in seconds, spending a queue attempt+backoff cycle for nothing.
1871
+ Mirrors the `work_status == "failed"` branch above: a bounded number of
1872
+ `coord retry` dispatches (`opts.max_work_retries`, via `counters.
1873
+ advisory_retries`) before finally giving up, so a row whose correct
1874
+ resolution really is "dispatch something else" still reaches a terminal
1875
+ `_die()` naming `coord retry` for a human — never an unbounded loop.
1838
1876
  """
1839
1877
  if not state.work_branch or not verifier.branch_has_commits(state):
1840
- return _die(
1841
- f"work {state.work_aid} exited ADVISORY with no commits on its branch —\n"
1842
- " nothing was pushed, so there is nothing to test, review, or merge.\n"
1843
- f" inspect: coord log {state.work_aid} --machine "
1844
- f"{state.work_machine or machine}"
1878
+ budget = opts.max_work_retries
1879
+ if counters.advisory_retries >= budget:
1880
+ return _die(
1881
+ f"work {state.work_aid} exited ADVISORY with no commits on its "
1882
+ f"branch {counters.advisory_retries} time(s) in a row (budget "
1883
+ f"{budget}, #2416) — nothing was pushed, so there is nothing to "
1884
+ "test, review, or merge, and retrying has not produced a "
1885
+ "different outcome.\n"
1886
+ f" inspect: coord log {state.work_aid} --machine "
1887
+ f"{state.work_machine or machine}\n"
1888
+ f" this needs an operator decision: `coord retry "
1889
+ f"{state.work_aid}` by hand once the underlying blocker is "
1890
+ "understood, or dispatch an independent follow-up issue if "
1891
+ "another attempt at this one is not the right fix."
1892
+ )
1893
+ counters.advisory_retries += 1
1894
+ return Action(
1895
+ kind=RUN,
1896
+ label=(
1897
+ f"WORK: {state.work_aid} exited ADVISORY with no commits → "
1898
+ f"coord retry {state.work_aid} (attempt "
1899
+ f"{counters.advisory_retries}/{budget}, #2416)"
1900
+ ),
1901
+ command=("retry", state.work_aid),
1902
+ error_message=f"coord retry failed for {state.work_aid}",
1845
1903
  )
1846
1904
  if not opts.accept_advisory:
1847
1905
  return _die(
@@ -143,6 +143,50 @@ tests:
143
143
  # THIS IS A GREEN RATCHET — see the `expected_red` block below.
144
144
  detail_substate_2285::a_single_open_tab_keeps_todays_sub_tab_and_scroll_behaviour: 2285
145
145
 
146
+ # ── #2287 (T-5) — discoverability: status bar / `?` help / right-click ────
147
+ # Slice: tabs_discoverability_2287.rs · mocks: board-tab-context-menu.screen,
148
+ # board-tabs-help-overlay.screen (plus board-preview-tab.screen and
149
+ # board-baseline-no-tabs.screen — §8a's own hint-present / hint-absent
150
+ # reference pair)
151
+ #
152
+ # §8a — with >=1 tab open the status bar advertises the tab gestures
153
+ tabs_discoverability_2287::status_bar_shows_the_tab_hints_while_a_tab_is_open: 2287
154
+ # §8a — …as the contract's pinned, verbatim substring (two spaces between
155
+ # segments). Split from the clause above so a spacing/ordering deviation
156
+ # reds exactly one id.
157
+ tabs_discoverability_2287::status_bar_tab_hint_is_the_contracts_verbatim_string: 2287
158
+ # §8a + #2287 AC — the dynamic half: the hint goes away again when the last
159
+ # tab closes (a latched hint passes the static control but fails this)
160
+ tabs_discoverability_2287::status_bar_tab_hints_disappear_when_the_last_tab_closes: 2287
161
+ # §8a — CONTROL: zero tabs => no tab hint, and the Board's own pre-ms-65
162
+ # hints survive. THIS IS THE GREEN CONTROL — see `expected_red` below.
163
+ tabs_discoverability_2287::zero_tabs_status_bar_keeps_the_boards_own_hints_and_shows_no_tab_hints: 2287
164
+ # §8b — `?` opens an overlay titled "Board — Help"
165
+ tabs_discoverability_2287::help_overlay_opens_on_question_mark_with_the_board_title: 2287
166
+ # §8b — …listing the four pinned key-binding phrases ("open preview tab",
167
+ # "pin tab", "close active tab", "cycle tabs")
168
+ tabs_discoverability_2287::help_overlay_lists_the_document_tab_key_bindings: 2287
169
+ # §8b — …and the two mouse gestures the status bar cannot advertise,
170
+ # under the "Document tabs" heading
171
+ tabs_discoverability_2287::help_overlay_lists_the_mouse_tab_gestures_under_a_document_tabs_heading: 2287
172
+ # §8b — ` Esc=close ` while open, and `Esc` closes it
173
+ tabs_discoverability_2287::help_overlay_advertises_and_honours_escape_to_close: 2287
174
+ # §8c — right-clicking a tab opens the four-item menu (Close checked as a
175
+ # standalone item, not as a prefix of its two longer siblings)
176
+ tabs_discoverability_2287::right_clicking_a_tab_opens_a_menu_with_close_close_others_close_all_and_pin_tab: 2287
177
+ # §8c — "Close others" leaves exactly the right-clicked (middle) tab
178
+ tabs_discoverability_2287::close_others_leaves_exactly_the_right_clicked_tab: 2287
179
+ # §8c — "Close all" leaves none and restores the zero-tab state
180
+ tabs_discoverability_2287::close_all_leaves_no_tabs_and_restores_the_zero_tab_state: 2287
181
+ # §8c — "Close" closes the right-clicked tab and no other (see finding 16)
182
+ tabs_discoverability_2287::close_menu_item_closes_the_right_clicked_tab_and_no_other: 2287
183
+ # §8c + #2287 AC — "Pin tab" promotes a preview tab (drops `∘ `) without
184
+ # changing count or order
185
+ tabs_discoverability_2287::pin_tab_promotes_a_preview_tab_without_changing_count_or_order: 2287
186
+ # §8c — "hidden or inert" on an already-pinned tab, asserted through the
187
+ # outcome both readings share (see finding 17)
188
+ tabs_discoverability_2287::pin_tab_is_hidden_or_inert_on_an_already_pinned_tab: 2287
189
+
146
190
  # ── expected_red (#2164) ───────────────────────────────────────────────────
147
191
  # Hand-derived from a REAL run of the sealed suite against origin/main at the
148
192
  # time of authoring (`cd tui && cargo test --test acceptance --features
@@ -249,6 +293,40 @@ expected_red:
249
293
  - detail_substate_2285::closing_a_tab_discards_its_sub_state_and_reopening_starts_from_the_defaults
250
294
  - detail_substate_2285::terminal_sub_tab_selection_follows_its_own_tab
251
295
 
296
+ # #2287 — OBSERVED, not intended. Taken from two consecutive real runs of
297
+ # the sealed suite (`cd tui && RUSTC_BOOTSTRAP=1 cargo test --test acceptance
298
+ # --features test-support -- -Z unstable-options --format json`, the driver
299
+ # command in coordinator.yml) at authoring time: of this slice's 14 ids, the
300
+ # same 13 FAILED and the same 1 passed on both runs. Every one of the 13 died
301
+ # on a §8 clause, never on a §2/§4 precondition — verified by reading the
302
+ # panic line of each failure (the §8c ones all land in `assert_menu_item` /
303
+ # `click_menu_item`, i.e. "no such menu"; the §8a/§8b ones on the missing
304
+ # hint string and the missing overlay). The 1 that passed is deliberately
305
+ # ABSENT below:
306
+ #
307
+ # * `zero_tabs_status_bar_keeps_the_boards_own_hints_and_shows_no_tab_hints`
308
+ # — the CONTROL. Green today (nothing renders "click=preview", and the
309
+ # Board status bar already reads `… n=notify m=merge R=retry P=purge
310
+ # q=quit`) and it must STAY green after #2287 lands: an implementation
311
+ # that appends the tab hints unconditionally, or that replaces the
312
+ # Board's own hint set with them outright, passes every §8a test above
313
+ # and breaks exactly this one. Listing it would make its inevitable pass
314
+ # a HARD FAILURE.
315
+ 2287:
316
+ - tabs_discoverability_2287::status_bar_shows_the_tab_hints_while_a_tab_is_open
317
+ - tabs_discoverability_2287::status_bar_tab_hint_is_the_contracts_verbatim_string
318
+ - tabs_discoverability_2287::status_bar_tab_hints_disappear_when_the_last_tab_closes
319
+ - tabs_discoverability_2287::help_overlay_opens_on_question_mark_with_the_board_title
320
+ - tabs_discoverability_2287::help_overlay_lists_the_document_tab_key_bindings
321
+ - tabs_discoverability_2287::help_overlay_lists_the_mouse_tab_gestures_under_a_document_tabs_heading
322
+ - tabs_discoverability_2287::help_overlay_advertises_and_honours_escape_to_close
323
+ - tabs_discoverability_2287::right_clicking_a_tab_opens_a_menu_with_close_close_others_close_all_and_pin_tab
324
+ - tabs_discoverability_2287::close_others_leaves_exactly_the_right_clicked_tab
325
+ - tabs_discoverability_2287::close_all_leaves_no_tabs_and_restores_the_zero_tab_state
326
+ - tabs_discoverability_2287::close_menu_item_closes_the_right_clicked_tab_and_no_other
327
+ - tabs_discoverability_2287::pin_tab_promotes_a_preview_tab_without_changing_count_or_order
328
+ - tabs_discoverability_2287::pin_tab_is_hidden_or_inert_on_an_already_pinned_tab
329
+
252
330
  # ═══════════════════════════════════════════════════════════════════════════
253
331
  # FOR THE COORDINATOR — three findings from authoring this slice. None of them
254
332
  # is a worker's to fix, and none was resolved by editing the contract (a
@@ -506,3 +584,88 @@ expected_red:
506
584
  # And this slice deliberately does NOT assert the sub-tab-switch scroll reset
507
585
  # the app performs today (`detail_scroll = 0` on a sub-tab click): no clause
508
586
  # pins it either way, so pinning it could force a wrong implementation.
587
+
588
+ # ═══════════════════════════════════════════════════════════════════════════
589
+ # FOR THE COORDINATOR — findings from authoring the #2287 slice (contract §8).
590
+ # Independent of the #2282 / #2283 / #2284 / #2285 notes above; again, none is
591
+ # a worker's to fix by editing this suite, and none was resolved by editing
592
+ # the contract (a test-author may not amend one).
593
+ # ═══════════════════════════════════════════════════════════════════════════
594
+ #
595
+ # 14. §8b's `?` overlay has TWO sections and the second one is #2288's, not
596
+ # #2287's. §8b pins "Document tabs" AND "Split (§9's four keys)", and
597
+ # `mocks/board-tabs-help-overlay.screen` renders the four split rows
598
+ # (`Ctrl-W v split right`, `Ctrl-W s split down`, `Ctrl-W w next pane`,
599
+ # `Ctrl-W x close pane`). This slice asserts the Document-tabs section
600
+ # only. #2287's own acceptance criteria say just "`?` lists the tab key
601
+ # bindings"; the split keys belong to §9 (#2288), which the milestone's
602
+ # work order puts AFTER this issue, and §9 note 2 says `Ctrl-W s` is a
603
+ # reserved placeholder that does nothing in ms-65. Asserting those rows
604
+ # here would gate #2287's acceptance run on a later issue's surface — and,
605
+ # for `Ctrl-W s`, on a binding the contract says must NOT work yet. If the
606
+ # Split section is meant to be gated by acceptance, it wants an id in
607
+ # #2288's slice (the overlay is #2287's to build; the rows it lists for
608
+ # split are #2288's to justify). Flagged as a `TODO(test-author)` in the
609
+ # slice too.
610
+ #
611
+ # 15. §8a's hint is pinned "whenever the active panel owns a tab set", but the
612
+ # Pipeline half is not asserted. Pipeline owns its own set (§3), so the
613
+ # hint presumably applies there too, but the contract names no
614
+ # Pipeline hint-present mock and finding 7 above (the #2284 author's) is a
615
+ # live blocker: entering the Pipeline panel from this external test crate
616
+ # can wholesale-replace the seeded fixture, because `start_data_load()`'s
617
+ # deterministic short-circuit is gated `#[cfg(test)]` only. Rather than
618
+ # add a fourteenth id with a known race, this slice asserts §8a on the
619
+ # Board only — where both of §8a's own reference mocks live. If finding
620
+ # 7's one-line cfg widening lands, a Pipeline hint id is cheap to add.
621
+ #
622
+ # 16. §8c does not say what the menu's **"Close"** item does. The section
623
+ # spells out the effect of "Close others", "Close all" and "Pin tab" and
624
+ # is silent on the first item. `close_menu_item_closes_the_right_clicked_
625
+ # tab_and_no_other` takes the only reading the label admits, and the one
626
+ # §4 already pins for the `×` route: the RIGHT-CLICKED tab closes, the
627
+ # others survive. The fixture deliberately right-clicks a tab that is NOT
628
+ # the active one (#102 while #103 is active) so the two readings are
629
+ # distinguishable — if "Close" was meant to close the *active* tab, that
630
+ # needs a contract amendment, not a silent implementation choice.
631
+ # Flagged as a `TODO(test-author)` in the slice.
632
+ #
633
+ # 17. §8c's "hidden **or** inert" is permissive, so neither the presence nor
634
+ # the absence of "Pin tab" on an already-pinned tab is assertable on its
635
+ # own. `pin_tab_is_hidden_or_inert_on_an_already_pinned_tab` asserts the
636
+ # outcome BOTH readings share instead — the tab set is unchanged (count,
637
+ # order, and still no `∘ ` marker anywhere) — taking the item's branch
638
+ # when it renders and dismissing the menu when it does not. It is not
639
+ # vacuous: it first requires the menu to open on a pinned tab at all
640
+ # (§8c gates only the one item, not the menu), which is why it was RED at
641
+ # authoring time.
642
+ #
643
+ # 18. §8b's overlay is driven with ZERO tabs open, though
644
+ # `mocks/board-tabs-help-overlay.screen` depicts it over a 3-tab board.
645
+ # §8b's testable clause carries no tab precondition ("`driver.press('?')`
646
+ # while the Board panel is active"), and #2287's own rationale — the
647
+ # gestures are "undiscoverable by anyone who did not read the issue" — is
648
+ # at its strongest before the operator has opened anything. If the tab
649
+ # section of the overlay is meant to be conditional on an open tab set,
650
+ # that is a contract amendment; as written, four ids here would be red
651
+ # against such an implementation.
652
+ #
653
+ # Also worth knowing, not a contract problem: (a) the shipped Board status bar
654
+ # is a full row of segments — `coord-tui Board [Sidebar] ↻ 0s QUEUE: empty
655
+ # FLEET: OK (coord health n=notify m=merge R=retry P=purge q=quit` — and
656
+ # is already truncated at 120 columns, whereas §8a's own reference mock renders
657
+ # only ` click=preview dbl-click=pin ctrl-w=close ctrl-tab=next q=quit`.
658
+ # The control asserts the four Board hint segments (`n=notify`, `R=retry`,
659
+ # `P=purge`, `q=quit`) survive in the ZERO-tab state only, which is the only
660
+ # state §8a calls "unchanged"; it deliberately pins nothing about what the row
661
+ # looks like once the tab hints are in it, since the mock implies the left-hand
662
+ # segments give way. (b) `"Close"` is a prefix of both `"Close others"` and
663
+ # `"Close all"`, so a bare `screen_contains("Close")` would pass on a menu
664
+ # missing the item entirely; the slice's `menu_item_row()` rejects a match
665
+ # whose label is immediately followed by another item's continuation. It does
666
+ # NOT require the row to end after the label — §8c pins no accelerator column
667
+ # for this menu, but ms-38's menus do render one (`Refresh … r`), so an item
668
+ # carrying an accelerator must still count. (c) §8c pins no gesture for
669
+ # activating an open menu item; a left click on the item's own label is the
670
+ # only activation path any context menu in this app already documents, so that
671
+ # is what the slice sends.