code-coordinator 0.5.68__tar.gz → 0.5.70__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.
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/PKG-INFO +1 -1
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/code_coordinator.egg-info/PKG-INFO +1 -1
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/code_coordinator.egg-info/scm_version.json +2 -2
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/agent.py +77 -3
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_agent.py +124 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_operational_defaults.py +111 -1
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/.claude/commands/board.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/.claude/commands/complete-session.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/.claude/commands/coordinator.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/.githooks/_lib.sh +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/.githooks/post-checkout +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/.githooks/post-commit +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/.githooks/post-merge +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/.github/workflows/auto-release.yml +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/.github/workflows/cargo-test.yml +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/.github/workflows/publish.yml +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/.github/workflows/release-tui.yml +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/.github/workflows/test.yml +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/.gitignore +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/CLAUDE.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/GOAL.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/LICENSE +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/MANIFEST.in +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/README.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/code_coordinator.egg-info/SOURCES.txt +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/code_coordinator.egg-info/dependency_links.txt +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/code_coordinator.egg-info/entry_points.txt +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/code_coordinator.egg-info/requires.txt +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/code_coordinator.egg-info/scm_file_list.json +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/code_coordinator.egg-info/top_level.txt +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/__init__.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/_board_mapping.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/acceptance.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/acceptance_drivers.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/agent_app.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/agent_update.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/agents/opencode/.gitignore +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/agents/opencode/agents/work.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/agents/opencode/routing.jsonc +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/audit.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/auto_loop.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/board_bool_guard.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/board_service.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/board_wire.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/brain.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/branch_model.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/bug_intake.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/cargo_cache.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/ci_github.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/ci_store.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/claim.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/cli.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/client.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/commands/__init__.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/commands/_common.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/commands/acceptance.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/commands/agent_ops.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/commands/audit.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/commands/chat.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/commands/dispatch.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/commands/dispatch_workers.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/commands/drive.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/commands/drive_queue.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/commands/gate_a.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/commands/gates.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/commands/issues.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/commands/lifecycle.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/commands/merge.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/commands/milestone.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/commands/plan_followup.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/commands/plans.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/commands/portal.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/commands/release.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/commands/report.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/commands/review.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/commands/scorecard.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/commands/sessions.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/commands/setup.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/commands/status.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/commands/terminal.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/commands/test_gate.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/commands/tui.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/comments.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/config.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/conflict_fix.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dao.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/__init__.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/fixture.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/index.html +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/server.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/terminal.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/.gitignore +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/components.json +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/dist/assets/Gallery-da3qNiIw.js +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/dist/assets/Terminal-9CEnUXvW.css +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/dist/assets/Terminal-skVFCxPU.js +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/dist/assets/index-DltfZR5f.js +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/dist/assets/index-Dq4kwTdw.css +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/dist/assets/workbox-window.prod.es5-BqEJf4Xk.js +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/dist/icons/icon-192.png +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/dist/icons/icon-512.png +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/dist/icons/icon.svg +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/dist/index.html +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/dist/manifest.webmanifest +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/dist/sw.js +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/dist/workbox-e4022e15.js +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/e2e/available-gates-terminal.spec.ts +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/e2e/deep-link.spec.ts +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/e2e/fixtureServer.ts +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/e2e/live-update-fixture.spec.ts +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/e2e/realtime.spec.ts +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/e2e/shell.spec.ts +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/e2e/smoke.spec.ts +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/e2e/terminal.spec.ts +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/e2e/theme.spec.ts +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/eslint.config.js +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/index.html +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/node_modules/flatted/python/flatted.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/package-lock.json +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/package.json +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/playwright.acceptance.config.ts +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/playwright.config.ts +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/postcss.config.js +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/public/icons/icon-192.png +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/public/icons/icon-512.png +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/public/icons/icon.svg +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/App.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/api/client.ts +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/api/generated.ts +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/components/ConnectionBadge.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/components/Detail.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/components/Gallery.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/components/Home.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/components/MobileKeyBar.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/components/PanelHeader.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/components/PipelineCard.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/components/SessionCard.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/components/SessionDetail.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/components/SessionsList.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/components/Terminal.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/components/__tests__/ConnectionBadge.test.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/components/__tests__/Detail.test.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/components/__tests__/Gallery.test.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/components/__tests__/Home.test.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/components/__tests__/MobileKeyBar.test.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/components/__tests__/PipelineCard.test.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/components/__tests__/SessionCard.test.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/components/__tests__/Terminal.test.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/components/ui/badge.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/components/ui/button.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/components/ui/card.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/components/ui/dialog.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/components/ui/dropdown-menu.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/components/ui/empty-state.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/components/ui/sheet.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/components/ui/skeleton.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/components/ui/tabs.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/components/ui/theme-provider.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/components/ui/theme-toggle.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/components/ui/toast.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/components/ui/toaster.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/components/ui/tooltip.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/components/ui/use-toast.ts +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/index.css +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/lib/pipeline.ts +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/lib/utils.ts +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/main.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/realtime/RealtimeProvider.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/realtime/__tests__/RealtimeProvider.test.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/realtime/__tests__/connection.test.ts +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/realtime/connection.ts +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/realtime/events.ts +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/routes/__tests__/paths.test.ts +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/routes/paths.ts +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/shell/ActivityRail.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/shell/AppShell.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/shell/ComingSoon.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/shell/EmptyDetail.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/shell/RouteNotFound.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/shell/ShellLayout.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/shell/StatusBar.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/shell/__tests__/ShellLayout.test.tsx +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/shell/__tests__/shellState.test.ts +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/shell/__tests__/stubViewport.ts +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/shell/breakpoints.ts +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/shell/railItems.ts +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/shell/shellState.ts +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/shell/useRegionFocus.ts +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/test-setup.ts +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/src/vite-env.d.ts +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/tailwind.config.js +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/tsconfig.json +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/tsconfig.node.json +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dashboard/webapp/vite.config.ts +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/db.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dead_end.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/deploy/README.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/deploy_manifest.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/deploy_units.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/deps.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/diagnose.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dispatch.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/dist_name.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/drive.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/drive_queue.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/drive_state.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/events.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/failure_class.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/filelock.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/fleet_config_health.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/freshness.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/gate_a.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/gate_b.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/gate_snapshot.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/gates.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/github_ops.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/goal.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/graph_health.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/health/__init__.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/health/aggregate.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/health/checks/__init__.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/health/checks/agent_install.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/health/checks/cargo_targets.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/health/checks/claude_binary.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/health/checks/deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/health/checks/disk.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/health/checks/fleet_board.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/health/checks/fleet_deploy_lanes.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/health/checks/fleet_phantom.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/health/checks/fleet_unit_drift.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/health/checks/graph.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/health/checks/plan_usage.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/health/checks/repo_state.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/health/checks/spawned_coord.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/health/checks/timer_active.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/health/checks/toolchain.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/health/checks/unit_drift.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/health/checks/unit_enablement.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/health/checks/worktrees.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/health/cli.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/health/context.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/health/fleet_snapshot.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/health/models.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/health/pypi.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/health/registry.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/health/render.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/health/units.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/hooks.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/housekeeping.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/interactive.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/issue_store.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/liveness_auditor.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/machine_pause.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/merge_queue.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/milestone_chat.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/milestone_dispatch.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/milestone_gate.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/milestone_order.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/mock_author.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/models.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/network.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/new_issue_chat.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/notifier/__init__.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/notifier/baseline.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/notifier/cli.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/notifier/collect.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/notifier/digest.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/notifier/models.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/notifier/predicate.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/notifier/service.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/notifier/store.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/notifier/transport.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/notify.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/openapi.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/overlap_fence.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/parentage.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/parentage_github.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/pipeline.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/plan_parser.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/plans.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/platform_paths.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/portal_bridge.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/pr_body_lint.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/prereqs.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/progress.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/providers/__init__.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/providers/base.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/providers/claude.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/providers/claude_pty.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/providers/opencode.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/reconcile.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/refine_chat.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/release_cordon.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/release_propagate.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/release_verify.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/release_window.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/reports.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/revalidate.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/review.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/scorecard.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/serve_app.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/skills/update-issue/SKILL.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/smoke.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/spend_ceiling.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/split_work.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/stage_projection.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/state.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/test_author.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/test_chat.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/test_orchestrator.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/test_report.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/tui_release.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/usage.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/usage_limits.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/usage_rollup.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coord/worker_events.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/coordinator.example.yml +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/deploy/coord-web-dist-build.sh +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/deploy/coord-web-rollback.sh +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/deploy/node-shim.sh +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/docs/AGENT_OPERATIONS.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/docs/ARCHITECTURE.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/docs/ARCH_SECURITY_GATES.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/docs/COCKPIT.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/docs/CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/docs/CROSS_PLATFORM.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/docs/CUSTOMER_PORTAL.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/docs/DRIVE_QUEUE.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/docs/EPHEMERAL_WORKERS.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/docs/FORGE_MIGRATION.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/docs/GRAPHIFY_SETUP.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/docs/ISSUE_GUIDANCE.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/docs/MAC_MINI.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/docs/NOTIFIER.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/docs/OPENCODE_VERIFICATION.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/docs/OPERATING_GOTCHAS.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/docs/ORACLE_LOOP.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/docs/PHONE_WEBAPP.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/docs/PIPELINE_V2.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/docs/PLATFORM_EVOLUTION.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/docs/SECOND_BACKEND.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/docs/STORE_SERVICE.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/docs/TEST_FIRST_BUG_LANE.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/docs/WEB_CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/docs/mocks/web/README.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/docs/mocks/web/_tokens.css +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/docs/mocks/web/issue-detail.html +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/docs/mocks/web/pipeline-narrow.html +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/docs/mocks/web/pipeline-wide.html +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/graphify-out/.gitignore +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/install-agent.sh +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/pyproject.toml +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/scripts/audit_review_verdict_overrides.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/scripts/azure-workers/bootstrap-shared.sh +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/scripts/azure-workers/build-worker-image.sh +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/scripts/azure-workers/coordinator-machine.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/scripts/azure-workers/epic-down.sh +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/scripts/azure-workers/epic-up.sh +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/scripts/azure-workers/preflight.sh +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/scripts/azure-workers/provision-worker.sh +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/scripts/azure-workers/tailnet-acl.hujson +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/scripts/azure-workers/verify-github-token.sh +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/scripts/codegen.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/scripts/coord-test-runner.sh +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/scripts/drive-batch.sh +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/scripts/gen_board_fixture.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/scripts/next_release_tag.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/scripts/run_tests_in_populated_home.sh +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/scripts/run_tests_without_gh.sh +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/scripts/smoke_437_interactive.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/scripts/verify_878_review_capture.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/scripts/verify_release_published.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/scripts/verify_release_wheel.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/setup.cfg +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/SMOKE_SET.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/__init__.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/acceptance/ms-33/audit_1039.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/acceptance/ms-33/contract.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/acceptance/ms-33/manifest.yml +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/acceptance/ms-33/mocks/audit-panel-detail.screen +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/acceptance/ms-33/mocks/audit-panel-empty.screen +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/acceptance/ms-33/mocks/audit-panel-filters.screen +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/acceptance/ms-33/mocks/audit-panel-populated.screen +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/acceptance/ms-37/conftest.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/acceptance/ms-37/contract.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/acceptance/ms-37/manifest.yml +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/acceptance/ms-38/contract.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/acceptance/ms-38/manifest.yml +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/acceptance/ms-38/mocks/plans-base.screen +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/acceptance/ms-38/mocks/plans-detail-pane.screen +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/acceptance/ms-38/mocks/plans-help-overlay.screen +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/acceptance/ms-38/mocks/plans-palette.screen +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/acceptance/ms-38/mocks/plans-rightclick-epic.screen +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/acceptance/ms-38/mocks/plans-rightclick-header.screen +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/acceptance/ms-38/mocks/plans-rightclick-stub.screen +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/acceptance/ms-38/plans_detail_1122.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/acceptance/ms-38/plans_help_1124.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/acceptance/ms-38/plans_rightclick_1123.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/acceptance/ms-51/contract.md +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/acceptance/ms-51/manifest.yml +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/acceptance/ms-51/tsconfig.json +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/conftest.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/fixtures/board-pipeline-basic.json +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/fixtures/opencode_run_sample.jsonl +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/fixtures/playwright/all_pass.json +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/fixtures/playwright/global_setup_crash.json +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/fixtures/playwright/mixed_fail.json +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/fixtures/playwright/retry_then_pass.json +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/fixtures/playwright/skip.json +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/fixtures/playwright/truncated.json +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_acceptance.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_acceptance_drivers.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_agent_api_error.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_agent_app.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_agent_branch_base.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_agent_branch_capture.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_agent_config_free_1712.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_agent_deploy_units_endpoint.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_agent_dirty_worktree.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_agent_graph_self_heal.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_agent_health_h3.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_agent_idle_restart.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_agent_push_failure.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_agent_reap.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_agent_repos_and_pull.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_agent_restart_services_endpoint.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_agent_startup_diagnostics.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_agent_update.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_agent_update_bluegreen.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_agent_usage_limit.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_agent_zero_commit.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_ambient_home_isolation.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_approve_reject_plan.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_approve_usage_gate.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_assignment_already_recorded_daemon.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_audit_log.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_audit_outcome.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_audit_query.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_auto_loop.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_auto_release_publish_2035.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_base_checkout_restore.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_board_cap_762.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_board_fixture.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_board_read_path.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_board_service.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_board_state.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_board_wire.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_brain.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_branch_model.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_bug_intake.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_build_worker_image_env_update.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cargo_cache.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_ci_acceptance_gate_1950.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_ci_parity_2091.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_ci_store.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_claim.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_acceptance.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_assign.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_assign_interactive_remote.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_assign_provider.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_audit.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_chat_continue.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_diagnose_config_provenance.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_diagnose_graph.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_doctor.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_doctor_config_free_1801.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_drive.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_drive_queue.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_escalate.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_fix_headless_review.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_gate_a.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_install_drift.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_install_skills.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_issue_create_label.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_issue_reopen.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_merge.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_milestone_assign.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_milestone_capture.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_milestone_chat_add_child.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_milestone_gate_b.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_milestone_gate_c.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_milestone_order.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_milestone_ship.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_network.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_new_issue_chat.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_plans.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_portal.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_pull_artifact.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_queue.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_reattach_sessions.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_refine_board.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_release_preflight.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_release_propagate.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_release_window.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_scorecard.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_set_review_findings.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_status_advisory_terminal.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_status_merge_queue.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_status_provider.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_status_review_finalizing.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_status_test_failed_tag.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_status_usage_limit.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_sync_comments_873.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_test_plan.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_track.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_tui_update.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cli_wait.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_client_base_install.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_comments.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_completion_summary.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_config.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_config_acceptance.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_config_audit.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_config_pricing.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_config_usage_gate.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_conflict_fix.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_conflict_fix_semantic.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_coord_test.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_coord_test_runner_baseline.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_coord_test_runner_routing.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_coord_test_runner_toolchain.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_coord_web_sse_restart_live.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_coordinator_machine.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_cross_platform_imports.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_dashboard.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_dashboard_fixture.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_dashboard_terminal.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_dashboard_terminal_live.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_db.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_dead_end.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_deploy_coord_db_backup.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_deploy_coord_web_dist.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_deploy_coord_web_rollback.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_deploy_drive_queue_unit.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_deploy_manifest.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_deploy_units_lane.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_deploy_web_unit.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_deps.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_diagnose.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_dispatch.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_dispatch_target_validation.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_dist_name.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_done_housekeeping.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_drive.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_drive_queue.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_drive_state.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_drive_tmux.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_epic_up_capability_detection.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_epic_up_image_provenance.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_errors.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_events.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_failure_class.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_filelock.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_fix_of_force_override.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_fleet_config_health.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_fleet_health_probes.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_fleet_health_snapshot.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_freshness.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_gate_a.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_gate_b.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_gate_snapshot_staleness.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_gates.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_generated_types_fixture.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_github_ops.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_goal.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_graph_health.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_handoff.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_health_checks.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_health_cli.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_health_cli_graph.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_health_config.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_health_context.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_health_deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_health_incident_regression.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_health_pypi.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_health_registry.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_health_timer_active.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_health_toolchain.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_health_unit_drift.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_health_unit_enablement.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_hooks.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_human_attended_437.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_init.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_integration.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_interactive_briefing_echo.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_interactive_prefill_state.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_interactive_session_relaunch.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_interactive_test_verdict_backstop.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_interactive_token_attribution.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_interactive_worktree.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_issue_store_seam.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_liveness_auditor.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_liveness_notify.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_machine_pause.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_merge_queue.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_merge_verify.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_milestone_chat.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_milestone_gate.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_milestone_order.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_milestone_seam.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_mock_author.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_model_tiering.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_models.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_models_config_labels.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_needs_attention.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_network.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_new_issue_chat.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_next_release_tag.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_no_direct_gh_calls.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_node_shim.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_notifier_baseline.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_notifier_cli.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_notifier_collect.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_notifier_config.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_notifier_drive_seam.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_notifier_isolation.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_notifier_predicate.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_notifier_quiet_hours.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_notifier_service.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_notify.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_notify_drain.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_openapi.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_overlap_fence.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_packaged_deploy_units.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_parentage.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_paste_landed.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_pipeline.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_plan_followup_approve_plan_command.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_plan_followup_pr_command.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_plan_followup_review_command.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_plan_only.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_plan_parser.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_platform_paths.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_portal_bridge.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_portal_config.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_pr_body_lint.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_prereqs.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_production_db_guard.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_progress.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_provider_seam.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_providers.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_providers_config_labels.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_providers_pty.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_quiet_hours.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_quiet_hours_store_2146.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_reap_merged_sessions.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_reap_stale_interactive_tick.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_reconcile_branch.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_reconcile_completions.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_reconcile_merges.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_reconcile_usage_limit_done.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_refine_chat.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_release_cordon_2101.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_release_propagate.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_release_unified_1242.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_release_verify.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_release_window.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_remote_auto_prune.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_remote_interactive_reaper.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_report_result_push.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_reports.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_retry.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_retry_advisory_1606.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_retry_type_1636.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_revalidate.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_review.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_review_end_review_without_verdict.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_review_parse_failure_diagnostic.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_review_reaffirm.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_review_state.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_review_verdict_backstop.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_review_verdict_override_audit.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_review_verdict_relay.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_review_zero_commits.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_scoped_review_wiring.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_scorecard.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_serve.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_serve_app_board_trim.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_session.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_slice_issue_attribution.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_smoke.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_smoke_live_checkout_restore.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_smoke_workflow.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_spend_ceiling.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_spend_ceiling_coordinator.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_split.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_split_work.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_stage_projection.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_stalled_pipeline.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_state.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_state_review_findings_daemon.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_status_fleet_footer.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_stop_1567.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_stuck.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_terminal_command.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_test_author.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_test_chat.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_test_orchestrator.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_test_report.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_test_verdict_parsing.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_test_verdict_transcript_floor.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_thin_client_board_audit.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_thin_client_config_load_1080.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_thin_client_daemon_routing_906.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_tmux_host.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_tmux_session.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_transcript_floor.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_usage.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_usage_limits.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_usage_rollup.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_venv_live_install_2121.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_version_single_source.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_watch.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_worker_events.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_worker_image_pin_sync.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_worker_safety.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_worker_test_scoping.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_worktree.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tests/test_worktree_rmtree_chokepoint.py +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/Cargo.lock +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/Cargo.toml +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/cargo-config-local-quadraui.toml.example +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/src/app/audit.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/src/app/chat.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/src/app/data.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/src/app/dialogs.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/src/app/drive.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/src/app/drive_queue.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/src/app/escalation.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/src/app/events.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/src/app/fixtures.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/src/app/fleet_health.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/src/app/fleet_sessions.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/src/app/fleet_terminals.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/src/app/format.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/src/app/milestone_dag.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/src/app/mod.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/src/app/msv.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/src/app/pipeline.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/src/app/plans.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/src/app/render.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/src/app/reports.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/src/app/sessions.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/src/app/settings_ui.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/src/app/sidebar.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/src/app/terminal.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/src/app/tests.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/src/app/types.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/src/app/workspace.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/src/bin/gtk.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/src/commands.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/src/lib.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/src/main.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/src/settings.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/tests/acceptance.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/tests/cli.rs +0 -0
- {code_coordinator-0.5.68 → code_coordinator-0.5.70}/tui/tests/fixtures/board_sample.json +0 -0
|
@@ -747,6 +747,43 @@ def _graphify_update(repo_path: Path, *, timeout: float = 600.0) -> tuple[bool,
|
|
|
747
747
|
return True, (result.stdout or "").strip()
|
|
748
748
|
|
|
749
749
|
|
|
750
|
+
# #2212: count how many Bash commands in a worker's leg invoked `graphify` —
|
|
751
|
+
# the measurable half of the graph-first navigation rule in
|
|
752
|
+
# WORKER_SYSTEM_PROMPT above. The rule has lapsed into disuse before (see
|
|
753
|
+
# #2212's issue body) because nothing tracked whether workers actually
|
|
754
|
+
# queried the graph; this is written into every reaped worker's log (see
|
|
755
|
+
# the "# reap: done" line in `_reap`) as a plain `grep`-able counter — zero
|
|
756
|
+
# across N consecutive legs means the prompt instruction isn't landing.
|
|
757
|
+
# Deliberately NOT a DB column: this is a cheap, best-effort signal, not a
|
|
758
|
+
# gate anything blocks on, so it stays out of the Assignment schema/migrations.
|
|
759
|
+
# Separators recognized before a command token: `;`, `&`, `|` (covers `&&`
|
|
760
|
+
# and `||` too, since `\s*` after the class soaks up the second char) and a
|
|
761
|
+
# bare newline — Claude Code's Bash tool very commonly emits multi-line
|
|
762
|
+
# command strings (e.g. `cd repo\ngraphify query "foo"`) that aren't joined
|
|
763
|
+
# with `;`/`&&`, so newline must count as a separator or those legs
|
|
764
|
+
# undercount to 0 (#2212 review).
|
|
765
|
+
_GRAPHIFY_INVOCATION_RE = re.compile(r"(?:^|[\n;&|]\s*)graphify(?:\s|$)")
|
|
766
|
+
|
|
767
|
+
|
|
768
|
+
def _count_graphify_invocations(bash_commands: list[str]) -> int:
|
|
769
|
+
"""Count *bash_commands* entries that invoke the ``graphify`` CLI.
|
|
770
|
+
|
|
771
|
+
Matches ``graphify`` as a command token — at the start of the string,
|
|
772
|
+
after a shell separator (``;``, ``&&``, ``||``, ``|``), or after a bare
|
|
773
|
+
newline (multi-line Bash tool calls, e.g. ``cd repo\\ngraphify query
|
|
774
|
+
"..."``) — so ``graphify query "..."`` counts but a path or string that
|
|
775
|
+
merely contains the substring ``graphify`` (e.g. ``cat
|
|
776
|
+
graphify-out/graph.json``, where ``graphify`` is a path component rather
|
|
777
|
+
than a command) does not.
|
|
778
|
+
|
|
779
|
+
Note this counts matching *entries* in ``bash_commands``, not individual
|
|
780
|
+
invocations: a single command like ``"graphify query a && graphify query
|
|
781
|
+
b"`` counts once, not twice. Treat the result as an "at least one graph
|
|
782
|
+
query this leg" signal, not an exact invocation tally.
|
|
783
|
+
"""
|
|
784
|
+
return sum(1 for cmd in bash_commands if cmd and _GRAPHIFY_INVOCATION_RE.search(cmd))
|
|
785
|
+
|
|
786
|
+
|
|
750
787
|
def _infer_repo_github_slug(repo_path: str) -> str | None:
|
|
751
788
|
"""Best-effort ``owner/repo`` slug for *repo_path*'s ``origin`` remote (#1492).
|
|
752
789
|
|
|
@@ -1081,6 +1118,7 @@ def _worker_subprocess_env(
|
|
|
1081
1118
|
prefix: str | None = None,
|
|
1082
1119
|
base_prefix: str | None = None,
|
|
1083
1120
|
cwd: "str | Path | None" = None,
|
|
1121
|
+
assignment_id: str | None = None,
|
|
1084
1122
|
) -> dict[str, str]:
|
|
1085
1123
|
"""Environment for worker `claude -p` subprocesses, with the agent's own
|
|
1086
1124
|
venv removed (#402).
|
|
@@ -1113,6 +1151,21 @@ def _worker_subprocess_env(
|
|
|
1113
1151
|
``provider.env()`` on top of this result may still override ``PWD``
|
|
1114
1152
|
deliberately; that ordering is preserved since we only set it here, not
|
|
1115
1153
|
after.
|
|
1154
|
+
|
|
1155
|
+
#2217: ``assignment_id``, when given, is written to
|
|
1156
|
+
``COORD_ASSIGNMENT_ID``. The headless worker prompt (built in
|
|
1157
|
+
``review.py`` and elsewhere) tells every worker that if this variable is
|
|
1158
|
+
set it should call ``coord report-result --assignment
|
|
1159
|
+
"$COORD_ASSIGNMENT_ID" ...`` directly as the *authoritative* verdict
|
|
1160
|
+
path, with the transcript-parsed ``END_REVIEW`` block as a fallback only.
|
|
1161
|
+
Before this, nothing in the headless ``claude -p`` dispatch lane (this
|
|
1162
|
+
function is the only place that lane's subprocess environment is built)
|
|
1163
|
+
ever set the variable, so that "primary" path was dead on arrival for
|
|
1164
|
+
every headless review — the fragile transcript parse was silently the
|
|
1165
|
+
*only* path, not a backup. Both spawn call sites below pass
|
|
1166
|
+
``assignment_id=assignment.id`` so it's set for every worker type (review,
|
|
1167
|
+
smoke, work), matching what ``coord/commands/review.py`` already reads as
|
|
1168
|
+
its ``--assignment`` default.
|
|
1116
1169
|
"""
|
|
1117
1170
|
env = dict(os.environ if base_env is None else base_env)
|
|
1118
1171
|
pfx = sys.prefix if prefix is None else prefix
|
|
@@ -1135,6 +1188,9 @@ def _worker_subprocess_env(
|
|
|
1135
1188
|
if cwd is not None:
|
|
1136
1189
|
env["PWD"] = str(cwd)
|
|
1137
1190
|
|
|
1191
|
+
if assignment_id is not None:
|
|
1192
|
+
env["COORD_ASSIGNMENT_ID"] = assignment_id
|
|
1193
|
+
|
|
1138
1194
|
return env
|
|
1139
1195
|
|
|
1140
1196
|
|
|
@@ -2878,6 +2934,11 @@ absolute path outside your cwd). That shared checkout is not yours: edits \
|
|
|
2878
2934
|
there are lost, or collide with other workers running at the same time. If \
|
|
2879
2935
|
your worktree looks unexpectedly empty or unwritable, STOP and report it — \
|
|
2880
2936
|
do not fall back to editing the base checkout and copying files over.
|
|
2937
|
+
- For "where is X handled" / "what calls this" / architecture questions, \
|
|
2938
|
+
query the codebase graph first: `graphify query "<question>"` via Bash. \
|
|
2939
|
+
Grep/Read are for confirming an exact string or line, not for discovering \
|
|
2940
|
+
structure. No `graphify-out/graph.json` in this worktree? Skip straight to \
|
|
2941
|
+
grep, silently — do not stop to build one (#2212).
|
|
2881
2942
|
|
|
2882
2943
|
This session is ONE-SHOT and non-interactive (#1394):
|
|
2883
2944
|
- There is no next turn and no human to reply to you. Background-task \
|
|
@@ -6452,7 +6513,7 @@ class AgentServer:
|
|
|
6452
6513
|
# daemon happened to start in — worktree confinement for those
|
|
6453
6514
|
# providers must not depend on `bash_wrap_spawn` recomputing PWD as
|
|
6454
6515
|
# a side effect (see `_maybe_bash_wrap`).
|
|
6455
|
-
_spawn_env = _worker_subprocess_env(cwd=repo_path)
|
|
6516
|
+
_spawn_env = _worker_subprocess_env(cwd=repo_path, assignment_id=assignment.id)
|
|
6456
6517
|
# #1402: shared per-repo cargo target dir (see coord.cargo_cache).
|
|
6457
6518
|
# Must stay in sync with the PTY path in ``_spawn_pty``.
|
|
6458
6519
|
_spawn_env.update(
|
|
@@ -6626,7 +6687,7 @@ class AgentServer:
|
|
|
6626
6687
|
# docstring above), so unlike the headless path it never got an
|
|
6627
6688
|
# incidental PWD correction — confinement here must not depend
|
|
6628
6689
|
# on a provider trusting $PWD over getcwd() by accident.
|
|
6629
|
-
env = _worker_subprocess_env(cwd=repo_path)
|
|
6690
|
+
env = _worker_subprocess_env(cwd=repo_path, assignment_id=assignment.id)
|
|
6630
6691
|
env.setdefault("TERM", "xterm-256color")
|
|
6631
6692
|
# #1402: point cargo at this machine's shared per-repo target dir
|
|
6632
6693
|
# so the build cache survives worktree cleanup and is reused by
|
|
@@ -7440,7 +7501,20 @@ class AgentServer:
|
|
|
7440
7501
|
try:
|
|
7441
7502
|
with open(assignment.log_path, "a") as reopen:
|
|
7442
7503
|
final_status = assignment.status if assignment else "unknown"
|
|
7443
|
-
|
|
7504
|
+
# #2212: log a plain `graphify_invocations=N` counter alongside
|
|
7505
|
+
# the existing reap line — this is the measurable half of the
|
|
7506
|
+
# graph-first navigation rule (see WORKER_SYSTEM_PROMPT and
|
|
7507
|
+
# `_count_graphify_invocations`). `_worker_summary` is `None`
|
|
7508
|
+
# for a non-stream-json log or a parse failure; counting 0 in
|
|
7509
|
+
# that case is the honest answer, not a lie — best-effort like
|
|
7510
|
+
# everything else in this function.
|
|
7511
|
+
_graphify_invocations = _count_graphify_invocations(
|
|
7512
|
+
_worker_summary.bash_commands if _worker_summary is not None else []
|
|
7513
|
+
)
|
|
7514
|
+
reopen.write(
|
|
7515
|
+
f"# reap: done (exit_code={exit_code} status={final_status} "
|
|
7516
|
+
f"graphify_invocations={_graphify_invocations})\n"
|
|
7517
|
+
)
|
|
7444
7518
|
except (OSError, AttributeError):
|
|
7445
7519
|
pass
|
|
7446
7520
|
|
|
@@ -146,6 +146,36 @@ def test_worker_env_no_cwd_leaves_pwd_untouched() -> None:
|
|
|
146
146
|
assert env["PWD"] == "/whatever"
|
|
147
147
|
|
|
148
148
|
|
|
149
|
+
def test_worker_env_sets_coord_assignment_id() -> None:
|
|
150
|
+
"""#2217: the headless worker prompt (review.py) tells every worker that
|
|
151
|
+
if $COORD_ASSIGNMENT_ID is set, it must report its verdict straight to
|
|
152
|
+
the coordinator board via `coord report-result` as the *authoritative*
|
|
153
|
+
path — with the transcript-parsed END_REVIEW block as a fallback only.
|
|
154
|
+
Nothing set the variable for the headless `claude -p` dispatch lane, so
|
|
155
|
+
that "primary" instruction was dead on arrival for every review and the
|
|
156
|
+
fragile transcript parse was silently the only path. Both `_spawn` call
|
|
157
|
+
sites must pass assignment_id= so this is set for every worker type."""
|
|
158
|
+
env = _worker_subprocess_env(
|
|
159
|
+
{"PATH": "/usr/bin"},
|
|
160
|
+
prefix="/usr",
|
|
161
|
+
base_prefix="/usr",
|
|
162
|
+
assignment_id="abc123",
|
|
163
|
+
)
|
|
164
|
+
assert env["COORD_ASSIGNMENT_ID"] == "abc123"
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
def test_worker_env_no_assignment_id_leaves_var_unset() -> None:
|
|
168
|
+
"""When assignment_id isn't passed, COORD_ASSIGNMENT_ID must not appear
|
|
169
|
+
at all (not even empty) — callers that don't have an assignment yet
|
|
170
|
+
(e.g. standalone helper use) shouldn't leak a stale/empty value."""
|
|
171
|
+
env = _worker_subprocess_env(
|
|
172
|
+
{"PATH": "/usr/bin"},
|
|
173
|
+
prefix="/usr",
|
|
174
|
+
base_prefix="/usr",
|
|
175
|
+
)
|
|
176
|
+
assert "COORD_ASSIGNMENT_ID" not in env
|
|
177
|
+
|
|
178
|
+
|
|
149
179
|
def test_health_reports_machine(tmp_path: Path) -> None:
|
|
150
180
|
server = _server(tmp_path)
|
|
151
181
|
h = server.health()
|
|
@@ -431,6 +461,40 @@ def test_spawn_sets_pwd_to_worktree_bash_wrap_enabled(tmp_path: Path) -> None:
|
|
|
431
461
|
server.shutdown()
|
|
432
462
|
|
|
433
463
|
|
|
464
|
+
def test_spawn_sets_coord_assignment_id(tmp_path: Path) -> None:
|
|
465
|
+
"""#2217: the headless `_spawn` path must set COORD_ASSIGNMENT_ID to the
|
|
466
|
+
assignment's own id — this is the variable the review prompt tells every
|
|
467
|
+
worker to use for `coord report-result --assignment "$COORD_ASSIGNMENT_ID"
|
|
468
|
+
...`, the "authoritative" primary verdict path. Before #2217 nothing set
|
|
469
|
+
it anywhere in this dispatch lane, so that instruction was silently
|
|
470
|
+
unreachable for every headless review; only the fragile transcript-parsed
|
|
471
|
+
END_REVIEW fallback ever ran. This test must fail against pre-#2217 code.
|
|
472
|
+
"""
|
|
473
|
+
import coord.agent as agent_mod
|
|
474
|
+
|
|
475
|
+
repo = _init_repo(tmp_path / "repo")
|
|
476
|
+
server = _server(tmp_path, repo_path=repo)
|
|
477
|
+
|
|
478
|
+
captured_env: list[dict[str, str]] = []
|
|
479
|
+
real_popen = agent_mod.subprocess.Popen
|
|
480
|
+
|
|
481
|
+
def recording_popen(spawn_argv, *args, **kwargs):
|
|
482
|
+
if kwargs.get("start_new_session"):
|
|
483
|
+
captured_env.append(dict(kwargs.get("env") or {}))
|
|
484
|
+
return real_popen(spawn_argv, *args, **kwargs)
|
|
485
|
+
|
|
486
|
+
agent_mod.subprocess.Popen = recording_popen # type: ignore[assignment]
|
|
487
|
+
try:
|
|
488
|
+
a = server.assign(_spec(repo, type="review"))
|
|
489
|
+
final = server.wait_for(a.id)
|
|
490
|
+
finally:
|
|
491
|
+
agent_mod.subprocess.Popen = real_popen # type: ignore[assignment]
|
|
492
|
+
|
|
493
|
+
assert captured_env, "Popen was not called"
|
|
494
|
+
assert captured_env[0]["COORD_ASSIGNMENT_ID"] == final.id == a.id
|
|
495
|
+
server.shutdown()
|
|
496
|
+
|
|
497
|
+
|
|
434
498
|
def test_pty_spawn_sets_pwd_to_repo_path(tmp_path: Path) -> None:
|
|
435
499
|
"""#1783: the PTY spawn path (_spawn_pty) gets the same explicit-PWD
|
|
436
500
|
treatment as the headless path.
|
|
@@ -1572,6 +1636,66 @@ def test_reap_captures_claude_session_id(tmp_path: Path) -> None:
|
|
|
1572
1636
|
server.shutdown()
|
|
1573
1637
|
|
|
1574
1638
|
|
|
1639
|
+
def test_reap_logs_graphify_invocation_count(tmp_path: Path) -> None:
|
|
1640
|
+
"""#2212: `_reap` writes a plain `graphify_invocations=N` counter into
|
|
1641
|
+
the worker's log alongside the existing "# reap: done" line — the
|
|
1642
|
+
measurable half of the graph-first navigation rule in
|
|
1643
|
+
WORKER_SYSTEM_PROMPT. A worker whose transcript shows one `graphify
|
|
1644
|
+
query ...` Bash call and one unrelated Bash call must be counted 1, not
|
|
1645
|
+
2 or 0, end-to-end through the real reap path (not just the
|
|
1646
|
+
`_count_graphify_invocations` unit)."""
|
|
1647
|
+
repo = _init_repo(tmp_path / "repo")
|
|
1648
|
+
|
|
1649
|
+
graphify_call = json.dumps({
|
|
1650
|
+
"type": "assistant",
|
|
1651
|
+
"message": {
|
|
1652
|
+
"model": "claude-sonnet-4-6",
|
|
1653
|
+
"content": [{
|
|
1654
|
+
"type": "tool_use",
|
|
1655
|
+
"name": "Bash",
|
|
1656
|
+
"id": "tu_1",
|
|
1657
|
+
"input": {"command": 'graphify query "where is X handled"'},
|
|
1658
|
+
}],
|
|
1659
|
+
},
|
|
1660
|
+
})
|
|
1661
|
+
unrelated_call = json.dumps({
|
|
1662
|
+
"type": "assistant",
|
|
1663
|
+
"message": {
|
|
1664
|
+
"model": "claude-sonnet-4-6",
|
|
1665
|
+
"content": [{
|
|
1666
|
+
"type": "tool_use",
|
|
1667
|
+
"name": "Bash",
|
|
1668
|
+
"id": "tu_2",
|
|
1669
|
+
"input": {"command": "grep -rn foo ."},
|
|
1670
|
+
}],
|
|
1671
|
+
},
|
|
1672
|
+
})
|
|
1673
|
+
result_line = json.dumps({"type": "result", "subtype": "success", "is_error": False})
|
|
1674
|
+
worker_sh = (
|
|
1675
|
+
f"echo '{graphify_call}'; echo '{unrelated_call}'; echo '{result_line}'; exit 0"
|
|
1676
|
+
)
|
|
1677
|
+
server = AgentServer(
|
|
1678
|
+
machine_name="test",
|
|
1679
|
+
repos=["api"],
|
|
1680
|
+
repo_paths={"api": str(repo)},
|
|
1681
|
+
state_dir=tmp_path / "state",
|
|
1682
|
+
worker_command=lambda spec: ["/bin/sh", "-c", worker_sh],
|
|
1683
|
+
)
|
|
1684
|
+
spec = AssignmentSpec(
|
|
1685
|
+
repo_name="api",
|
|
1686
|
+
repo_path=str(repo),
|
|
1687
|
+
issue_number=2212,
|
|
1688
|
+
issue_title="t",
|
|
1689
|
+
briefing="b",
|
|
1690
|
+
)
|
|
1691
|
+
a = server.assign(spec)
|
|
1692
|
+
final = server.wait_for(a.id, timeout=10)
|
|
1693
|
+
|
|
1694
|
+
log_text = Path(final.log_path).read_text()
|
|
1695
|
+
assert "graphify_invocations=1" in log_text
|
|
1696
|
+
server.shutdown()
|
|
1697
|
+
|
|
1698
|
+
|
|
1575
1699
|
def test_assignment_spec_accepts_resume_session_id() -> None:
|
|
1576
1700
|
"""AssignmentSpec round-trips resume_session_id through to_dict / from dict."""
|
|
1577
1701
|
spec = AssignmentSpec(
|
|
@@ -13,7 +13,12 @@ from unittest.mock import MagicMock, patch
|
|
|
13
13
|
|
|
14
14
|
import pytest
|
|
15
15
|
|
|
16
|
-
from coord.agent import
|
|
16
|
+
from coord.agent import (
|
|
17
|
+
WORKER_SYSTEM_PROMPT,
|
|
18
|
+
AssignmentSpec,
|
|
19
|
+
_count_graphify_invocations,
|
|
20
|
+
default_worker_command,
|
|
21
|
+
)
|
|
17
22
|
from coord.config import ConfigError, ReviewsConfig, load
|
|
18
23
|
from coord.models import Machine, Proposal, Repo
|
|
19
24
|
|
|
@@ -47,6 +52,111 @@ def test_worker_system_prompt_requires_clean_build_before_done() -> None:
|
|
|
47
52
|
assert "explicitly call it out" in WORKER_SYSTEM_PROMPT
|
|
48
53
|
|
|
49
54
|
|
|
55
|
+
# ── #2212: graph-first navigation instruction ───────────────────────────────
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def test_worker_system_prompt_contains_graph_first_instruction() -> None:
|
|
59
|
+
"""#2212: the rule that workers should query the graphify graph before
|
|
60
|
+
grepping for structure lived only in CLAUDE.md (39.9KB, one paragraph)
|
|
61
|
+
and never survived contact with a real task — #2180's leg ran 48 greps
|
|
62
|
+
and 0 graph queries. The rule must live in the short, always-read
|
|
63
|
+
worker system prompt, name the concrete CLI entry point, and say what
|
|
64
|
+
grep/read ARE still for (exact-string/line confirmation) so this isn't
|
|
65
|
+
read as a blanket grep ban."""
|
|
66
|
+
assert 'graphify query "<question>"' in WORKER_SYSTEM_PROMPT
|
|
67
|
+
assert "query the codebase graph first" in WORKER_SYSTEM_PROMPT
|
|
68
|
+
assert "confirming an exact string or line" in WORKER_SYSTEM_PROMPT
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
def test_worker_system_prompt_states_no_graph_fallback() -> None:
|
|
72
|
+
"""A repo/worktree with no built graph must not stall or STUCK a
|
|
73
|
+
worker — the instruction must say what to do when the graph is
|
|
74
|
+
absent: fall back to grep, silently."""
|
|
75
|
+
assert "graphify-out/graph.json" in WORKER_SYSTEM_PROMPT
|
|
76
|
+
assert "Skip straight to grep" in WORKER_SYSTEM_PROMPT
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
def test_worker_system_prompt_graph_instruction_present_regardless_of_repo() -> None:
|
|
80
|
+
"""The instruction is baked into the static system prompt, not derived
|
|
81
|
+
per-repo — assert it survives `default_worker_command` for two
|
|
82
|
+
differently-named repos/specs, the same shape a real dispatch uses."""
|
|
83
|
+
for repo_name in ("api", "some-other-repo"):
|
|
84
|
+
spec = AssignmentSpec(
|
|
85
|
+
repo_name=repo_name,
|
|
86
|
+
repo_path=f"/tmp/{repo_name}",
|
|
87
|
+
issue_number=1,
|
|
88
|
+
issue_title="t",
|
|
89
|
+
briefing="b",
|
|
90
|
+
)
|
|
91
|
+
argv = default_worker_command(spec)
|
|
92
|
+
idx = argv.index("--system-prompt")
|
|
93
|
+
assert 'graphify query "<question>"' in argv[idx + 1]
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
def test_default_worker_command_allowed_tools_permits_graph_query_path() -> None:
|
|
97
|
+
"""The graph is queried via `graphify query ...` over Bash — the
|
|
98
|
+
worker's --allowedTools must still include Bash so that path is
|
|
99
|
+
reachable (today's allowlist is Read,Edit,Write,Bash,Monitor)."""
|
|
100
|
+
spec = AssignmentSpec(
|
|
101
|
+
repo_name="api",
|
|
102
|
+
repo_path="/tmp/repo",
|
|
103
|
+
issue_number=1,
|
|
104
|
+
issue_title="t",
|
|
105
|
+
briefing="b",
|
|
106
|
+
)
|
|
107
|
+
argv = default_worker_command(spec)
|
|
108
|
+
idx = argv.index("--allowedTools")
|
|
109
|
+
assert "Bash" in argv[idx + 1].split(",")
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
def test_worker_system_prompt_hard_rules_unchanged_by_graph_instruction() -> None:
|
|
113
|
+
"""The #2212 addition must not displace any of the existing hard
|
|
114
|
+
rules — assert each is still present so a future prompt edit can't
|
|
115
|
+
silently drop one of these while touching the nearby graph bullet."""
|
|
116
|
+
assert "Do NOT run gh commands" in WORKER_SYSTEM_PROMPT
|
|
117
|
+
assert "Work only inside your current working directory" in WORKER_SYSTEM_PROMPT
|
|
118
|
+
assert "NEVER commit or push to main or develop directly" in WORKER_SYSTEM_PROMPT
|
|
119
|
+
assert "This session is ONE-SHOT and non-interactive (#1394)" in WORKER_SYSTEM_PROMPT
|
|
120
|
+
assert (
|
|
121
|
+
"Background-task completion notifications will NEVER reach you"
|
|
122
|
+
in WORKER_SYSTEM_PROMPT
|
|
123
|
+
)
|
|
124
|
+
assert "ALWAYS `git add`, `git commit`, and `git push origin HEAD` BEFORE your" in (
|
|
125
|
+
WORKER_SYSTEM_PROMPT
|
|
126
|
+
)
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
# ── #2212: graphify-invocation counter (measurability) ──────────────────────
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
def test_count_graphify_invocations_counts_command_tokens() -> None:
|
|
133
|
+
assert _count_graphify_invocations(['graphify query "where is X handled"']) == 1
|
|
134
|
+
assert _count_graphify_invocations(["cd repo && graphify update ."]) == 1
|
|
135
|
+
assert _count_graphify_invocations(["grep -rn foo .", "rg bar ."]) == 0
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
def test_count_graphify_invocations_ignores_path_substring() -> None:
|
|
139
|
+
"""A command that merely mentions `graphify-out/` as a path (not the
|
|
140
|
+
`graphify` binary as a command token) must not be counted — otherwise
|
|
141
|
+
the counter over-reports and the "0 across N legs" signal is unreliable."""
|
|
142
|
+
assert _count_graphify_invocations(["cat graphify-out/graph.json"]) == 0
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
def test_count_graphify_invocations_empty_list() -> None:
|
|
146
|
+
assert _count_graphify_invocations([]) == 0
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
def test_count_graphify_invocations_counts_newline_separated_commands() -> None:
|
|
150
|
+
"""Claude Code's Bash tool very commonly issues multi-line command
|
|
151
|
+
strings (`cd` then a command on the next line, multi-step scripts) not
|
|
152
|
+
joined with `&&`/`;`. A bare newline must count as a separator, or a
|
|
153
|
+
worker that genuinely queried the graph gets silently undercounted to
|
|
154
|
+
0 — undermining the "0 across N legs" landing signal (#2212 review)."""
|
|
155
|
+
assert _count_graphify_invocations(['cd repo\ngraphify query "foo"']) == 1
|
|
156
|
+
assert _count_graphify_invocations(["set -e\ngraphify update .\n"]) == 1
|
|
157
|
+
assert _count_graphify_invocations(["cd repo\n graphify query x"]) == 1
|
|
158
|
+
|
|
159
|
+
|
|
50
160
|
# ── Default ReviewsConfig checklist ─────────────────────────────────────────
|
|
51
161
|
|
|
52
162
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_coordinator-0.5.68 → code_coordinator-0.5.70}/code_coordinator.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{code_coordinator-0.5.68 → code_coordinator-0.5.70}/code_coordinator.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
{code_coordinator-0.5.68 → code_coordinator-0.5.70}/code_coordinator.egg-info/scm_file_list.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|