code-coordinator 0.5.69__tar.gz → 0.5.71__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.69 → code_coordinator-0.5.71}/PKG-INFO +1 -1
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/code_coordinator.egg-info/PKG-INFO +1 -1
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/code_coordinator.egg-info/scm_version.json +2 -2
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/agent.py +21 -2
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/drive.py +89 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_agent.py +64 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_drive.py +125 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/.claude/commands/board.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/.claude/commands/complete-session.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/.claude/commands/coordinator.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/.githooks/_lib.sh +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/.githooks/post-checkout +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/.githooks/post-commit +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/.githooks/post-merge +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/.github/workflows/auto-release.yml +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/.github/workflows/cargo-test.yml +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/.github/workflows/publish.yml +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/.github/workflows/release-tui.yml +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/.github/workflows/test.yml +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/.gitignore +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/CLAUDE.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/GOAL.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/LICENSE +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/MANIFEST.in +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/README.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/code_coordinator.egg-info/SOURCES.txt +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/code_coordinator.egg-info/dependency_links.txt +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/code_coordinator.egg-info/entry_points.txt +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/code_coordinator.egg-info/requires.txt +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/code_coordinator.egg-info/scm_file_list.json +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/code_coordinator.egg-info/top_level.txt +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/__init__.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/_board_mapping.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/acceptance.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/acceptance_drivers.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/agent_app.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/agent_update.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/agents/opencode/.gitignore +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/agents/opencode/agents/work.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/agents/opencode/routing.jsonc +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/audit.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/auto_loop.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/board_bool_guard.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/board_service.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/board_wire.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/brain.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/branch_model.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/bug_intake.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/cargo_cache.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/ci_github.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/ci_store.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/claim.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/cli.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/client.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/commands/__init__.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/commands/_common.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/commands/acceptance.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/commands/agent_ops.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/commands/audit.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/commands/chat.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/commands/dispatch.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/commands/dispatch_workers.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/commands/drive.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/commands/drive_queue.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/commands/gate_a.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/commands/gates.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/commands/issues.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/commands/lifecycle.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/commands/merge.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/commands/milestone.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/commands/plan_followup.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/commands/plans.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/commands/portal.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/commands/release.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/commands/report.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/commands/review.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/commands/scorecard.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/commands/sessions.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/commands/setup.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/commands/status.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/commands/terminal.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/commands/test_gate.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/commands/tui.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/comments.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/config.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/conflict_fix.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dao.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/__init__.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/fixture.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/index.html +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/server.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/terminal.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/.gitignore +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/components.json +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/dist/assets/Gallery-da3qNiIw.js +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/dist/assets/Terminal-9CEnUXvW.css +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/dist/assets/Terminal-skVFCxPU.js +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/dist/assets/index-DltfZR5f.js +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/dist/assets/index-Dq4kwTdw.css +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/dist/assets/workbox-window.prod.es5-BqEJf4Xk.js +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/dist/icons/icon-192.png +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/dist/icons/icon-512.png +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/dist/icons/icon.svg +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/dist/index.html +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/dist/manifest.webmanifest +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/dist/sw.js +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/dist/workbox-e4022e15.js +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/e2e/available-gates-terminal.spec.ts +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/e2e/deep-link.spec.ts +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/e2e/fixtureServer.ts +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/e2e/live-update-fixture.spec.ts +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/e2e/realtime.spec.ts +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/e2e/shell.spec.ts +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/e2e/smoke.spec.ts +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/e2e/terminal.spec.ts +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/e2e/theme.spec.ts +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/eslint.config.js +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/index.html +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/node_modules/flatted/python/flatted.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/package-lock.json +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/package.json +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/playwright.acceptance.config.ts +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/playwright.config.ts +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/postcss.config.js +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/public/icons/icon-192.png +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/public/icons/icon-512.png +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/public/icons/icon.svg +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/App.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/api/client.ts +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/api/generated.ts +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/components/ConnectionBadge.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/components/Detail.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/components/Gallery.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/components/Home.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/components/MobileKeyBar.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/components/PanelHeader.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/components/PipelineCard.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/components/SessionCard.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/components/SessionDetail.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/components/SessionsList.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/components/Terminal.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/components/__tests__/ConnectionBadge.test.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/components/__tests__/Detail.test.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/components/__tests__/Gallery.test.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/components/__tests__/Home.test.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/components/__tests__/MobileKeyBar.test.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/components/__tests__/PipelineCard.test.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/components/__tests__/SessionCard.test.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/components/__tests__/Terminal.test.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/components/ui/badge.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/components/ui/button.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/components/ui/card.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/components/ui/dialog.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/components/ui/dropdown-menu.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/components/ui/empty-state.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/components/ui/sheet.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/components/ui/skeleton.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/components/ui/tabs.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/components/ui/theme-provider.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/components/ui/theme-toggle.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/components/ui/toast.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/components/ui/toaster.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/components/ui/tooltip.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/components/ui/use-toast.ts +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/index.css +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/lib/pipeline.ts +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/lib/utils.ts +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/main.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/realtime/RealtimeProvider.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/realtime/__tests__/RealtimeProvider.test.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/realtime/__tests__/connection.test.ts +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/realtime/connection.ts +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/realtime/events.ts +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/routes/__tests__/paths.test.ts +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/routes/paths.ts +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/shell/ActivityRail.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/shell/AppShell.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/shell/ComingSoon.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/shell/EmptyDetail.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/shell/RouteNotFound.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/shell/ShellLayout.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/shell/StatusBar.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/shell/__tests__/ShellLayout.test.tsx +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/shell/__tests__/shellState.test.ts +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/shell/__tests__/stubViewport.ts +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/shell/breakpoints.ts +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/shell/railItems.ts +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/shell/shellState.ts +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/shell/useRegionFocus.ts +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/test-setup.ts +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/src/vite-env.d.ts +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/tailwind.config.js +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/tsconfig.json +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/tsconfig.node.json +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dashboard/webapp/vite.config.ts +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/db.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dead_end.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/deploy/README.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/deploy_manifest.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/deploy_units.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/deps.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/diagnose.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dispatch.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/dist_name.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/drive_queue.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/drive_state.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/events.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/failure_class.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/filelock.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/fleet_config_health.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/freshness.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/gate_a.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/gate_b.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/gate_snapshot.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/gates.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/github_ops.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/goal.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/graph_health.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/health/__init__.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/health/aggregate.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/health/checks/__init__.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/health/checks/agent_install.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/health/checks/cargo_targets.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/health/checks/claude_binary.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/health/checks/deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/health/checks/disk.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/health/checks/fleet_board.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/health/checks/fleet_deploy_lanes.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/health/checks/fleet_phantom.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/health/checks/fleet_unit_drift.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/health/checks/graph.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/health/checks/plan_usage.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/health/checks/repo_state.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/health/checks/spawned_coord.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/health/checks/timer_active.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/health/checks/toolchain.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/health/checks/unit_drift.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/health/checks/unit_enablement.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/health/checks/worktrees.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/health/cli.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/health/context.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/health/fleet_snapshot.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/health/models.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/health/pypi.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/health/registry.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/health/render.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/health/units.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/hooks.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/housekeeping.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/interactive.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/issue_store.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/liveness_auditor.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/machine_pause.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/merge_queue.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/milestone_chat.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/milestone_dispatch.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/milestone_gate.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/milestone_order.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/mock_author.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/models.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/network.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/new_issue_chat.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/notifier/__init__.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/notifier/baseline.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/notifier/cli.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/notifier/collect.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/notifier/digest.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/notifier/models.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/notifier/predicate.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/notifier/service.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/notifier/store.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/notifier/transport.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/notify.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/openapi.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/overlap_fence.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/parentage.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/parentage_github.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/pipeline.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/plan_parser.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/plans.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/platform_paths.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/portal_bridge.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/pr_body_lint.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/prereqs.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/progress.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/providers/__init__.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/providers/base.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/providers/claude.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/providers/claude_pty.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/providers/opencode.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/reconcile.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/refine_chat.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/release_cordon.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/release_propagate.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/release_verify.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/release_window.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/reports.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/revalidate.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/review.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/scorecard.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/serve_app.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/skills/update-issue/SKILL.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/smoke.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/spend_ceiling.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/split_work.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/stage_projection.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/state.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/test_author.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/test_chat.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/test_orchestrator.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/test_report.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/tui_release.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/usage.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/usage_limits.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/usage_rollup.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coord/worker_events.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/coordinator.example.yml +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/deploy/coord-web-dist-build.sh +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/deploy/coord-web-rollback.sh +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/deploy/node-shim.sh +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/docs/AGENT_OPERATIONS.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/docs/ARCHITECTURE.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/docs/ARCH_SECURITY_GATES.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/docs/COCKPIT.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/docs/CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/docs/CROSS_PLATFORM.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/docs/CUSTOMER_PORTAL.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/docs/DRIVE_QUEUE.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/docs/EPHEMERAL_WORKERS.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/docs/FORGE_MIGRATION.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/docs/GRAPHIFY_SETUP.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/docs/ISSUE_GUIDANCE.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/docs/MAC_MINI.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/docs/NOTIFIER.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/docs/OPENCODE_VERIFICATION.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/docs/OPERATING_GOTCHAS.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/docs/ORACLE_LOOP.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/docs/PHONE_WEBAPP.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/docs/PIPELINE_V2.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/docs/PLATFORM_EVOLUTION.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/docs/SECOND_BACKEND.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/docs/STORE_SERVICE.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/docs/TEST_FIRST_BUG_LANE.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/docs/WEB_CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/docs/mocks/web/README.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/docs/mocks/web/_tokens.css +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/docs/mocks/web/issue-detail.html +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/docs/mocks/web/pipeline-narrow.html +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/docs/mocks/web/pipeline-wide.html +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/graphify-out/.gitignore +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/install-agent.sh +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/pyproject.toml +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/scripts/audit_review_verdict_overrides.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/scripts/azure-workers/bootstrap-shared.sh +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/scripts/azure-workers/build-worker-image.sh +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/scripts/azure-workers/coordinator-machine.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/scripts/azure-workers/epic-down.sh +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/scripts/azure-workers/epic-up.sh +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/scripts/azure-workers/preflight.sh +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/scripts/azure-workers/provision-worker.sh +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/scripts/azure-workers/tailnet-acl.hujson +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/scripts/azure-workers/verify-github-token.sh +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/scripts/codegen.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/scripts/coord-test-runner.sh +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/scripts/drive-batch.sh +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/scripts/gen_board_fixture.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/scripts/next_release_tag.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/scripts/run_tests_in_populated_home.sh +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/scripts/run_tests_without_gh.sh +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/scripts/smoke_437_interactive.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/scripts/verify_878_review_capture.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/scripts/verify_release_published.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/scripts/verify_release_wheel.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/setup.cfg +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/SMOKE_SET.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/__init__.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/acceptance/ms-33/audit_1039.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/acceptance/ms-33/contract.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/acceptance/ms-33/manifest.yml +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/acceptance/ms-33/mocks/audit-panel-detail.screen +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/acceptance/ms-33/mocks/audit-panel-empty.screen +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/acceptance/ms-33/mocks/audit-panel-filters.screen +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/acceptance/ms-33/mocks/audit-panel-populated.screen +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/acceptance/ms-37/conftest.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/acceptance/ms-37/contract.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/acceptance/ms-37/manifest.yml +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/acceptance/ms-38/contract.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/acceptance/ms-38/manifest.yml +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/acceptance/ms-38/mocks/plans-base.screen +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/acceptance/ms-38/mocks/plans-detail-pane.screen +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/acceptance/ms-38/mocks/plans-help-overlay.screen +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/acceptance/ms-38/mocks/plans-palette.screen +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/acceptance/ms-38/mocks/plans-rightclick-epic.screen +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/acceptance/ms-38/mocks/plans-rightclick-header.screen +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/acceptance/ms-38/mocks/plans-rightclick-stub.screen +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/acceptance/ms-38/plans_detail_1122.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/acceptance/ms-38/plans_help_1124.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/acceptance/ms-38/plans_rightclick_1123.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/acceptance/ms-51/contract.md +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/acceptance/ms-51/manifest.yml +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/acceptance/ms-51/tsconfig.json +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/conftest.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/fixtures/board-pipeline-basic.json +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/fixtures/opencode_run_sample.jsonl +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/fixtures/playwright/all_pass.json +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/fixtures/playwright/global_setup_crash.json +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/fixtures/playwright/mixed_fail.json +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/fixtures/playwright/retry_then_pass.json +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/fixtures/playwright/skip.json +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/fixtures/playwright/truncated.json +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_acceptance.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_acceptance_drivers.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_agent_api_error.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_agent_app.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_agent_branch_base.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_agent_branch_capture.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_agent_config_free_1712.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_agent_deploy_units_endpoint.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_agent_dirty_worktree.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_agent_graph_self_heal.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_agent_health_h3.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_agent_idle_restart.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_agent_push_failure.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_agent_reap.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_agent_repos_and_pull.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_agent_restart_services_endpoint.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_agent_startup_diagnostics.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_agent_update.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_agent_update_bluegreen.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_agent_usage_limit.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_agent_zero_commit.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_ambient_home_isolation.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_approve_reject_plan.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_approve_usage_gate.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_assignment_already_recorded_daemon.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_audit_log.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_audit_outcome.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_audit_query.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_auto_loop.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_auto_release_publish_2035.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_base_checkout_restore.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_board_cap_762.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_board_fixture.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_board_read_path.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_board_service.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_board_state.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_board_wire.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_brain.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_branch_model.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_bug_intake.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_build_worker_image_env_update.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cargo_cache.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_ci_acceptance_gate_1950.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_ci_parity_2091.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_ci_store.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_claim.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_acceptance.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_assign.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_assign_interactive_remote.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_assign_provider.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_audit.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_chat_continue.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_diagnose_config_provenance.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_diagnose_graph.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_doctor.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_doctor_config_free_1801.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_drive.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_drive_queue.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_escalate.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_fix_headless_review.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_gate_a.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_install_drift.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_install_skills.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_issue_create_label.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_issue_reopen.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_merge.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_milestone_assign.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_milestone_capture.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_milestone_chat_add_child.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_milestone_gate_b.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_milestone_gate_c.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_milestone_order.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_milestone_ship.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_network.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_new_issue_chat.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_plans.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_portal.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_pull_artifact.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_queue.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_reattach_sessions.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_refine_board.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_release_preflight.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_release_propagate.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_release_window.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_scorecard.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_set_review_findings.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_status_advisory_terminal.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_status_merge_queue.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_status_provider.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_status_review_finalizing.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_status_test_failed_tag.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_status_usage_limit.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_sync_comments_873.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_test_plan.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_track.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_tui_update.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cli_wait.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_client_base_install.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_comments.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_completion_summary.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_config.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_config_acceptance.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_config_audit.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_config_pricing.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_config_usage_gate.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_conflict_fix.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_conflict_fix_semantic.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_coord_test.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_coord_test_runner_baseline.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_coord_test_runner_routing.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_coord_test_runner_toolchain.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_coord_web_sse_restart_live.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_coordinator_machine.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_cross_platform_imports.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_dashboard.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_dashboard_fixture.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_dashboard_terminal.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_dashboard_terminal_live.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_db.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_dead_end.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_deploy_coord_db_backup.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_deploy_coord_web_dist.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_deploy_coord_web_rollback.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_deploy_drive_queue_unit.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_deploy_manifest.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_deploy_units_lane.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_deploy_web_unit.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_deps.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_diagnose.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_dispatch.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_dispatch_target_validation.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_dist_name.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_done_housekeeping.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_drive_queue.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_drive_state.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_drive_tmux.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_epic_up_capability_detection.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_epic_up_image_provenance.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_errors.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_events.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_failure_class.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_filelock.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_fix_of_force_override.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_fleet_config_health.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_fleet_health_probes.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_fleet_health_snapshot.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_freshness.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_gate_a.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_gate_b.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_gate_snapshot_staleness.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_gates.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_generated_types_fixture.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_github_ops.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_goal.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_graph_health.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_handoff.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_health_checks.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_health_cli.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_health_cli_graph.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_health_config.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_health_context.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_health_deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_health_incident_regression.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_health_pypi.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_health_registry.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_health_timer_active.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_health_toolchain.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_health_unit_drift.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_health_unit_enablement.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_hooks.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_human_attended_437.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_init.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_integration.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_interactive_briefing_echo.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_interactive_prefill_state.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_interactive_session_relaunch.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_interactive_test_verdict_backstop.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_interactive_token_attribution.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_interactive_worktree.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_issue_store_seam.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_liveness_auditor.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_liveness_notify.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_machine_pause.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_merge_queue.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_merge_verify.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_milestone_chat.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_milestone_gate.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_milestone_order.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_milestone_seam.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_mock_author.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_model_tiering.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_models.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_models_config_labels.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_needs_attention.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_network.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_new_issue_chat.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_next_release_tag.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_no_direct_gh_calls.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_node_shim.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_notifier_baseline.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_notifier_cli.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_notifier_collect.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_notifier_config.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_notifier_drive_seam.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_notifier_isolation.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_notifier_predicate.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_notifier_quiet_hours.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_notifier_service.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_notify.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_notify_drain.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_openapi.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_operational_defaults.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_overlap_fence.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_packaged_deploy_units.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_parentage.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_paste_landed.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_pipeline.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_plan_followup_approve_plan_command.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_plan_followup_pr_command.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_plan_followup_review_command.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_plan_only.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_plan_parser.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_platform_paths.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_portal_bridge.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_portal_config.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_pr_body_lint.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_prereqs.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_production_db_guard.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_progress.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_provider_seam.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_providers.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_providers_config_labels.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_providers_pty.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_quiet_hours.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_quiet_hours_store_2146.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_reap_merged_sessions.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_reap_stale_interactive_tick.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_reconcile_branch.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_reconcile_completions.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_reconcile_merges.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_reconcile_usage_limit_done.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_refine_chat.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_release_cordon_2101.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_release_propagate.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_release_unified_1242.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_release_verify.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_release_window.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_remote_auto_prune.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_remote_interactive_reaper.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_report_result_push.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_reports.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_retry.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_retry_advisory_1606.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_retry_type_1636.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_revalidate.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_review.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_review_end_review_without_verdict.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_review_parse_failure_diagnostic.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_review_reaffirm.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_review_state.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_review_verdict_backstop.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_review_verdict_override_audit.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_review_verdict_relay.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_review_zero_commits.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_scoped_review_wiring.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_scorecard.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_serve.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_serve_app_board_trim.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_session.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_slice_issue_attribution.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_smoke.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_smoke_live_checkout_restore.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_smoke_workflow.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_spend_ceiling.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_spend_ceiling_coordinator.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_split.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_split_work.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_stage_projection.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_stalled_pipeline.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_state.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_state_review_findings_daemon.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_status_fleet_footer.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_stop_1567.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_stuck.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_terminal_command.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_test_author.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_test_chat.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_test_orchestrator.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_test_report.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_test_verdict_parsing.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_test_verdict_transcript_floor.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_thin_client_board_audit.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_thin_client_config_load_1080.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_thin_client_daemon_routing_906.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_tmux_host.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_tmux_session.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_transcript_floor.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_usage.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_usage_limits.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_usage_rollup.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_venv_live_install_2121.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_version_single_source.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_watch.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_worker_events.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_worker_image_pin_sync.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_worker_safety.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_worker_test_scoping.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_worktree.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tests/test_worktree_rmtree_chokepoint.py +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/Cargo.lock +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/Cargo.toml +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/cargo-config-local-quadraui.toml.example +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/src/app/audit.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/src/app/chat.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/src/app/data.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/src/app/dialogs.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/src/app/drive.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/src/app/drive_queue.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/src/app/escalation.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/src/app/events.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/src/app/fixtures.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/src/app/fleet_health.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/src/app/fleet_sessions.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/src/app/fleet_terminals.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/src/app/format.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/src/app/milestone_dag.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/src/app/mod.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/src/app/msv.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/src/app/pipeline.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/src/app/plans.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/src/app/render.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/src/app/reports.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/src/app/sessions.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/src/app/settings_ui.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/src/app/sidebar.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/src/app/terminal.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/src/app/tests.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/src/app/types.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/src/app/workspace.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/src/bin/gtk.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/src/commands.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/src/lib.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/src/main.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/src/settings.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/tests/acceptance.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/tests/cli.rs +0 -0
- {code_coordinator-0.5.69 → code_coordinator-0.5.71}/tui/tests/fixtures/board_sample.json +0 -0
|
@@ -1118,6 +1118,7 @@ def _worker_subprocess_env(
|
|
|
1118
1118
|
prefix: str | None = None,
|
|
1119
1119
|
base_prefix: str | None = None,
|
|
1120
1120
|
cwd: "str | Path | None" = None,
|
|
1121
|
+
assignment_id: str | None = None,
|
|
1121
1122
|
) -> dict[str, str]:
|
|
1122
1123
|
"""Environment for worker `claude -p` subprocesses, with the agent's own
|
|
1123
1124
|
venv removed (#402).
|
|
@@ -1150,6 +1151,21 @@ def _worker_subprocess_env(
|
|
|
1150
1151
|
``provider.env()`` on top of this result may still override ``PWD``
|
|
1151
1152
|
deliberately; that ordering is preserved since we only set it here, not
|
|
1152
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.
|
|
1153
1169
|
"""
|
|
1154
1170
|
env = dict(os.environ if base_env is None else base_env)
|
|
1155
1171
|
pfx = sys.prefix if prefix is None else prefix
|
|
@@ -1172,6 +1188,9 @@ def _worker_subprocess_env(
|
|
|
1172
1188
|
if cwd is not None:
|
|
1173
1189
|
env["PWD"] = str(cwd)
|
|
1174
1190
|
|
|
1191
|
+
if assignment_id is not None:
|
|
1192
|
+
env["COORD_ASSIGNMENT_ID"] = assignment_id
|
|
1193
|
+
|
|
1175
1194
|
return env
|
|
1176
1195
|
|
|
1177
1196
|
|
|
@@ -6494,7 +6513,7 @@ class AgentServer:
|
|
|
6494
6513
|
# daemon happened to start in — worktree confinement for those
|
|
6495
6514
|
# providers must not depend on `bash_wrap_spawn` recomputing PWD as
|
|
6496
6515
|
# a side effect (see `_maybe_bash_wrap`).
|
|
6497
|
-
_spawn_env = _worker_subprocess_env(cwd=repo_path)
|
|
6516
|
+
_spawn_env = _worker_subprocess_env(cwd=repo_path, assignment_id=assignment.id)
|
|
6498
6517
|
# #1402: shared per-repo cargo target dir (see coord.cargo_cache).
|
|
6499
6518
|
# Must stay in sync with the PTY path in ``_spawn_pty``.
|
|
6500
6519
|
_spawn_env.update(
|
|
@@ -6668,7 +6687,7 @@ class AgentServer:
|
|
|
6668
6687
|
# docstring above), so unlike the headless path it never got an
|
|
6669
6688
|
# incidental PWD correction — confinement here must not depend
|
|
6670
6689
|
# on a provider trusting $PWD over getcwd() by accident.
|
|
6671
|
-
env = _worker_subprocess_env(cwd=repo_path)
|
|
6690
|
+
env = _worker_subprocess_env(cwd=repo_path, assignment_id=assignment.id)
|
|
6672
6691
|
env.setdefault("TERM", "xterm-256color")
|
|
6673
6692
|
# #1402: point cargo at this machine's shared per-repo target dir
|
|
6674
6693
|
# so the build cache survives worktree cleanup and is reused by
|
|
@@ -413,6 +413,10 @@ class AcceptanceGateChecker(Protocol):
|
|
|
413
413
|
issue_labels: tuple[str, ...],
|
|
414
414
|
) -> bool: ...
|
|
415
415
|
|
|
416
|
+
def has_authored_slice(
|
|
417
|
+
self, repo_name: str, milestone_number: int, issue_number: int,
|
|
418
|
+
) -> bool: ...
|
|
419
|
+
|
|
416
420
|
|
|
417
421
|
@dataclass
|
|
418
422
|
class GitHubAcceptanceGateChecker:
|
|
@@ -478,6 +482,35 @@ class GitHubAcceptanceGateChecker:
|
|
|
478
482
|
)
|
|
479
483
|
return readiness.exempt
|
|
480
484
|
|
|
485
|
+
def has_authored_slice(
|
|
486
|
+
self, repo_name: str, milestone_number: int, issue_number: int,
|
|
487
|
+
) -> bool:
|
|
488
|
+
"""#2061: the AUTHORITATIVE answer to "has this issue's JIT slice
|
|
489
|
+
landed?" — the manifest on the repo's default branch, read via the
|
|
490
|
+
identical ``test_ids_for_issue`` check the #1138 hard gate
|
|
491
|
+
(:func:`coord.milestone_dispatch.issue_oracle_ready`) already
|
|
492
|
+
performs, exposed here as ``OracleReadiness.has_slice``.
|
|
493
|
+
|
|
494
|
+
:func:`_decide_acceptance_author` calls this — instead of trusting
|
|
495
|
+
the `type="test-author"` assignment row alone — at every point
|
|
496
|
+
where the row is about to be read as "nothing was authored": no
|
|
497
|
+
row yet, or a terminal (``failed``/``cancelled``/``advisory``/
|
|
498
|
+
``done``) status with no branch commits. The assignment row is a
|
|
499
|
+
PROXY for this question; it can be stale (a drive that died
|
|
500
|
+
mid-run, a retry, or a #2020-mangled row) while an EARLIER attempt
|
|
501
|
+
already merged the slice. The manifest cannot lie about that: if
|
|
502
|
+
the slice is there, it landed, whatever the row says.
|
|
503
|
+
"""
|
|
504
|
+
from coord.milestone_dispatch import issue_oracle_ready # noqa: PLC0415
|
|
505
|
+
|
|
506
|
+
repo_cfg = self.config.repo(repo_name)
|
|
507
|
+
if repo_cfg is None:
|
|
508
|
+
return False
|
|
509
|
+
readiness = issue_oracle_ready(
|
|
510
|
+
repo_cfg, self.config, milestone_number, issue_number,
|
|
511
|
+
)
|
|
512
|
+
return readiness.has_slice
|
|
513
|
+
|
|
481
514
|
|
|
482
515
|
@dataclass(frozen=True)
|
|
483
516
|
class OracleDecision:
|
|
@@ -623,11 +656,47 @@ def _decide_acceptance_author(
|
|
|
623
656
|
Landing that last step is what :func:`_decide_acceptance_landing` does,
|
|
624
657
|
with the same bounded ``coord merge --only <aid>`` call
|
|
625
658
|
:func:`_decide_merge` already makes for the work row.
|
|
659
|
+
|
|
660
|
+
**#2061 — the assignment row is a proxy, the manifest is the answer.**
|
|
661
|
+
Every branch below that would otherwise treat "no row" or "a terminal
|
|
662
|
+
row with no branch commits" as "nothing was authored" first asks
|
|
663
|
+
:func:`_slice_already_landed`, which reads the manifest on the repo's
|
|
664
|
+
default branch — the same ``test_ids_for_issue`` check the #1138 hard
|
|
665
|
+
gate performs. A drive retry re-dispatches this gate without knowing
|
|
666
|
+
whether an EARLIER attempt already merged the slice; the second author
|
|
667
|
+
then correctly does nothing (``DONE`` with zero commits, or a stale
|
|
668
|
+
row that never even started) and, pre-#2061, that correct no-op was
|
|
669
|
+
read as a terminal failure — killing a run whose slice was already
|
|
670
|
+
landed and whose real work was ready to dispatch (coord-portal#13).
|
|
626
671
|
"""
|
|
627
672
|
aid = state.acceptance_author_aid
|
|
628
673
|
status = state.acceptance_author_status
|
|
629
674
|
|
|
675
|
+
def _slice_already_landed() -> bool:
|
|
676
|
+
"""#2061: the `type="test-author"` row above is a PROXY for "has
|
|
677
|
+
this issue's slice landed?" — a drive that died mid-run, a retry,
|
|
678
|
+
or a #2020-mangled row can leave it pointing at nothing (or at a
|
|
679
|
+
genuine failure) while an EARLIER attempt already merged the slice
|
|
680
|
+
from a previous run. Ask the AUTHORITATIVE question — the manifest
|
|
681
|
+
on the default branch, via :meth:`AcceptanceGateChecker.
|
|
682
|
+
has_authored_slice` — whenever the row is about to be read as
|
|
683
|
+
"nothing was authored": right before dispatching a fresh author,
|
|
684
|
+
and right before declaring a terminal, commit-less row a failure.
|
|
685
|
+
Never consulted for "" / "running" (still authoring — the slice
|
|
686
|
+
cannot be on the default branch yet) or "merged" (already the
|
|
687
|
+
strongest signal there is), so this costs one extra fetch at a
|
|
688
|
+
decision point, not one per poll tick.
|
|
689
|
+
"""
|
|
690
|
+
return gate_checker.has_authored_slice(
|
|
691
|
+
state.repo, state.milestone_number, state.issue,
|
|
692
|
+
)
|
|
693
|
+
|
|
630
694
|
if not aid:
|
|
695
|
+
# #2061: a retry (or a drive resuming after this run's own board
|
|
696
|
+
# row went missing/stale) must not re-dispatch an author for a
|
|
697
|
+
# slice that already landed from an earlier attempt.
|
|
698
|
+
if _slice_already_landed():
|
|
699
|
+
return None
|
|
631
700
|
command = [
|
|
632
701
|
"acceptance", "author", state.repo, str(oracle.tracking_issue),
|
|
633
702
|
"--issue", str(state.issue),
|
|
@@ -671,6 +740,12 @@ def _decide_acceptance_author(
|
|
|
671
740
|
return None
|
|
672
741
|
|
|
673
742
|
if status == "failed":
|
|
743
|
+
# #2061: this row's FAILED status describes what happened to THIS
|
|
744
|
+
# author, not whether the issue's slice exists — a retry's row can
|
|
745
|
+
# fail (or simply be stale) while an earlier attempt already merged
|
|
746
|
+
# the slice it was about to re-author.
|
|
747
|
+
if _slice_already_landed():
|
|
748
|
+
return None
|
|
674
749
|
return _die(
|
|
675
750
|
f"acceptance author {aid} failed — inspect: coord log {aid} "
|
|
676
751
|
f"--machine {state.acceptance_author_machine or machine}\n"
|
|
@@ -679,6 +754,8 @@ def _decide_acceptance_author(
|
|
|
679
754
|
)
|
|
680
755
|
|
|
681
756
|
if status == "cancelled":
|
|
757
|
+
if _slice_already_landed():
|
|
758
|
+
return None
|
|
682
759
|
return _die(
|
|
683
760
|
f"acceptance author {aid} was cancelled — re-dispatch by hand: "
|
|
684
761
|
f"coord acceptance author {state.repo} {oracle.tracking_issue} "
|
|
@@ -700,6 +777,11 @@ def _decide_acceptance_author(
|
|
|
700
777
|
branch = state.acceptance_author_branch
|
|
701
778
|
probe = replace(state, work_branch=branch) if branch else state
|
|
702
779
|
if not branch or not verifier.branch_has_commits(probe):
|
|
780
|
+
# #2061: a commit-less ADVISORY row IS what an earlier-landed
|
|
781
|
+
# slice's stale/retried author row looks like — check the
|
|
782
|
+
# manifest before declaring failure.
|
|
783
|
+
if _slice_already_landed():
|
|
784
|
+
return None
|
|
703
785
|
return _die(
|
|
704
786
|
f"acceptance author {aid} exited ADVISORY with no commits on "
|
|
705
787
|
"its branch — nothing was authored, so there is no slice to "
|
|
@@ -741,6 +823,13 @@ def _decide_acceptance_author(
|
|
|
741
823
|
branch = state.acceptance_author_branch
|
|
742
824
|
probe = replace(state, work_branch=branch) if branch else state
|
|
743
825
|
if not branch or not verifier.branch_has_commits(probe):
|
|
826
|
+
# #2061 (coord-portal#13): a re-dispatched author that lands in
|
|
827
|
+
# a world where the slice is ALREADY on the default branch
|
|
828
|
+
# correctly does nothing — DONE with zero commits — and that is
|
|
829
|
+
# not a failure to re-diagnose, it's the terminal case this
|
|
830
|
+
# whole gate exists to detect. Check the manifest before dying.
|
|
831
|
+
if _slice_already_landed():
|
|
832
|
+
return None
|
|
744
833
|
branch_display = repr(branch) if branch else "(none)"
|
|
745
834
|
return _die(
|
|
746
835
|
f"acceptance author {aid} exited DONE, but its branch "
|
|
@@ -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.
|
|
@@ -455,14 +455,17 @@ class FakeGateChecker:
|
|
|
455
455
|
for_path: str | None = None,
|
|
456
456
|
for_path_error: Exception | None = None,
|
|
457
457
|
exempt: bool = False,
|
|
458
|
+
landed: bool = False,
|
|
458
459
|
) -> None:
|
|
459
460
|
self._exists = exists
|
|
460
461
|
self._for_path = for_path
|
|
461
462
|
self._for_path_error = for_path_error
|
|
462
463
|
self._exempt = exempt
|
|
464
|
+
self._landed = landed
|
|
463
465
|
self.calls: list[tuple[str, int]] = []
|
|
464
466
|
self.for_path_calls: list[tuple[str, int]] = []
|
|
465
467
|
self.exempt_calls: list[tuple[str, int, int, tuple[str, ...]]] = []
|
|
468
|
+
self.landed_calls: list[tuple[str, int, int]] = []
|
|
466
469
|
|
|
467
470
|
def contract_exists(self, repo_name: str, milestone_number: int) -> bool:
|
|
468
471
|
self.calls.append((repo_name, milestone_number))
|
|
@@ -484,6 +487,12 @@ class FakeGateChecker:
|
|
|
484
487
|
self.exempt_calls.append((repo_name, milestone_number, issue_number, issue_labels))
|
|
485
488
|
return self._exempt
|
|
486
489
|
|
|
490
|
+
def has_authored_slice(
|
|
491
|
+
self, repo_name: str, milestone_number: int, issue_number: int,
|
|
492
|
+
) -> bool:
|
|
493
|
+
self.landed_calls.append((repo_name, milestone_number, issue_number))
|
|
494
|
+
return self._landed
|
|
495
|
+
|
|
487
496
|
|
|
488
497
|
def oracle_state(**kw) -> IssueState:
|
|
489
498
|
base = dict(milestone_number=38, milestone_tracking_issue=1120)
|
|
@@ -607,6 +616,17 @@ def test_the_default_gate_checker_is_issue_exempt_reuses_the_1138_hard_gate():
|
|
|
607
616
|
assert "issue_oracle_ready" in src
|
|
608
617
|
|
|
609
618
|
|
|
619
|
+
def test_the_default_gate_checker_has_authored_slice_reuses_the_1138_hard_gate():
|
|
620
|
+
"""#2061: "has the slice landed?" must be answered from the SAME
|
|
621
|
+
manifest-vs-default-branch read the #1138 hard gate performs
|
|
622
|
+
(`issue_oracle_ready`'s `has_slice`), not a fresh re-derivation that
|
|
623
|
+
could drift from it."""
|
|
624
|
+
import inspect
|
|
625
|
+
|
|
626
|
+
src = inspect.getsource(GitHubAcceptanceGateChecker.has_authored_slice)
|
|
627
|
+
assert "issue_oracle_ready" in src
|
|
628
|
+
|
|
629
|
+
|
|
610
630
|
def test_the_default_gate_checker_reuses_gate_a_status_not_a_reimplementation():
|
|
611
631
|
"""#1453: must not drift from tui's gate_a_contract_exists_for /
|
|
612
632
|
coord.milestone_dispatch.gate_a_status — both keyed on
|
|
@@ -758,13 +778,34 @@ def test_oracle_active_authors_the_slice_before_dispatching_work():
|
|
|
758
778
|
)
|
|
759
779
|
|
|
760
780
|
|
|
781
|
+
def test_oracle_active_skips_dispatching_a_new_author_when_the_slice_already_landed():
|
|
782
|
+
"""#2061 (coord-portal#13): a retry must not re-author a slice that
|
|
783
|
+
already merged from an earlier attempt — ask the manifest, not just
|
|
784
|
+
the (possibly missing/stale) assignment row, before dispatching."""
|
|
785
|
+
oracle = OracleDecision(True, "ORACLE DRIVE", tracking_issue=1120)
|
|
786
|
+
checker = FakeGateChecker(landed=True)
|
|
787
|
+
action = step(oracle_state(), oracle=oracle, gate_checker=checker)
|
|
788
|
+
assert action.kind == RUN
|
|
789
|
+
assert action.command == (
|
|
790
|
+
"assign", "precision", REPO, "1392",
|
|
791
|
+
"--driven-by", f"drive:{REPO}#1392",
|
|
792
|
+
)
|
|
793
|
+
assert checker.landed_calls == [(REPO, 38, 1392)]
|
|
794
|
+
|
|
795
|
+
|
|
761
796
|
def test_oracle_active_waits_while_the_slice_is_still_authoring():
|
|
762
797
|
oracle = OracleDecision(True, "ORACLE DRIVE", tracking_issue=1120)
|
|
798
|
+
checker = FakeGateChecker()
|
|
763
799
|
action = step(
|
|
764
800
|
state(acceptance_author_aid="ta1", acceptance_author_status="running"),
|
|
765
801
|
oracle=oracle,
|
|
802
|
+
gate_checker=checker,
|
|
766
803
|
)
|
|
767
804
|
assert action.kind == WAIT
|
|
805
|
+
# #2061: "still authoring" never needs the authoritative manifest read —
|
|
806
|
+
# the slice cannot possibly be on the default branch yet, so this must
|
|
807
|
+
# not pay a GitHub fetch on every poll tick.
|
|
808
|
+
assert checker.landed_calls == []
|
|
768
809
|
|
|
769
810
|
|
|
770
811
|
def test_oracle_active_dispatches_work_once_the_slice_has_merged():
|
|
@@ -792,6 +833,24 @@ def test_oracle_active_is_terminal_when_the_slice_authoring_fails():
|
|
|
792
833
|
assert "--no-acceptance" in action.message
|
|
793
834
|
|
|
794
835
|
|
|
836
|
+
def test_oracle_active_failed_row_is_not_terminal_when_the_slice_already_landed():
|
|
837
|
+
"""#2061: a FAILED row describes what happened to THIS author, not
|
|
838
|
+
whether the issue's slice exists — a stale/retried row can fail (or
|
|
839
|
+
just be wrong) while an earlier attempt already merged the slice."""
|
|
840
|
+
oracle = OracleDecision(True, "ORACLE DRIVE", tracking_issue=1120)
|
|
841
|
+
checker = FakeGateChecker(landed=True)
|
|
842
|
+
action = step(
|
|
843
|
+
oracle_state(acceptance_author_aid="ta1", acceptance_author_status="failed"),
|
|
844
|
+
oracle=oracle,
|
|
845
|
+
gate_checker=checker,
|
|
846
|
+
)
|
|
847
|
+
assert action.kind == RUN
|
|
848
|
+
assert action.command == (
|
|
849
|
+
"assign", "precision", REPO, "1392",
|
|
850
|
+
"--driven-by", f"drive:{REPO}#1392",
|
|
851
|
+
)
|
|
852
|
+
|
|
853
|
+
|
|
795
854
|
def test_oracle_active_is_terminal_when_the_slice_authoring_is_cancelled():
|
|
796
855
|
oracle = OracleDecision(True, "ORACLE DRIVE", tracking_issue=1120)
|
|
797
856
|
action = step(
|
|
@@ -803,6 +862,21 @@ def test_oracle_active_is_terminal_when_the_slice_authoring_is_cancelled():
|
|
|
803
862
|
assert "cancelled" in action.message
|
|
804
863
|
|
|
805
864
|
|
|
865
|
+
def test_oracle_active_cancelled_row_is_not_terminal_when_the_slice_already_landed():
|
|
866
|
+
oracle = OracleDecision(True, "ORACLE DRIVE", tracking_issue=1120)
|
|
867
|
+
checker = FakeGateChecker(landed=True)
|
|
868
|
+
action = step(
|
|
869
|
+
oracle_state(acceptance_author_aid="ta1", acceptance_author_status="cancelled"),
|
|
870
|
+
oracle=oracle,
|
|
871
|
+
gate_checker=checker,
|
|
872
|
+
)
|
|
873
|
+
assert action.kind == RUN
|
|
874
|
+
assert action.command == (
|
|
875
|
+
"assign", "precision", REPO, "1392",
|
|
876
|
+
"--driven-by", f"drive:{REPO}#1392",
|
|
877
|
+
)
|
|
878
|
+
|
|
879
|
+
|
|
806
880
|
def test_oracle_active_still_honours_do_plan_after_the_slice_has_landed():
|
|
807
881
|
oracle = OracleDecision(True, "ORACLE DRIVE", tracking_issue=1120)
|
|
808
882
|
action = step(
|
|
@@ -881,6 +955,30 @@ def test_oracle_active_advisory_with_no_commits_is_terminal():
|
|
|
881
955
|
assert "no commits" in action.message
|
|
882
956
|
|
|
883
957
|
|
|
958
|
+
def test_oracle_active_advisory_with_no_commits_is_not_terminal_when_the_slice_already_landed():
|
|
959
|
+
"""#2061: a commit-less ADVISORY row is exactly what a stale/retried
|
|
960
|
+
author's row looks like when an earlier attempt already merged the
|
|
961
|
+
slice — check the manifest before declaring failure."""
|
|
962
|
+
oracle = OracleDecision(True, "ORACLE DRIVE", tracking_issue=1120)
|
|
963
|
+
verifier = FakeVerifier(has_commits=False)
|
|
964
|
+
checker = FakeGateChecker(landed=True)
|
|
965
|
+
action = step(
|
|
966
|
+
oracle_state(
|
|
967
|
+
acceptance_author_aid="ta1",
|
|
968
|
+
acceptance_author_status="advisory",
|
|
969
|
+
acceptance_author_branch="",
|
|
970
|
+
),
|
|
971
|
+
oracle=oracle,
|
|
972
|
+
verifier=verifier,
|
|
973
|
+
gate_checker=checker,
|
|
974
|
+
)
|
|
975
|
+
assert action.kind == RUN
|
|
976
|
+
assert action.command == (
|
|
977
|
+
"assign", "precision", REPO, "1392",
|
|
978
|
+
"--driven-by", f"drive:{REPO}#1392",
|
|
979
|
+
)
|
|
980
|
+
|
|
981
|
+
|
|
884
982
|
def test_oracle_active_advisory_with_commits_requires_accept_advisory():
|
|
885
983
|
"""The #1357 false-positive shape — real commits, downgraded to
|
|
886
984
|
advisory anyway — must not be treated as "still landing"; it needs the
|
|
@@ -966,6 +1064,33 @@ def test_oracle_active_done_with_no_commits_is_terminal():
|
|
|
966
1064
|
assert "ta1" in action.message
|
|
967
1065
|
|
|
968
1066
|
|
|
1067
|
+
def test_oracle_active_done_with_no_commits_is_not_terminal_when_the_slice_already_landed():
|
|
1068
|
+
"""#2061 (coord-portal#13): the exact observed shape — a re-dispatched
|
|
1069
|
+
author lands in a world where the slice is already merged from an
|
|
1070
|
+
earlier attempt, correctly does nothing (DONE, zero commits), and
|
|
1071
|
+
drive must read that as "already done", not re-diagnose it as a
|
|
1072
|
+
failure and block the queue entry."""
|
|
1073
|
+
oracle = OracleDecision(True, "ORACLE DRIVE", tracking_issue=1120)
|
|
1074
|
+
verifier = FakeVerifier(has_commits=False)
|
|
1075
|
+
checker = FakeGateChecker(landed=True)
|
|
1076
|
+
action = step(
|
|
1077
|
+
oracle_state(
|
|
1078
|
+
acceptance_author_aid="ta1",
|
|
1079
|
+
acceptance_author_status="done",
|
|
1080
|
+
acceptance_author_branch="test-author-ms-38-slice-1124",
|
|
1081
|
+
),
|
|
1082
|
+
oracle=oracle,
|
|
1083
|
+
verifier=verifier,
|
|
1084
|
+
gate_checker=checker,
|
|
1085
|
+
)
|
|
1086
|
+
assert action.kind == RUN
|
|
1087
|
+
assert action.command == (
|
|
1088
|
+
"assign", "precision", REPO, "1392",
|
|
1089
|
+
"--driven-by", f"drive:{REPO}#1392",
|
|
1090
|
+
)
|
|
1091
|
+
assert checker.landed_calls == [(REPO, 38, 1392)]
|
|
1092
|
+
|
|
1093
|
+
|
|
969
1094
|
def test_oracle_active_done_with_no_branch_is_terminal():
|
|
970
1095
|
oracle = OracleDecision(True, "ORACLE DRIVE", tracking_issue=1120)
|
|
971
1096
|
verifier = FakeVerifier(has_commits=False)
|
|
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.69 → code_coordinator-0.5.71}/code_coordinator.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{code_coordinator-0.5.69 → code_coordinator-0.5.71}/code_coordinator.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
{code_coordinator-0.5.69 → code_coordinator-0.5.71}/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
|