code-coordinator 0.5.59__tar.gz → 0.5.60__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 (815) hide show
  1. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/CLAUDE.md +10 -0
  2. {code_coordinator-0.5.59/code_coordinator.egg-info → code_coordinator-0.5.60}/PKG-INFO +1 -1
  3. {code_coordinator-0.5.59 → code_coordinator-0.5.60/code_coordinator.egg-info}/PKG-INFO +1 -1
  4. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/code_coordinator.egg-info/SOURCES.txt +1 -0
  5. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/code_coordinator.egg-info/scm_file_list.json +1 -0
  6. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/code_coordinator.egg-info/scm_version.json +2 -2
  7. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/agent.py +37 -6
  8. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/providers/claude.py +4 -1
  9. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/providers/claude_pty.py +5 -1
  10. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_providers_pty.py +22 -0
  11. code_coordinator-0.5.60/tests/test_worker_test_scoping.py +162 -0
  12. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/.claude/commands/board.md +0 -0
  13. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/.claude/commands/complete-session.md +0 -0
  14. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/.claude/commands/coordinator.md +0 -0
  15. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/.githooks/_lib.sh +0 -0
  16. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/.githooks/post-checkout +0 -0
  17. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/.githooks/post-commit +0 -0
  18. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/.githooks/post-merge +0 -0
  19. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  20. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/.github/workflows/auto-release.yml +0 -0
  21. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/.github/workflows/cargo-test.yml +0 -0
  22. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/.github/workflows/publish.yml +0 -0
  23. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/.github/workflows/release-tui.yml +0 -0
  24. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/.github/workflows/test.yml +0 -0
  25. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/.gitignore +0 -0
  26. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/GOAL.md +0 -0
  27. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/LICENSE +0 -0
  28. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/MANIFEST.in +0 -0
  29. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/README.md +0 -0
  30. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/code_coordinator.egg-info/dependency_links.txt +0 -0
  31. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/code_coordinator.egg-info/entry_points.txt +0 -0
  32. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/code_coordinator.egg-info/requires.txt +0 -0
  33. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/code_coordinator.egg-info/top_level.txt +0 -0
  34. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/__init__.py +0 -0
  35. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/_board_mapping.py +0 -0
  36. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/acceptance.py +0 -0
  37. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/acceptance_drivers.py +0 -0
  38. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/agent_app.py +0 -0
  39. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/agent_update.py +0 -0
  40. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/agents/opencode/.gitignore +0 -0
  41. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/agents/opencode/agents/work.md +0 -0
  42. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/agents/opencode/routing.jsonc +0 -0
  43. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/audit.py +0 -0
  44. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/auto_loop.py +0 -0
  45. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/board_bool_guard.py +0 -0
  46. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/board_service.py +0 -0
  47. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/board_wire.py +0 -0
  48. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/brain.py +0 -0
  49. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/branch_model.py +0 -0
  50. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/bug_intake.py +0 -0
  51. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/cargo_cache.py +0 -0
  52. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/ci_github.py +0 -0
  53. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/ci_store.py +0 -0
  54. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/claim.py +0 -0
  55. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/cli.py +0 -0
  56. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/client.py +0 -0
  57. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/commands/__init__.py +0 -0
  58. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/commands/_common.py +0 -0
  59. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/commands/acceptance.py +0 -0
  60. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/commands/agent_ops.py +0 -0
  61. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/commands/audit.py +0 -0
  62. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/commands/chat.py +0 -0
  63. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/commands/dispatch.py +0 -0
  64. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/commands/dispatch_workers.py +0 -0
  65. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/commands/drive.py +0 -0
  66. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/commands/drive_queue.py +0 -0
  67. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/commands/gate_a.py +0 -0
  68. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/commands/gates.py +0 -0
  69. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/commands/issues.py +0 -0
  70. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/commands/lifecycle.py +0 -0
  71. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/commands/merge.py +0 -0
  72. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/commands/milestone.py +0 -0
  73. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/commands/plan_followup.py +0 -0
  74. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/commands/plans.py +0 -0
  75. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/commands/portal.py +0 -0
  76. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/commands/release.py +0 -0
  77. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/commands/report.py +0 -0
  78. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/commands/review.py +0 -0
  79. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/commands/scorecard.py +0 -0
  80. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/commands/sessions.py +0 -0
  81. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/commands/setup.py +0 -0
  82. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/commands/status.py +0 -0
  83. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/commands/terminal.py +0 -0
  84. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/commands/test_gate.py +0 -0
  85. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/commands/tui.py +0 -0
  86. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/comments.py +0 -0
  87. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/config.py +0 -0
  88. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/conflict_fix.py +0 -0
  89. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dao.py +0 -0
  90. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/__init__.py +0 -0
  91. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/fixture.py +0 -0
  92. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/index.html +0 -0
  93. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/server.py +0 -0
  94. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/terminal.py +0 -0
  95. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/.gitignore +0 -0
  96. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/components.json +0 -0
  97. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/dist/assets/Gallery-da3qNiIw.js +0 -0
  98. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/dist/assets/Terminal-9CEnUXvW.css +0 -0
  99. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/dist/assets/Terminal-skVFCxPU.js +0 -0
  100. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/dist/assets/index-DltfZR5f.js +0 -0
  101. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/dist/assets/index-Dq4kwTdw.css +0 -0
  102. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/dist/assets/workbox-window.prod.es5-BqEJf4Xk.js +0 -0
  103. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/dist/icons/icon-192.png +0 -0
  104. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/dist/icons/icon-512.png +0 -0
  105. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/dist/icons/icon.svg +0 -0
  106. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/dist/index.html +0 -0
  107. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/dist/manifest.webmanifest +0 -0
  108. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/dist/sw.js +0 -0
  109. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/dist/workbox-e4022e15.js +0 -0
  110. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/e2e/available-gates-terminal.spec.ts +0 -0
  111. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/e2e/deep-link.spec.ts +0 -0
  112. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/e2e/fixtureServer.ts +0 -0
  113. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/e2e/live-update-fixture.spec.ts +0 -0
  114. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/e2e/realtime.spec.ts +0 -0
  115. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/e2e/shell.spec.ts +0 -0
  116. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/e2e/smoke.spec.ts +0 -0
  117. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/e2e/terminal.spec.ts +0 -0
  118. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/e2e/theme.spec.ts +0 -0
  119. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/eslint.config.js +0 -0
  120. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/index.html +0 -0
  121. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/node_modules/flatted/python/flatted.py +0 -0
  122. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/package-lock.json +0 -0
  123. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/package.json +0 -0
  124. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/playwright.acceptance.config.ts +0 -0
  125. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/playwright.config.ts +0 -0
  126. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/postcss.config.js +0 -0
  127. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/public/icons/icon-192.png +0 -0
  128. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/public/icons/icon-512.png +0 -0
  129. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/public/icons/icon.svg +0 -0
  130. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/App.tsx +0 -0
  131. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/api/client.ts +0 -0
  132. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/api/generated.ts +0 -0
  133. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/components/ConnectionBadge.tsx +0 -0
  134. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/components/Detail.tsx +0 -0
  135. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/components/Gallery.tsx +0 -0
  136. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/components/Home.tsx +0 -0
  137. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/components/MobileKeyBar.tsx +0 -0
  138. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/components/PanelHeader.tsx +0 -0
  139. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/components/PipelineCard.tsx +0 -0
  140. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/components/SessionCard.tsx +0 -0
  141. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/components/SessionDetail.tsx +0 -0
  142. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/components/SessionsList.tsx +0 -0
  143. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/components/Terminal.tsx +0 -0
  144. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/components/__tests__/ConnectionBadge.test.tsx +0 -0
  145. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/components/__tests__/Detail.test.tsx +0 -0
  146. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/components/__tests__/Gallery.test.tsx +0 -0
  147. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/components/__tests__/Home.test.tsx +0 -0
  148. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/components/__tests__/MobileKeyBar.test.tsx +0 -0
  149. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/components/__tests__/PipelineCard.test.tsx +0 -0
  150. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/components/__tests__/SessionCard.test.tsx +0 -0
  151. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/components/__tests__/Terminal.test.tsx +0 -0
  152. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/components/ui/badge.tsx +0 -0
  153. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/components/ui/button.tsx +0 -0
  154. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/components/ui/card.tsx +0 -0
  155. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/components/ui/dialog.tsx +0 -0
  156. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/components/ui/dropdown-menu.tsx +0 -0
  157. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/components/ui/empty-state.tsx +0 -0
  158. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/components/ui/sheet.tsx +0 -0
  159. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/components/ui/skeleton.tsx +0 -0
  160. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/components/ui/tabs.tsx +0 -0
  161. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/components/ui/theme-provider.tsx +0 -0
  162. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/components/ui/theme-toggle.tsx +0 -0
  163. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/components/ui/toast.tsx +0 -0
  164. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/components/ui/toaster.tsx +0 -0
  165. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/components/ui/tooltip.tsx +0 -0
  166. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/components/ui/use-toast.ts +0 -0
  167. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/index.css +0 -0
  168. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/lib/pipeline.ts +0 -0
  169. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/lib/utils.ts +0 -0
  170. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/main.tsx +0 -0
  171. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/realtime/RealtimeProvider.tsx +0 -0
  172. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/realtime/__tests__/RealtimeProvider.test.tsx +0 -0
  173. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/realtime/__tests__/connection.test.ts +0 -0
  174. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/realtime/connection.ts +0 -0
  175. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/realtime/events.ts +0 -0
  176. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/routes/__tests__/paths.test.ts +0 -0
  177. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/routes/paths.ts +0 -0
  178. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/shell/ActivityRail.tsx +0 -0
  179. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/shell/AppShell.tsx +0 -0
  180. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/shell/ComingSoon.tsx +0 -0
  181. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/shell/EmptyDetail.tsx +0 -0
  182. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/shell/RouteNotFound.tsx +0 -0
  183. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/shell/ShellLayout.tsx +0 -0
  184. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/shell/StatusBar.tsx +0 -0
  185. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/shell/__tests__/ShellLayout.test.tsx +0 -0
  186. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/shell/__tests__/shellState.test.ts +0 -0
  187. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/shell/__tests__/stubViewport.ts +0 -0
  188. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/shell/breakpoints.ts +0 -0
  189. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/shell/railItems.ts +0 -0
  190. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/shell/shellState.ts +0 -0
  191. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/shell/useRegionFocus.ts +0 -0
  192. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/test-setup.ts +0 -0
  193. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/src/vite-env.d.ts +0 -0
  194. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/tailwind.config.js +0 -0
  195. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/tsconfig.json +0 -0
  196. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/tsconfig.node.json +0 -0
  197. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dashboard/webapp/vite.config.ts +0 -0
  198. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/db.py +0 -0
  199. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dead_end.py +0 -0
  200. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/deploy/README.md +0 -0
  201. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/deploy/coord-agent.service +0 -0
  202. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/deploy/coord-db-backup.service +0 -0
  203. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/deploy/coord-db-backup.sh +0 -0
  204. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/deploy/coord-db-backup.timer +0 -0
  205. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/deploy/coord-drive-queue.service +0 -0
  206. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/deploy/coord-drive-queue.timer +0 -0
  207. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/deploy/coord-notify.service +0 -0
  208. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/deploy/coord-notify.timer +0 -0
  209. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/deploy/coord-release-propagate.service +0 -0
  210. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/deploy/coord-release-propagate.timer +0 -0
  211. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/deploy/coord-release-window.service +0 -0
  212. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/deploy/coord-release-window.timer +0 -0
  213. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/deploy/coord-serve.service +0 -0
  214. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/deploy/coord-web-dist-build.service +0 -0
  215. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/deploy/coord-web-dist-build.timer +0 -0
  216. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/deploy/coord-web.service +0 -0
  217. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/deploy_manifest.py +0 -0
  218. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/deploy_units.py +0 -0
  219. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/deps.py +0 -0
  220. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/diagnose.py +0 -0
  221. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dispatch.py +0 -0
  222. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/dist_name.py +0 -0
  223. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/drive.py +0 -0
  224. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/drive_queue.py +0 -0
  225. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/drive_state.py +0 -0
  226. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/events.py +0 -0
  227. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/failure_class.py +0 -0
  228. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/filelock.py +0 -0
  229. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/fleet_config_health.py +0 -0
  230. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/freshness.py +0 -0
  231. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/gate_a.py +0 -0
  232. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/gate_b.py +0 -0
  233. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/gate_snapshot.py +0 -0
  234. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/gates.py +0 -0
  235. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/github_ops.py +0 -0
  236. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/goal.py +0 -0
  237. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/graph_health.py +0 -0
  238. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/health/__init__.py +0 -0
  239. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/health/aggregate.py +0 -0
  240. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/health/checks/__init__.py +0 -0
  241. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/health/checks/agent_install.py +0 -0
  242. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/health/checks/cargo_targets.py +0 -0
  243. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/health/checks/claude_binary.py +0 -0
  244. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/health/checks/deploy_lane_facts.py +0 -0
  245. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/health/checks/disk.py +0 -0
  246. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/health/checks/fleet_board.py +0 -0
  247. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/health/checks/fleet_deploy_lanes.py +0 -0
  248. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/health/checks/fleet_phantom.py +0 -0
  249. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/health/checks/fleet_unit_drift.py +0 -0
  250. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/health/checks/graph.py +0 -0
  251. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/health/checks/plan_usage.py +0 -0
  252. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/health/checks/repo_state.py +0 -0
  253. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/health/checks/spawned_coord.py +0 -0
  254. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/health/checks/timer_active.py +0 -0
  255. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/health/checks/toolchain.py +0 -0
  256. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/health/checks/unit_drift.py +0 -0
  257. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/health/checks/unit_enablement.py +0 -0
  258. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/health/checks/worktrees.py +0 -0
  259. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/health/cli.py +0 -0
  260. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/health/context.py +0 -0
  261. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/health/fleet_snapshot.py +0 -0
  262. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/health/models.py +0 -0
  263. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/health/pypi.py +0 -0
  264. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/health/registry.py +0 -0
  265. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/health/render.py +0 -0
  266. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/health/units.py +0 -0
  267. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/hooks.py +0 -0
  268. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/housekeeping.py +0 -0
  269. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/interactive.py +0 -0
  270. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/issue_store.py +0 -0
  271. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/liveness_auditor.py +0 -0
  272. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/machine_pause.py +0 -0
  273. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/merge_queue.py +0 -0
  274. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/milestone_chat.py +0 -0
  275. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/milestone_dispatch.py +0 -0
  276. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/milestone_gate.py +0 -0
  277. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/milestone_order.py +0 -0
  278. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/mock_author.py +0 -0
  279. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/models.py +0 -0
  280. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/network.py +0 -0
  281. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/new_issue_chat.py +0 -0
  282. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/notifier/__init__.py +0 -0
  283. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/notifier/baseline.py +0 -0
  284. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/notifier/cli.py +0 -0
  285. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/notifier/collect.py +0 -0
  286. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/notifier/digest.py +0 -0
  287. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/notifier/models.py +0 -0
  288. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/notifier/predicate.py +0 -0
  289. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/notifier/service.py +0 -0
  290. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/notifier/store.py +0 -0
  291. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/notifier/transport.py +0 -0
  292. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/notify.py +0 -0
  293. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/openapi.py +0 -0
  294. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/overlap_fence.py +0 -0
  295. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/parentage.py +0 -0
  296. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/parentage_github.py +0 -0
  297. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/pipeline.py +0 -0
  298. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/plan_parser.py +0 -0
  299. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/plans.py +0 -0
  300. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/platform_paths.py +0 -0
  301. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/portal_bridge.py +0 -0
  302. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/pr_body_lint.py +0 -0
  303. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/prereqs.py +0 -0
  304. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/progress.py +0 -0
  305. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/providers/__init__.py +0 -0
  306. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/providers/base.py +0 -0
  307. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/providers/opencode.py +0 -0
  308. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/reconcile.py +0 -0
  309. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/refine_chat.py +0 -0
  310. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/release_cordon.py +0 -0
  311. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/release_propagate.py +0 -0
  312. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/release_verify.py +0 -0
  313. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/release_window.py +0 -0
  314. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/reports.py +0 -0
  315. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/revalidate.py +0 -0
  316. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/review.py +0 -0
  317. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/scorecard.py +0 -0
  318. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/serve_app.py +0 -0
  319. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/skills/update-issue/SKILL.md +0 -0
  320. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/smoke.py +0 -0
  321. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/spend_ceiling.py +0 -0
  322. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/split_work.py +0 -0
  323. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/stage_projection.py +0 -0
  324. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/state.py +0 -0
  325. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/test_author.py +0 -0
  326. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/test_chat.py +0 -0
  327. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/test_orchestrator.py +0 -0
  328. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/test_report.py +0 -0
  329. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/tui_release.py +0 -0
  330. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/usage.py +0 -0
  331. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/usage_limits.py +0 -0
  332. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/usage_rollup.py +0 -0
  333. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coord/worker_events.py +0 -0
  334. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/coordinator.example.yml +0 -0
  335. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/deploy/coord-agent.service +0 -0
  336. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/deploy/coord-db-backup.service +0 -0
  337. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/deploy/coord-db-backup.sh +0 -0
  338. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/deploy/coord-db-backup.timer +0 -0
  339. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/deploy/coord-drive-queue.service +0 -0
  340. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/deploy/coord-drive-queue.timer +0 -0
  341. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/deploy/coord-notify.service +0 -0
  342. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/deploy/coord-notify.timer +0 -0
  343. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/deploy/coord-release-propagate.service +0 -0
  344. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/deploy/coord-release-propagate.timer +0 -0
  345. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/deploy/coord-release-window.service +0 -0
  346. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/deploy/coord-release-window.timer +0 -0
  347. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/deploy/coord-serve.service +0 -0
  348. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/deploy/coord-web-dist-build.service +0 -0
  349. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/deploy/coord-web-dist-build.sh +0 -0
  350. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/deploy/coord-web-dist-build.timer +0 -0
  351. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/deploy/coord-web-rollback.sh +0 -0
  352. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/deploy/coord-web.service +0 -0
  353. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/deploy/node-shim.sh +0 -0
  354. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/docs/AGENT_OPERATIONS.md +0 -0
  355. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/docs/ARCHITECTURE.md +0 -0
  356. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/docs/ARCH_SECURITY_GATES.md +0 -0
  357. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/docs/COCKPIT.md +0 -0
  358. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/docs/CONTROL_CENTER.md +0 -0
  359. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/docs/CROSS_PLATFORM.md +0 -0
  360. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/docs/CUSTOMER_PORTAL.md +0 -0
  361. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/docs/DRIVE_QUEUE.md +0 -0
  362. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/docs/EPHEMERAL_WORKERS.md +0 -0
  363. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/docs/FORGE_MIGRATION.md +0 -0
  364. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/docs/GRAPHIFY_SETUP.md +0 -0
  365. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/docs/ISSUE_GUIDANCE.md +0 -0
  366. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/docs/MAC_MINI.md +0 -0
  367. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
  368. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/docs/NOTIFIER.md +0 -0
  369. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/docs/OPENCODE_VERIFICATION.md +0 -0
  370. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/docs/OPERATING_GOTCHAS.md +0 -0
  371. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/docs/ORACLE_LOOP.md +0 -0
  372. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/docs/PHONE_WEBAPP.md +0 -0
  373. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/docs/PIPELINE_V2.md +0 -0
  374. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/docs/PLATFORM_EVOLUTION.md +0 -0
  375. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/docs/SECOND_BACKEND.md +0 -0
  376. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/docs/STORE_SERVICE.md +0 -0
  377. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/docs/TEST_FIRST_BUG_LANE.md +0 -0
  378. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/docs/WEB_CONTROL_CENTER.md +0 -0
  379. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/docs/mocks/web/README.md +0 -0
  380. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/docs/mocks/web/_tokens.css +0 -0
  381. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/docs/mocks/web/issue-detail.html +0 -0
  382. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/docs/mocks/web/pipeline-narrow.html +0 -0
  383. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/docs/mocks/web/pipeline-wide.html +0 -0
  384. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/graphify-out/.gitignore +0 -0
  385. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/install-agent.sh +0 -0
  386. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/pyproject.toml +0 -0
  387. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/scripts/audit_review_verdict_overrides.py +0 -0
  388. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/scripts/azure-workers/bootstrap-shared.sh +0 -0
  389. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/scripts/azure-workers/build-worker-image.sh +0 -0
  390. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/scripts/azure-workers/coordinator-machine.py +0 -0
  391. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/scripts/azure-workers/epic-down.sh +0 -0
  392. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/scripts/azure-workers/epic-up.sh +0 -0
  393. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/scripts/azure-workers/preflight.sh +0 -0
  394. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/scripts/azure-workers/provision-worker.sh +0 -0
  395. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
  396. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/scripts/azure-workers/tailnet-acl.hujson +0 -0
  397. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/scripts/azure-workers/verify-github-token.sh +0 -0
  398. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/scripts/codegen.py +0 -0
  399. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/scripts/coord-test-runner.sh +0 -0
  400. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/scripts/drive-batch.sh +0 -0
  401. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/scripts/gen_board_fixture.py +0 -0
  402. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/scripts/next_release_tag.py +0 -0
  403. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/scripts/run_tests_in_populated_home.sh +0 -0
  404. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/scripts/run_tests_without_gh.sh +0 -0
  405. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/scripts/smoke_437_interactive.py +0 -0
  406. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/scripts/verify_878_review_capture.py +0 -0
  407. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/scripts/verify_release_published.py +0 -0
  408. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/scripts/verify_release_wheel.py +0 -0
  409. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/setup.cfg +0 -0
  410. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/SMOKE_SET.md +0 -0
  411. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/__init__.py +0 -0
  412. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/acceptance/ms-33/audit_1039.rs +0 -0
  413. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/acceptance/ms-33/contract.md +0 -0
  414. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/acceptance/ms-33/manifest.yml +0 -0
  415. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/acceptance/ms-33/mocks/audit-panel-detail.screen +0 -0
  416. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/acceptance/ms-33/mocks/audit-panel-empty.screen +0 -0
  417. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/acceptance/ms-33/mocks/audit-panel-filters.screen +0 -0
  418. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/acceptance/ms-33/mocks/audit-panel-populated.screen +0 -0
  419. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/acceptance/ms-37/conftest.py +0 -0
  420. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/acceptance/ms-37/contract.md +0 -0
  421. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/acceptance/ms-37/manifest.yml +0 -0
  422. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
  423. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
  424. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/acceptance/ms-38/contract.md +0 -0
  425. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/acceptance/ms-38/manifest.yml +0 -0
  426. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/acceptance/ms-38/mocks/plans-base.screen +0 -0
  427. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/acceptance/ms-38/mocks/plans-detail-pane.screen +0 -0
  428. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/acceptance/ms-38/mocks/plans-help-overlay.screen +0 -0
  429. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/acceptance/ms-38/mocks/plans-palette.screen +0 -0
  430. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/acceptance/ms-38/mocks/plans-rightclick-epic.screen +0 -0
  431. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/acceptance/ms-38/mocks/plans-rightclick-header.screen +0 -0
  432. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/acceptance/ms-38/mocks/plans-rightclick-stub.screen +0 -0
  433. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/acceptance/ms-38/plans_detail_1122.rs +0 -0
  434. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/acceptance/ms-38/plans_help_1124.rs +0 -0
  435. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/acceptance/ms-38/plans_rightclick_1123.rs +0 -0
  436. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/acceptance/ms-51/contract.md +0 -0
  437. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
  438. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
  439. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/acceptance/ms-51/manifest.yml +0 -0
  440. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
  441. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/acceptance/ms-51/tsconfig.json +0 -0
  442. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
  443. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/conftest.py +0 -0
  444. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/fixtures/board-pipeline-basic.json +0 -0
  445. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
  446. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
  447. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/fixtures/opencode_run_sample.jsonl +0 -0
  448. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/fixtures/playwright/all_pass.json +0 -0
  449. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/fixtures/playwright/global_setup_crash.json +0 -0
  450. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/fixtures/playwright/mixed_fail.json +0 -0
  451. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/fixtures/playwright/retry_then_pass.json +0 -0
  452. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
  453. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/fixtures/playwright/skip.json +0 -0
  454. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/fixtures/playwright/truncated.json +0 -0
  455. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
  456. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
  457. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
  458. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
  459. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
  460. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
  461. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
  462. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
  463. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_acceptance.py +0 -0
  464. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_acceptance_drivers.py +0 -0
  465. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_agent.py +0 -0
  466. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_agent_api_error.py +0 -0
  467. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_agent_app.py +0 -0
  468. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_agent_branch_base.py +0 -0
  469. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_agent_branch_capture.py +0 -0
  470. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_agent_config_free_1712.py +0 -0
  471. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_agent_deploy_units_endpoint.py +0 -0
  472. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_agent_dirty_worktree.py +0 -0
  473. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_agent_graph_self_heal.py +0 -0
  474. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_agent_health_h3.py +0 -0
  475. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_agent_idle_restart.py +0 -0
  476. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_agent_push_failure.py +0 -0
  477. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_agent_reap.py +0 -0
  478. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_agent_repos_and_pull.py +0 -0
  479. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_agent_restart_services_endpoint.py +0 -0
  480. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_agent_startup_diagnostics.py +0 -0
  481. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_agent_update.py +0 -0
  482. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_agent_update_bluegreen.py +0 -0
  483. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_agent_usage_limit.py +0 -0
  484. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_agent_zero_commit.py +0 -0
  485. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_ambient_home_isolation.py +0 -0
  486. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_approve_reject_plan.py +0 -0
  487. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_approve_usage_gate.py +0 -0
  488. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_assignment_already_recorded_daemon.py +0 -0
  489. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_audit_log.py +0 -0
  490. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_audit_outcome.py +0 -0
  491. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_audit_query.py +0 -0
  492. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_auto_loop.py +0 -0
  493. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_auto_release_publish_2035.py +0 -0
  494. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_base_checkout_restore.py +0 -0
  495. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_board_cap_762.py +0 -0
  496. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_board_fixture.py +0 -0
  497. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_board_read_path.py +0 -0
  498. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_board_service.py +0 -0
  499. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_board_state.py +0 -0
  500. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_board_wire.py +0 -0
  501. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_brain.py +0 -0
  502. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_branch_model.py +0 -0
  503. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_bug_intake.py +0 -0
  504. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_build_worker_image_env_update.py +0 -0
  505. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cargo_cache.py +0 -0
  506. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_ci_acceptance_gate_1950.py +0 -0
  507. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_ci_store.py +0 -0
  508. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_claim.py +0 -0
  509. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_acceptance.py +0 -0
  510. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_assign.py +0 -0
  511. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
  512. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_assign_interactive_remote.py +0 -0
  513. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_assign_provider.py +0 -0
  514. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_audit.py +0 -0
  515. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_chat_continue.py +0 -0
  516. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_diagnose_config_provenance.py +0 -0
  517. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_diagnose_graph.py +0 -0
  518. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_doctor.py +0 -0
  519. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_doctor_config_free_1801.py +0 -0
  520. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
  521. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_drive.py +0 -0
  522. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_drive_queue.py +0 -0
  523. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_escalate.py +0 -0
  524. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_fix_headless_review.py +0 -0
  525. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_gate_a.py +0 -0
  526. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_install_drift.py +0 -0
  527. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_install_skills.py +0 -0
  528. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_issue_create_label.py +0 -0
  529. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_issue_reopen.py +0 -0
  530. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_merge.py +0 -0
  531. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_milestone_assign.py +0 -0
  532. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_milestone_capture.py +0 -0
  533. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_milestone_chat_add_child.py +0 -0
  534. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_milestone_dispatch.py +0 -0
  535. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_milestone_gate_b.py +0 -0
  536. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_milestone_gate_c.py +0 -0
  537. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_milestone_order.py +0 -0
  538. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
  539. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_milestone_ship.py +0 -0
  540. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_network.py +0 -0
  541. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_new_issue_chat.py +0 -0
  542. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_plans.py +0 -0
  543. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_portal.py +0 -0
  544. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_pull_artifact.py +0 -0
  545. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_queue.py +0 -0
  546. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_reattach_sessions.py +0 -0
  547. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_refine_board.py +0 -0
  548. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_release_preflight.py +0 -0
  549. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_release_propagate.py +0 -0
  550. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_release_window.py +0 -0
  551. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_scorecard.py +0 -0
  552. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_set_review_findings.py +0 -0
  553. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_status_advisory_terminal.py +0 -0
  554. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_status_merge_queue.py +0 -0
  555. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_status_provider.py +0 -0
  556. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_status_review_finalizing.py +0 -0
  557. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_status_test_failed_tag.py +0 -0
  558. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_status_usage_limit.py +0 -0
  559. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_sync_comments_873.py +0 -0
  560. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_test_plan.py +0 -0
  561. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_track.py +0 -0
  562. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_tui_update.py +0 -0
  563. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cli_wait.py +0 -0
  564. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_client_base_install.py +0 -0
  565. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_comments.py +0 -0
  566. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_completion_summary.py +0 -0
  567. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_config.py +0 -0
  568. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_config_acceptance.py +0 -0
  569. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_config_audit.py +0 -0
  570. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_config_pricing.py +0 -0
  571. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_config_usage_gate.py +0 -0
  572. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_conflict_fix.py +0 -0
  573. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_conflict_fix_semantic.py +0 -0
  574. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_coord_test.py +0 -0
  575. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_coord_test_runner_baseline.py +0 -0
  576. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_coord_test_runner_routing.py +0 -0
  577. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_coord_test_runner_toolchain.py +0 -0
  578. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_coord_web_sse_restart_live.py +0 -0
  579. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_coordinator_machine.py +0 -0
  580. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_cross_platform_imports.py +0 -0
  581. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_dashboard.py +0 -0
  582. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_dashboard_fixture.py +0 -0
  583. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_dashboard_terminal.py +0 -0
  584. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_dashboard_terminal_live.py +0 -0
  585. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_db.py +0 -0
  586. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_dead_end.py +0 -0
  587. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_deploy_coord_db_backup.py +0 -0
  588. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_deploy_coord_web_dist.py +0 -0
  589. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_deploy_coord_web_rollback.py +0 -0
  590. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_deploy_drive_queue_unit.py +0 -0
  591. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_deploy_manifest.py +0 -0
  592. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_deploy_units_lane.py +0 -0
  593. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_deploy_web_unit.py +0 -0
  594. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_deps.py +0 -0
  595. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_diagnose.py +0 -0
  596. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_dispatch.py +0 -0
  597. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_dispatch_target_validation.py +0 -0
  598. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_dist_name.py +0 -0
  599. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_done_housekeeping.py +0 -0
  600. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_drive.py +0 -0
  601. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_drive_queue.py +0 -0
  602. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_drive_state.py +0 -0
  603. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_drive_tmux.py +0 -0
  604. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_epic_up_capability_detection.py +0 -0
  605. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
  606. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_epic_up_image_provenance.py +0 -0
  607. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_errors.py +0 -0
  608. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_events.py +0 -0
  609. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_failure_class.py +0 -0
  610. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_filelock.py +0 -0
  611. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
  612. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_fix_of_force_override.py +0 -0
  613. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_fleet_config_health.py +0 -0
  614. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_fleet_health_probes.py +0 -0
  615. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_fleet_health_snapshot.py +0 -0
  616. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_freshness.py +0 -0
  617. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_gate_a.py +0 -0
  618. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_gate_b.py +0 -0
  619. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_gate_snapshot_staleness.py +0 -0
  620. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_gates.py +0 -0
  621. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_generated_types_fixture.py +0 -0
  622. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_github_ops.py +0 -0
  623. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_goal.py +0 -0
  624. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_graph_health.py +0 -0
  625. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_handoff.py +0 -0
  626. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_health_checks.py +0 -0
  627. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_health_cli.py +0 -0
  628. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_health_cli_graph.py +0 -0
  629. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_health_config.py +0 -0
  630. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_health_context.py +0 -0
  631. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_health_deploy_lane_facts.py +0 -0
  632. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_health_incident_regression.py +0 -0
  633. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_health_pypi.py +0 -0
  634. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_health_registry.py +0 -0
  635. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_health_timer_active.py +0 -0
  636. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_health_toolchain.py +0 -0
  637. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_health_unit_drift.py +0 -0
  638. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_health_unit_enablement.py +0 -0
  639. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_hooks.py +0 -0
  640. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_human_attended_437.py +0 -0
  641. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_init.py +0 -0
  642. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_integration.py +0 -0
  643. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_interactive_briefing_echo.py +0 -0
  644. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_interactive_prefill_state.py +0 -0
  645. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_interactive_session_relaunch.py +0 -0
  646. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_interactive_test_verdict_backstop.py +0 -0
  647. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_interactive_token_attribution.py +0 -0
  648. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_interactive_worktree.py +0 -0
  649. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_issue_store_seam.py +0 -0
  650. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_liveness_auditor.py +0 -0
  651. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_liveness_notify.py +0 -0
  652. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_machine_pause.py +0 -0
  653. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_merge_queue.py +0 -0
  654. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_merge_verify.py +0 -0
  655. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_milestone_chat.py +0 -0
  656. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_milestone_dispatch.py +0 -0
  657. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_milestone_gate.py +0 -0
  658. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_milestone_order.py +0 -0
  659. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_milestone_seam.py +0 -0
  660. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_mock_author.py +0 -0
  661. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_model_tiering.py +0 -0
  662. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_models.py +0 -0
  663. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_models_config_labels.py +0 -0
  664. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_needs_attention.py +0 -0
  665. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_network.py +0 -0
  666. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_new_issue_chat.py +0 -0
  667. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_next_release_tag.py +0 -0
  668. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_no_direct_gh_calls.py +0 -0
  669. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_node_shim.py +0 -0
  670. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_notifier_baseline.py +0 -0
  671. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_notifier_cli.py +0 -0
  672. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_notifier_collect.py +0 -0
  673. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_notifier_config.py +0 -0
  674. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_notifier_drive_seam.py +0 -0
  675. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_notifier_isolation.py +0 -0
  676. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_notifier_predicate.py +0 -0
  677. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_notifier_quiet_hours.py +0 -0
  678. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_notifier_service.py +0 -0
  679. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_notify.py +0 -0
  680. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_notify_drain.py +0 -0
  681. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_openapi.py +0 -0
  682. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_operational_defaults.py +0 -0
  683. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_overlap_fence.py +0 -0
  684. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_packaged_deploy_units.py +0 -0
  685. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_parentage.py +0 -0
  686. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_paste_landed.py +0 -0
  687. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_pipeline.py +0 -0
  688. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_plan_followup_approve_plan_command.py +0 -0
  689. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_plan_followup_pr_command.py +0 -0
  690. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_plan_followup_review_command.py +0 -0
  691. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_plan_only.py +0 -0
  692. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_plan_parser.py +0 -0
  693. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_platform_paths.py +0 -0
  694. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_portal_bridge.py +0 -0
  695. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_portal_config.py +0 -0
  696. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_pr_body_lint.py +0 -0
  697. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_prereqs.py +0 -0
  698. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_production_db_guard.py +0 -0
  699. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_progress.py +0 -0
  700. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_provider_seam.py +0 -0
  701. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_providers.py +0 -0
  702. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_providers_config_labels.py +0 -0
  703. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_quiet_hours.py +0 -0
  704. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_quiet_hours_store_2146.py +0 -0
  705. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_reap_merged_sessions.py +0 -0
  706. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_reap_stale_interactive_tick.py +0 -0
  707. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_reconcile_branch.py +0 -0
  708. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_reconcile_completions.py +0 -0
  709. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_reconcile_merges.py +0 -0
  710. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_reconcile_usage_limit_done.py +0 -0
  711. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_refine_chat.py +0 -0
  712. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_release_cordon_2101.py +0 -0
  713. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_release_propagate.py +0 -0
  714. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_release_unified_1242.py +0 -0
  715. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_release_verify.py +0 -0
  716. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_release_window.py +0 -0
  717. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_remote_auto_prune.py +0 -0
  718. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_remote_interactive_reaper.py +0 -0
  719. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_report_result_push.py +0 -0
  720. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_reports.py +0 -0
  721. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_retry.py +0 -0
  722. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_retry_advisory_1606.py +0 -0
  723. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_retry_type_1636.py +0 -0
  724. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_revalidate.py +0 -0
  725. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_review.py +0 -0
  726. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_review_end_review_without_verdict.py +0 -0
  727. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_review_parse_failure_diagnostic.py +0 -0
  728. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_review_reaffirm.py +0 -0
  729. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_review_state.py +0 -0
  730. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_review_verdict_backstop.py +0 -0
  731. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_review_verdict_override_audit.py +0 -0
  732. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_review_verdict_relay.py +0 -0
  733. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_review_zero_commits.py +0 -0
  734. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_scoped_review_wiring.py +0 -0
  735. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_scorecard.py +0 -0
  736. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_serve.py +0 -0
  737. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_serve_app_board_trim.py +0 -0
  738. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_session.py +0 -0
  739. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_slice_issue_attribution.py +0 -0
  740. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_smoke.py +0 -0
  741. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_smoke_live_checkout_restore.py +0 -0
  742. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_smoke_workflow.py +0 -0
  743. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_spend_ceiling.py +0 -0
  744. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_spend_ceiling_coordinator.py +0 -0
  745. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_split.py +0 -0
  746. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_split_work.py +0 -0
  747. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_stage_projection.py +0 -0
  748. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_stalled_pipeline.py +0 -0
  749. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_state.py +0 -0
  750. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_state_review_findings_daemon.py +0 -0
  751. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_status_fleet_footer.py +0 -0
  752. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_stop_1567.py +0 -0
  753. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_stuck.py +0 -0
  754. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_terminal_command.py +0 -0
  755. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_test_author.py +0 -0
  756. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_test_chat.py +0 -0
  757. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_test_orchestrator.py +0 -0
  758. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_test_report.py +0 -0
  759. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_test_verdict_parsing.py +0 -0
  760. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_test_verdict_transcript_floor.py +0 -0
  761. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_thin_client_board_audit.py +0 -0
  762. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_thin_client_config_load_1080.py +0 -0
  763. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_thin_client_daemon_routing_906.py +0 -0
  764. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_tmux_host.py +0 -0
  765. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_tmux_session.py +0 -0
  766. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_transcript_floor.py +0 -0
  767. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_usage.py +0 -0
  768. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_usage_limits.py +0 -0
  769. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_usage_rollup.py +0 -0
  770. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_venv_live_install_2121.py +0 -0
  771. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_version_single_source.py +0 -0
  772. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_watch.py +0 -0
  773. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_worker_events.py +0 -0
  774. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_worker_image_pin_sync.py +0 -0
  775. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_worker_safety.py +0 -0
  776. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_worktree.py +0 -0
  777. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tests/test_worktree_rmtree_chokepoint.py +0 -0
  778. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/Cargo.lock +0 -0
  779. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/Cargo.toml +0 -0
  780. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/cargo-config-local-quadraui.toml.example +0 -0
  781. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/src/app/audit.rs +0 -0
  782. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/src/app/chat.rs +0 -0
  783. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/src/app/data.rs +0 -0
  784. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/src/app/dialogs.rs +0 -0
  785. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/src/app/drive.rs +0 -0
  786. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/src/app/drive_queue.rs +0 -0
  787. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/src/app/escalation.rs +0 -0
  788. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/src/app/events.rs +0 -0
  789. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/src/app/fixtures.rs +0 -0
  790. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/src/app/fleet_health.rs +0 -0
  791. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/src/app/fleet_sessions.rs +0 -0
  792. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/src/app/fleet_terminals.rs +0 -0
  793. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/src/app/format.rs +0 -0
  794. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/src/app/milestone_dag.rs +0 -0
  795. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/src/app/mod.rs +0 -0
  796. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/src/app/msv.rs +0 -0
  797. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/src/app/pipeline.rs +0 -0
  798. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/src/app/plans.rs +0 -0
  799. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/src/app/render.rs +0 -0
  800. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/src/app/reports.rs +0 -0
  801. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/src/app/sessions.rs +0 -0
  802. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/src/app/settings_ui.rs +0 -0
  803. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/src/app/sidebar.rs +0 -0
  804. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/src/app/terminal.rs +0 -0
  805. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/src/app/tests.rs +0 -0
  806. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/src/app/types.rs +0 -0
  807. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/src/app/workspace.rs +0 -0
  808. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/src/bin/gtk.rs +0 -0
  809. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/src/commands.rs +0 -0
  810. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/src/lib.rs +0 -0
  811. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/src/main.rs +0 -0
  812. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/src/settings.rs +0 -0
  813. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/tests/acceptance.rs +0 -0
  814. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/tests/cli.rs +0 -0
  815. {code_coordinator-0.5.59 → code_coordinator-0.5.60}/tui/tests/fixtures/board_sample.json +0 -0
@@ -100,6 +100,16 @@ coord approve --dry-run 1,2
100
100
  coord assign --dry-run precision claude-coordinator 42
101
101
  ```
102
102
 
103
+ **Workers: scope your test run to your diff, never `pytest` bare (#2169).**
104
+ The full suite exceeds Claude Code's 600s Bash ceiling on this repo and
105
+ duplicates the Test stage + CI, which both run it against your pushed SHA
106
+ regardless. Run just the file(s) that mirror what you changed — `pytest
107
+ tests/test_<module>.py` for a `coord/<module>.py` change, `cargo test` from
108
+ `tui/` scoped with a test-name filter for a `tui/**` change. To see what
109
+ the Test stage itself would run for your diff (and confirm you're not
110
+ missing a suite), `scripts/coord-test-runner.sh <worktree> --print-routing`
111
+ computes the routing without actually building or testing anything.
112
+
103
113
  ## Key Design Decisions
104
114
 
105
115
  - **No API key needed.** Everything uses `claude -p` which runs on Max/Pro subscription via OAuth.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-coordinator
3
- Version: 0.5.59
3
+ Version: 0.5.60
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.59
3
+ Version: 0.5.60
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
@@ -720,6 +720,7 @@ tests/test_watch.py
720
720
  tests/test_worker_events.py
721
721
  tests/test_worker_image_pin_sync.py
722
722
  tests/test_worker_safety.py
723
+ tests/test_worker_test_scoping.py
723
724
  tests/test_worktree.py
724
725
  tests/test_worktree_rmtree_chokepoint.py
725
726
  tests/acceptance/ms-33/audit_1039.rs
@@ -750,6 +750,7 @@
750
750
  "tests/test_worker_events.py",
751
751
  "tests/test_worker_image_pin_sync.py",
752
752
  "tests/test_worker_safety.py",
753
+ "tests/test_worker_test_scoping.py",
753
754
  "tests/test_worktree.py",
754
755
  "tests/test_worktree_rmtree_chokepoint.py",
755
756
  "tui/Cargo.lock",
@@ -1,7 +1,7 @@
1
1
  {
2
- "tag": "0.5.59",
2
+ "tag": "0.5.60",
3
3
  "distance": 0,
4
- "node": "g3cb11f81fa08e124d66859415a0b01368d4da64a",
4
+ "node": "ge01001eaf8201fb10e8bd9b1a0f6c018d93b3fb8",
5
5
  "dirty": false,
6
6
  "branch": "HEAD",
7
7
  "node_date": "2026-08-13"
@@ -2845,9 +2845,17 @@ This session is ONE-SHOT and non-interactive (#1394):
2845
2845
  completion notifications will NEVER reach you — nothing wakes you up.
2846
2846
  - NEVER start a long-running command in the background and then end your \
2847
2847
  turn waiting for it (no `run_in_background`, no `&`, no "I'll wait for the \
2848
- test run to finish"). Run it in the FOREGROUND and block until it returns, \
2849
- or raise the timeout, or skip it and say so. If you end your turn waiting, \
2850
- the session is over and your work is thrown away.
2848
+ test run to finish") there is no next turn for a notification to land \
2849
+ in, so ending your turn that way throws the work away. Prefer running it \
2850
+ in the FOREGROUND and blocking until it returns. If it genuinely cannot \
2851
+ finish inside one Bash call, you may background it and poll it yourself, \
2852
+ in bounded steps, from THIS SAME still-running session — `Monitor`, or \
2853
+ repeated `TaskOutput` calls with a bounded `timeout`, never a foreground \
2854
+ loop that blocks past the ceiling (`until ! pgrep ...; do sleep ...; done` \
2855
+ hits the identical 600s wall) and never a final message that leaves it \
2856
+ running unattended and relies on being woken back up. Otherwise, raise the \
2857
+ timeout or skip it and say so. If you end your turn waiting, the session \
2858
+ is over and your work is thrown away.
2851
2859
  - ALWAYS `git add`, `git commit`, and `git push origin HEAD` BEFORE your \
2852
2860
  final message — even if the build is broken, the tests are failing, or you \
2853
2861
  ran out of time. Uncommitted changes are destroyed when the session ends. \
@@ -2883,8 +2891,25 @@ intentional `#[allow]` with reason, a deferred refactor flagged \
2883
2891
  elsewhere), explicitly call it out in your final message with the \
2884
2892
  reason. Don't silently ship warnings.
2885
2893
  - Re-run the build after fixes to confirm clean output.
2886
- - Run the project's test command (`cargo test`, `pytest`, etc.) and \
2887
- confirm it passes before declaring done.
2894
+ - Run only the tests that cover your diff never the project's whole \
2895
+ test suite. A full suite routinely exceeds this tool's 600-second Bash \
2896
+ ceiling, and a worker that tries to shepherd it past that wall (splitting \
2897
+ it into chunks, backgrounding it and blocking on a poll loop, ...) burns \
2898
+ most of a session on that instead of the fix, for no net-new signal: the \
2899
+ Test stage and CI both re-run the FULL suite against your pushed SHA right \
2900
+ after you, on a clean checkout, which is strictly better evidence than a \
2901
+ worker's own partial run (#2169). Find the test file(s)/module(s) whose \
2902
+ name or path mirrors what you changed (e.g. `tests/test_<module>.py` for \
2903
+ `coord/<module>.py`, the crate-local `#[cfg(test)]` block for a Rust file) \
2904
+ and run just those — confirm they pass before declaring done.
2905
+ - Exception: if this assignment IS an oracle-loop acceptance round (you \
2906
+ were told to run `coord acceptance run --issue N`), keep running that \
2907
+ sealed slice as many times as it takes to go green. It is the loop's \
2908
+ convergence signal, not duplicated effort, and the scoping rule above does \
2909
+ not apply to it.
2910
+ - If even the scoped run genuinely cannot finish in time, follow the \
2911
+ background-and-poll pattern in the ONE-SHOT section above — do not invent \
2912
+ a chunk-and-loop workaround.
2888
2913
 
2889
2914
  #252: before exiting, emit a SMOKE_TESTS block telling the human what to \
2890
2915
  manually verify. You changed the code; you know what's worth poking.
@@ -3668,7 +3693,13 @@ def default_worker_command(spec: AssignmentSpec, *, binary: str = DEFAULT_WORKER
3668
3693
  else:
3669
3694
  system_prompt = spec.system_prompt if spec.system_prompt else WORKER_SYSTEM_PROMPT
3670
3695
  system_prompt += build_deny_prompt(spec.deny_commands)
3671
- allowed_tools = "Read,Edit,Write,Bash"
3696
+ # #2169: `Monitor` is the sanctioned way to poll a backgrounded
3697
+ # long-running command in bounded steps (see the ONE-SHOT section of
3698
+ # WORKER_SYSTEM_PROMPT) instead of a foreground loop that blocks
3699
+ # past the 600s Bash ceiling. `TaskOutput`/`TaskStop` were already
3700
+ # reachable without being in this list; `Monitor` was the one
3701
+ # observed denied.
3702
+ allowed_tools = "Read,Edit,Write,Bash,Monitor"
3672
3703
 
3673
3704
  # NOTE: briefing is NOT passed as a positional arg — it is written to
3674
3705
  # stdin as the first stream-json user message by ``_spawn``.
@@ -173,7 +173,10 @@ class ClaudeProvider(Provider):
173
173
  else:
174
174
  _sp = spec.system_prompt if spec.system_prompt else WORKER_SYSTEM_PROMPT
175
175
  _sp += build_deny_prompt(spec.deny_commands)
176
- _at = "Read,Edit,Write,Bash"
176
+ # #2169: keep in sync with default_worker_command's identical
177
+ # branch — Monitor is the sanctioned bounded-poll tool for a
178
+ # backgrounded long-running command.
179
+ _at = "Read,Edit,Write,Bash,Monitor"
177
180
 
178
181
  if system_prompt is None:
179
182
  system_prompt = _sp
@@ -488,7 +488,11 @@ class ClaudePtyProvider(Provider):
488
488
  else:
489
489
  _sp = spec.system_prompt if spec.system_prompt else WORKER_SYSTEM_PROMPT
490
490
  _sp += build_deny_prompt(spec.deny_commands)
491
- _at = "Read,Edit,Write,Bash"
491
+ # #2169: keep in sync with default_worker_command's and
492
+ # ClaudeProvider.build_command's identical branch — Monitor
493
+ # is the sanctioned bounded-poll tool for a backgrounded
494
+ # long-running command.
495
+ _at = "Read,Edit,Write,Bash,Monitor"
492
496
 
493
497
  if system_prompt is None:
494
498
  system_prompt = _sp
@@ -199,6 +199,28 @@ def test_pty_build_command_branches_match_claude_for_plan_type() -> None:
199
199
  assert argv[argv.index("--allowedTools") + 1] == legacy_at
200
200
 
201
201
 
202
+ @pytest.mark.parametrize("spec_type", ["work", "review", "smoke", "conflict-fix", "fix"])
203
+ def test_pty_build_command_branches_match_claude_for_work_type(spec_type: str) -> None:
204
+ """#2169: the generic-worker (``else``) branch must stay in parity too.
205
+
206
+ ``default_worker_command`` and ``ClaudeProvider.build_command`` both
207
+ grant ``Monitor`` alongside ``Read,Edit,Write,Bash`` for write-capable
208
+ spec types so a worker can bound-poll a backgrounded long-running
209
+ command. ``ClaudePtyProvider.build_command`` shares the same
210
+ system-prompt/allowed-tools logic and must not drift from it — this
211
+ regression-guards the drift where only two of the three call sites
212
+ were updated to add ``Monitor``.
213
+ """
214
+ spec = _make_spec(type=spec_type)
215
+ argv = ClaudePtyProvider().build_command(spec)
216
+ legacy = default_worker_command(spec)
217
+ legacy_sp = legacy[legacy.index("--system-prompt") + 1]
218
+ legacy_at = legacy[legacy.index("--allowedTools") + 1]
219
+ assert argv[argv.index("--system-prompt") + 1] == legacy_sp
220
+ assert argv[argv.index("--allowedTools") + 1] == legacy_at
221
+ assert "Monitor" in argv[argv.index("--allowedTools") + 1]
222
+
223
+
202
224
  # ── ClaudePtyProvider: capabilities ──────────────────────────────────────────
203
225
 
204
226
 
@@ -0,0 +1,162 @@
1
+ """Regression tests for #2169 — workers were told to run the project's
2
+ *whole* test command before declaring done. On this repo (and others with a
3
+ slow suite) that routinely exceeds Claude Code's 600-second hard Bash
4
+ ceiling: the call is killed with no output, and workers improvised
5
+ increasingly baroque workarounds (chunking the suite, backgrounding it and
6
+ blocking on a poll loop that hits the identical 600s wall) that burned the
7
+ majority of a work leg's wall clock for zero signal the Test stage and CI
8
+ don't already produce independently.
9
+
10
+ Covers:
11
+ * the "run the project's test command" phrasing must NOT reappear verbatim
12
+ (the exact bug being fixed) — a regression guard;
13
+ * the prompt instead tells the worker to scope its run to the files/suites
14
+ covering its diff;
15
+ * the oracle loop's acceptance carve-out survives — `coord acceptance run
16
+ --issue N` must still be run repeatedly, not scoped down or skipped, or
17
+ the oracle loop's whole convergence design (docs/ORACLE_LOOP.md) breaks;
18
+ * the sanctioned bounded-poll pattern (`Monitor` / `TaskOutput`) is named in
19
+ the prompt, and `Monitor` is actually reachable — added to the worker's
20
+ `--allowedTools` so the pattern isn't dead advice (#2158's fix leg had it
21
+ denied and fell back to a blocking `until` loop that hit the same wall).
22
+ """
23
+
24
+ from __future__ import annotations
25
+
26
+ import pytest
27
+
28
+ from coord.agent import (
29
+ WORKER_SYSTEM_PROMPT,
30
+ AssignmentSpec,
31
+ default_worker_command,
32
+ )
33
+ from coord.providers.claude import ClaudeProvider
34
+
35
+
36
+ def _work_spec(**overrides) -> AssignmentSpec:
37
+ base = dict(
38
+ repo_name="api", repo_path="/tmp/api", issue_number=2169,
39
+ issue_title="scope worker tests", briefing="b", branch="main",
40
+ type="work",
41
+ )
42
+ base.update(overrides)
43
+ return AssignmentSpec(**base)
44
+
45
+
46
+ # ── regression guard: the exact bug must not reappear ────────────────────────
47
+
48
+
49
+ def test_worker_system_prompt_does_not_tell_workers_to_run_whole_suite() -> None:
50
+ """The load-bearing bug: this literal instruction sent workers spelunking
51
+ through 600s timeouts trying to run a full suite that was never their
52
+ job — the Test stage and CI both re-run it against the pushed SHA."""
53
+ assert (
54
+ "Run the project's test command" not in WORKER_SYSTEM_PROMPT
55
+ ), "the pre-#2169 whole-suite instruction has reappeared in WORKER_SYSTEM_PROMPT"
56
+
57
+
58
+ # ── the worker is told to scope its run to the diff ──────────────────────────
59
+
60
+
61
+ def test_worker_system_prompt_instructs_scoping_to_the_diff() -> None:
62
+ p = WORKER_SYSTEM_PROMPT
63
+ assert "Before declaring done" in p
64
+ flat = " ".join(p.split())
65
+ assert "Run only the tests that cover your diff" in flat
66
+ assert "never the project's whole test suite" in flat
67
+ # Names the actual mechanism: the Test stage + CI already do the full run.
68
+ assert "Test stage and CI both re-run the FULL suite" in flat
69
+ assert "#2169" in flat
70
+
71
+
72
+ def test_worker_system_prompt_names_the_600s_ceiling() -> None:
73
+ """Explaining *why* (not just *what*) is what stops a worker from
74
+ reinventing the same workaround under a different name."""
75
+ assert "600-second" in WORKER_SYSTEM_PROMPT or "600s" in WORKER_SYSTEM_PROMPT
76
+
77
+
78
+ def test_worker_system_prompt_forbids_the_observed_workarounds() -> None:
79
+ """#2158: the worker split `ls tests/*.py` into thirds and separately
80
+ tried backgrounding + a blocking `until ! pgrep` poll. Both must be
81
+ named as the anti-pattern, not left for the next worker to reinvent."""
82
+ flat = " ".join(WORKER_SYSTEM_PROMPT.split())
83
+ assert "chunk-and-loop workaround" in flat or "splitting it into chunks" in flat
84
+
85
+
86
+ # ── oracle loop carve-out must survive ────────────────────────────────────────
87
+
88
+
89
+ def test_worker_system_prompt_carves_out_oracle_acceptance_runs() -> None:
90
+ """docs/ORACLE_LOOP.md: the sealed acceptance slice run repeatedly, warm,
91
+ in-session IS the convergence design — a scoping instruction that
92
+ silently swept this up would disable the oracle loop's inner loop."""
93
+ flat = " ".join(WORKER_SYSTEM_PROMPT.split())
94
+ assert "coord acceptance run --issue N" in flat
95
+ assert "oracle-loop acceptance round" in flat
96
+ assert "keep running" in flat
97
+ assert "does not apply to it" in flat
98
+
99
+
100
+ # ── the bounded-poll pattern is named, and Monitor is actually usable ────────
101
+
102
+
103
+ def test_worker_system_prompt_names_bounded_poll_pattern_not_blocking_loop() -> None:
104
+ p = WORKER_SYSTEM_PROMPT
105
+ flat = " ".join(p.split())
106
+ assert "Monitor" in flat
107
+ assert "TaskOutput" in flat
108
+ # The exact failure mode from #2158's fix leg — must be named as wrong.
109
+ assert "until ! pgrep" in flat or "blocks past the ceiling" in flat
110
+ # #1394 invariant must still hold: never end the turn to wait passively.
111
+ assert "ONE-SHOT" in p
112
+ assert "run_in_background" in p
113
+ assert "no next turn" in p.lower()
114
+
115
+
116
+ def test_default_worker_command_grants_monitor_for_work_type() -> None:
117
+ """Advice to use Monitor is dead advice if the tool is denied — #2158's
118
+ fix leg reached for it via ToolSearch and got `permission_denied`."""
119
+ argv = default_worker_command(_work_spec())
120
+ allowed = argv[argv.index("--allowedTools") + 1]
121
+ assert "Monitor" in allowed.split(",")
122
+ # Existing capabilities must not have been dropped in the process.
123
+ for tool in ("Read", "Edit", "Write", "Bash"):
124
+ assert tool in allowed.split(",")
125
+
126
+
127
+ @pytest.mark.parametrize("spec_type", ["review", "fix", "smoke", "conflict-fix"])
128
+ def test_default_worker_command_other_write_types_also_get_monitor(spec_type: str) -> None:
129
+ """`review`/`fix`/`smoke`/`conflict-fix` all fall through the same `else`
130
+ branch as `work` — confirm the grant isn't accidentally work-only."""
131
+ argv = default_worker_command(_work_spec(type=spec_type))
132
+ allowed = argv[argv.index("--allowedTools") + 1]
133
+ assert "Monitor" in allowed.split(",")
134
+
135
+
136
+ def test_mock_author_type_does_not_gain_monitor() -> None:
137
+ """Scope check: the Monitor grant is deliberately added to the generic
138
+ worker branch only, not copy-pasted onto every Edit-capable type."""
139
+ argv = default_worker_command(_work_spec(type="mock-author"))
140
+ allowed = argv[argv.index("--allowedTools") + 1]
141
+ assert allowed == "Read,Edit,Write,Bash"
142
+
143
+
144
+ def test_plan_type_unaffected_by_monitor_grant() -> None:
145
+ argv = default_worker_command(_work_spec(type="plan"))
146
+ allowed = argv[argv.index("--allowedTools") + 1]
147
+ assert allowed == "Read,Bash"
148
+
149
+
150
+ # ── ClaudeProvider parity (coord/providers/claude.py is a documented direct
151
+ # transcription of default_worker_command; #2169's Monitor grant must be
152
+ # mirrored there or the two providers silently diverge) ──────────────────
153
+
154
+
155
+ def test_claude_provider_parity_includes_monitor_grant() -> None:
156
+ spec = _work_spec()
157
+ legacy = default_worker_command(spec)
158
+ provider_result = ClaudeProvider().build_command(spec)
159
+ legacy_allowed = legacy[legacy.index("--allowedTools") + 1]
160
+ provider_allowed = provider_result[provider_result.index("--allowedTools") + 1]
161
+ assert provider_allowed == legacy_allowed
162
+ assert "Monitor" in provider_allowed.split(",")