code-coordinator 0.5.121__tar.gz → 0.5.124__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.121 → code_coordinator-0.5.124}/PKG-INFO +1 -1
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/code_coordinator.egg-info/PKG-INFO +1 -1
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/code_coordinator.egg-info/SOURCES.txt +2 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/code_coordinator.egg-info/scm_file_list.json +2 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/code_coordinator.egg-info/scm_version.json +2 -2
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/agent.py +11 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/commands/plan_followup.py +48 -17
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/review.py +133 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/split_work.py +13 -1
- code_coordinator-0.5.124/tests/acceptance/ms-65/board_tabs_2282.rs +852 -0
- code_coordinator-0.5.124/tests/acceptance/ms-65/manifest.yml +137 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_fix_headless_review.py +102 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_operational_defaults.py +26 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_review.py +220 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/tests/acceptance.rs +1 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/.claude/commands/board.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/.claude/commands/complete-session.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/.claude/commands/coordinator.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/.githooks/_lib.sh +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/.githooks/post-checkout +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/.githooks/post-commit +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/.githooks/post-merge +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/.github/workflows/auto-release.yml +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/.github/workflows/cargo-test.yml +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/.github/workflows/publish.yml +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/.github/workflows/release-tui.yml +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/.github/workflows/test.yml +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/.gitignore +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/CLAUDE.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/GOAL.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/LICENSE +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/MANIFEST.in +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/README.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/code_coordinator.egg-info/dependency_links.txt +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/code_coordinator.egg-info/entry_points.txt +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/code_coordinator.egg-info/requires.txt +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/code_coordinator.egg-info/top_level.txt +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/__init__.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/_board_mapping.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/acceptance.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/acceptance_drivers.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/agent_app.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/agent_update.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/agents/opencode/.gitignore +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/agents/opencode/agents/work.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/agents/opencode/routing.jsonc +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/audit.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/auto_loop.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/block_log.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/board_bool_guard.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/board_service.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/board_wire.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/brain.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/branch_model.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/bug_intake.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/cargo_cache.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/ci_github.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/ci_store.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/claim.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/cli.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/client.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/commands/__init__.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/commands/_common.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/commands/acceptance.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/commands/agent_ops.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/commands/audit.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/commands/chat.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/commands/dispatch.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/commands/dispatch_workers.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/commands/drive.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/commands/drive_queue.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/commands/gate_a.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/commands/gates.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/commands/issues.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/commands/lifecycle.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/commands/merge.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/commands/milestone.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/commands/plans.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/commands/portal.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/commands/release.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/commands/repo.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/commands/report.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/commands/review.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/commands/scorecard.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/commands/sessions.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/commands/setup.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/commands/status.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/commands/terminal.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/commands/test_gate.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/commands/tui.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/comments.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/config.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/config_reload.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/conflict_fix.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dao.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/__init__.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/fixture.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/index.html +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/server.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/terminal.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/.gitignore +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/components.json +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/dist/assets/Gallery-BoKs3mpY.js +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/dist/assets/Terminal-9CEnUXvW.css +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/dist/assets/Terminal-CEsP08iX.js +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/dist/assets/index-CDHPlB6k.js +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/dist/assets/index-Dq4kwTdw.css +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/dist/assets/workbox-window.prod.es5-BqEJf4Xk.js +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/dist/icons/icon-192.png +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/dist/icons/icon-512.png +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/dist/icons/icon.svg +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/dist/index.html +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/dist/manifest.webmanifest +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/dist/sw.js +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/dist/workbox-e4022e15.js +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/e2e/available-gates-terminal.spec.ts +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/e2e/deep-link.spec.ts +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/e2e/fixtureServer.ts +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/e2e/live-update-fixture.spec.ts +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/e2e/realtime.spec.ts +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/e2e/shell.spec.ts +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/e2e/smoke.spec.ts +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/e2e/terminal.spec.ts +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/e2e/theme.spec.ts +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/eslint.config.js +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/index.html +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/node_modules/flatted/python/flatted.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/package-lock.json +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/package.json +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/playwright.acceptance.config.ts +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/playwright.config.ts +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/postcss.config.js +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/public/icons/icon-192.png +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/public/icons/icon-512.png +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/public/icons/icon.svg +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/App.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/api/client.ts +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/api/generated.ts +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/components/ConnectionBadge.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/components/Detail.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/components/Gallery.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/components/Home.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/components/MobileKeyBar.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/components/PanelHeader.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/components/PipelineCard.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/components/SessionCard.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/components/SessionDetail.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/components/SessionsList.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/components/Terminal.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/components/__tests__/ConnectionBadge.test.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/components/__tests__/Detail.test.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/components/__tests__/Gallery.test.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/components/__tests__/Home.test.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/components/__tests__/MobileKeyBar.test.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/components/__tests__/PipelineCard.test.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/components/__tests__/SessionCard.test.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/components/__tests__/Terminal.test.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/components/ui/badge.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/components/ui/button.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/components/ui/card.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/components/ui/dialog.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/components/ui/dropdown-menu.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/components/ui/empty-state.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/components/ui/sheet.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/components/ui/skeleton.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/components/ui/tabs.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/components/ui/theme-provider.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/components/ui/theme-toggle.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/components/ui/toast.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/components/ui/toaster.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/components/ui/tooltip.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/components/ui/use-toast.ts +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/index.css +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/lib/pipeline.ts +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/lib/utils.ts +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/main.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/realtime/RealtimeProvider.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/realtime/__tests__/RealtimeProvider.test.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/realtime/__tests__/connection.test.ts +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/realtime/connection.ts +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/realtime/events.ts +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/routes/__tests__/paths.test.ts +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/routes/paths.ts +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/shell/ActivityRail.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/shell/AppShell.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/shell/ComingSoon.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/shell/EmptyDetail.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/shell/RouteNotFound.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/shell/ShellLayout.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/shell/StatusBar.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/shell/__tests__/ShellLayout.test.tsx +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/shell/__tests__/shellState.test.ts +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/shell/__tests__/stubViewport.ts +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/shell/breakpoints.ts +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/shell/railItems.ts +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/shell/shellState.ts +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/shell/useRegionFocus.ts +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/test-setup.ts +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/src/vite-env.d.ts +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/tailwind.config.js +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/tsconfig.json +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/tsconfig.node.json +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dashboard/webapp/vite.config.ts +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/db.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dead_end.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/deploy/README.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/deploy_manifest.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/deploy_units.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/deps.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/diagnose.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dispatch.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/dist_name.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/drive.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/drive_queue.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/drive_state.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/events.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/failure_class.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/filelock.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/fleet_config_health.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/freshness.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/gate_a.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/gate_b.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/gate_snapshot.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/gates.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/github_ops.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/goal.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/graph_health.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/health/__init__.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/health/aggregate.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/health/checks/__init__.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/health/checks/agent_install.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/health/checks/cargo_targets.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/health/checks/claude_binary.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/health/checks/deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/health/checks/disk.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/health/checks/fleet_board.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/health/checks/fleet_deploy_lanes.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/health/checks/fleet_phantom.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/health/checks/fleet_unit_drift.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/health/checks/graph.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/health/checks/graphify_cli.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/health/checks/index_lock.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/health/checks/plan_usage.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/health/checks/repo_state.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/health/checks/spawned_coord.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/health/checks/timer_active.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/health/checks/toolchain.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/health/checks/unit_drift.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/health/checks/unit_enablement.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/health/checks/worktrees.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/health/cli.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/health/context.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/health/fleet_snapshot.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/health/models.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/health/pypi.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/health/registry.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/health/render.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/health/units.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/hooks.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/housekeeping.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/interactive.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/issue_store.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/liveness_auditor.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/machine_pause.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/merge_queue.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/milestone_chat.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/milestone_dispatch.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/milestone_gate.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/milestone_order.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/mock_author.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/models.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/network.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/new_issue_chat.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/notifier/__init__.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/notifier/baseline.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/notifier/cli.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/notifier/collect.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/notifier/digest.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/notifier/models.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/notifier/predicate.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/notifier/service.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/notifier/store.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/notifier/transport.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/notify.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/openapi.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/overlap_fence.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/overlap_predict.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/parentage.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/parentage_github.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/pipeline.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/plan_parser.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/plans.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/platform_paths.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/portal_bridge.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/portal_store.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/portal_sync.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/pr_body_lint.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/prereqs.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/progress.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/providers/__init__.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/providers/base.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/providers/claude.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/providers/claude_pty.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/providers/opencode.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/queue_diagnose.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/reconcile.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/refine_chat.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/release_cordon.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/release_propagate.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/release_verify.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/release_window.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/repo_edit.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/repo_onboard.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/reports.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/revalidate.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/scorecard.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/serve_app.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/skills/portal-followup/SKILL.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/skills/update-issue/SKILL.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/smoke.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/spend_ceiling.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/stage_projection.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/state.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/test_author.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/test_chat.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/test_orchestrator.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/test_report.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/tui_release.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/usage.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/usage_limits.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/usage_rollup.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coord/worker_events.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/coordinator.example.yml +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/deploy/coord-web-dist-build.sh +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/deploy/coord-web-rollback.sh +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/deploy/node-shim.sh +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/docs/AGENT_OPERATIONS.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/docs/ARCHITECTURE.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/docs/ARCH_SECURITY_GATES.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/docs/COCKPIT.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/docs/CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/docs/COST_DISCIPLINE.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/docs/CROSS_PLATFORM.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/docs/CUSTOMER_PORTAL.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/docs/DRIVE_QUEUE.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/docs/EPHEMERAL_WORKERS.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/docs/FORGE_MIGRATION.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/docs/GRAPHIFY_SETUP.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/docs/ISSUE_GUIDANCE.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/docs/MAC_MINI.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/docs/NOTIFIER.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/docs/OPENCODE_VERIFICATION.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/docs/OPERATING_GOTCHAS.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/docs/ORACLE_LOOP.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/docs/PHONE_WEBAPP.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/docs/PIPELINE_V2.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/docs/PLATFORM_EVOLUTION.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/docs/SECOND_BACKEND.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/docs/STORE_SERVICE.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/docs/TEST_FIRST_BUG_LANE.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/docs/WEB_CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/docs/mocks/web/README.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/docs/mocks/web/_tokens.css +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/docs/mocks/web/issue-detail.html +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/docs/mocks/web/pipeline-narrow.html +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/docs/mocks/web/pipeline-wide.html +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/graphify-out/.gitignore +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/install-agent.sh +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/pyproject.toml +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/scripts/audit_review_verdict_overrides.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/scripts/azure-workers/bootstrap-shared.sh +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/scripts/azure-workers/build-worker-image.sh +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/scripts/azure-workers/coordinator-machine.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/scripts/azure-workers/epic-down.sh +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/scripts/azure-workers/epic-up.sh +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/scripts/azure-workers/preflight.sh +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/scripts/azure-workers/provision-worker.sh +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/scripts/azure-workers/tailnet-acl.hujson +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/scripts/azure-workers/verify-github-token.sh +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/scripts/codegen.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/scripts/coord-test-runner.sh +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/scripts/drive-batch.sh +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/scripts/gen_board_fixture.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/scripts/next_release_tag.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/scripts/run_tests_in_populated_home.sh +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/scripts/run_tests_without_gh.sh +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/scripts/smoke_437_interactive.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/scripts/verify_878_review_capture.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/scripts/verify_release_published.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/scripts/verify_release_wheel.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/setup.cfg +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/SMOKE_SET.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/__init__.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-33/audit_1039.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-33/contract.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-33/manifest.yml +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-33/mocks/audit-panel-detail.screen +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-33/mocks/audit-panel-empty.screen +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-33/mocks/audit-panel-filters.screen +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-33/mocks/audit-panel-populated.screen +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-37/conftest.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-37/contract.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-37/manifest.yml +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-38/contract.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-38/manifest.yml +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-38/mocks/plans-base.screen +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-38/mocks/plans-detail-pane.screen +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-38/mocks/plans-help-overlay.screen +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-38/mocks/plans-palette.screen +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-38/mocks/plans-rightclick-epic.screen +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-38/mocks/plans-rightclick-header.screen +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-38/mocks/plans-rightclick-stub.screen +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-38/plans_detail_1122.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-38/plans_help_1124.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-38/plans_rightclick_1123.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-51/contract.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-51/manifest.yml +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-51/tsconfig.json +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-65/contract.md +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-65/mocks/board-baseline-no-tabs.screen +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-65/mocks/board-pinned-3-tabs.screen +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-65/mocks/board-preview-tab.screen +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-65/mocks/board-split-side-by-side.screen +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-65/mocks/board-tab-context-menu.screen +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-65/mocks/board-tabs-help-overlay.screen +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-65/mocks/board-tabs-overflow.screen +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-65/mocks/pipeline-tabs-independent.screen +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/conftest.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/fixtures/board-pipeline-basic.json +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/fixtures/opencode_run_sample.jsonl +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/fixtures/playwright/all_pass.json +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/fixtures/playwright/global_setup_crash.json +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/fixtures/playwright/mixed_fail.json +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/fixtures/playwright/retry_then_pass.json +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/fixtures/playwright/skip.json +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/fixtures/playwright/truncated.json +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_acceptance.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_acceptance_drivers.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_agent.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_agent_api_error.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_agent_app.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_agent_branch_base.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_agent_branch_capture.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_agent_config_free_1712.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_agent_deploy_units_endpoint.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_agent_dirty_worktree.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_agent_graph_self_heal.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_agent_health_h3.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_agent_idle_restart.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_agent_push_failure.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_agent_reap.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_agent_repos_and_pull.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_agent_restart_services_endpoint.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_agent_startup_diagnostics.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_agent_update.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_agent_update_bluegreen.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_agent_usage_limit.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_agent_zero_commit.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_ambient_home_isolation.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_approve_reject_plan.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_approve_usage_gate.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_assignment_already_recorded_daemon.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_audit_log.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_audit_outcome.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_audit_query.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_auto_loop.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_auto_release_publish_2035.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_base_checkout_restore.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_block_log.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_board_cap_762.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_board_fixture.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_board_read_path.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_board_service.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_board_state.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_board_wire.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_brain.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_branch_model.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_bug_intake.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_build_worker_image_env_update.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cargo_cache.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_ci_acceptance_gate_1950.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_ci_parity_2091.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_ci_store.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_claim.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_acceptance.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_assign.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_assign_interactive_remote.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_assign_provider.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_assign_repo_drift_2219.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_audit.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_chat_continue.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_diagnose_config_provenance.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_diagnose_graph.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_doctor.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_doctor_config_free_1801.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_drive.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_drive_queue.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_escalate.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_gate_a.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_install_drift.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_install_skills.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_issue_create_label.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_issue_reopen.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_merge.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_milestone_assign.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_milestone_capture.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_milestone_chat_add_child.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_milestone_gate_b.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_milestone_gate_c.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_milestone_order.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_milestone_ship.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_network.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_new_issue_chat.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_plans.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_portal.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_pull_artifact.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_queue.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_reattach_sessions.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_refine_board.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_release_preflight.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_release_propagate.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_release_window.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_repo_2220.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_scorecard.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_set_review_findings.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_status_advisory_terminal.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_status_merge_queue.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_status_provider.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_status_review_finalizing.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_status_test_failed_tag.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_status_usage_limit.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_sync_comments_873.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_test_plan.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_track.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_tui_update.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cli_wait.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_client_base_install.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_comments.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_completion_summary.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_config.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_config_acceptance.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_config_audit.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_config_pricing.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_config_usage_gate.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_conflict_fix.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_conflict_fix_semantic.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_coord_test.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_coord_test_runner_baseline.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_coord_test_runner_routing.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_coord_test_runner_toolchain.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_coord_web_sse_restart_live.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_coordinator_machine.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_cross_platform_imports.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_dashboard.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_dashboard_fixture.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_dashboard_terminal.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_dashboard_terminal_live.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_db.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_dead_end.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_deploy_coord_db_backup.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_deploy_coord_web_dist.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_deploy_coord_web_rollback.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_deploy_drive_queue_unit.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_deploy_manifest.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_deploy_units_lane.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_deploy_web_unit.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_deps.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_diagnose.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_dispatch.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_dispatch_target_validation.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_dist_name.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_done_housekeeping.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_drive.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_drive_queue.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_drive_state.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_drive_tmux.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_epic_up_capability_detection.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_epic_up_image_provenance.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_errors.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_events.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_failure_class.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_filelock.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_fix_of_force_override.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_fleet_config_health.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_fleet_health_probes.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_fleet_health_snapshot.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_freshness.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_gate_a.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_gate_b.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_gate_snapshot_staleness.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_gates.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_gather_fleet_tmux_sessions.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_generated_types_fixture.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_github_ops.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_goal.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_graph_health.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_graph_selfheal_absent_2237.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_handoff.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_health_checks.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_health_cli.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_health_cli_graph.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_health_config.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_health_context.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_health_deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_health_incident_regression.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_health_pypi.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_health_registry.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_health_timer_active.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_health_toolchain.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_health_unit_drift.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_health_unit_enablement.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_hooks.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_human_attended_437.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_init.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_integration.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_interactive_briefing_echo.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_interactive_prefill_state.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_interactive_session_relaunch.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_interactive_test_verdict_backstop.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_interactive_token_attribution.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_interactive_worktree.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_issue_store_seam.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_liveness_auditor.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_liveness_notify.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_machine_pause.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_merge_queue.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_merge_verify.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_milestone_chat.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_milestone_gate.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_milestone_order.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_milestone_seam.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_mock_author.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_model_tiering.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_models.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_models_config_labels.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_needs_attention.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_network.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_new_issue_chat.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_next_release_tag.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_no_direct_gh_calls.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_node_shim.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_notifier_baseline.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_notifier_cli.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_notifier_collect.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_notifier_config.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_notifier_drive_seam.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_notifier_isolation.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_notifier_predicate.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_notifier_quiet_hours.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_notifier_service.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_notify.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_notify_drain.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_openapi.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_overlap_fence.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_overlap_predict.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_packaged_deploy_units.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_parentage.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_paste_landed.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_pipeline.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_plan_followup_approve_plan_command.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_plan_followup_pr_command.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_plan_followup_review_command.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_plan_only.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_plan_parser.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_platform_paths.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_portal_bridge.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_portal_config.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_portal_sync.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_pr_body_lint.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_prereqs.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_production_db_guard.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_progress.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_provider_seam.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_providers.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_providers_config_labels.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_providers_pty.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_quiet_hours.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_quiet_hours_store_2146.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_reap_merged_sessions.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_reap_stale_interactive_tick.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_reconcile.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_reconcile_branch.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_reconcile_completions.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_reconcile_merges.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_reconcile_no_agent_record.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_reconcile_usage_limit_done.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_refine_chat.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_release_cordon_2101.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_release_cordon_deadlock_2240.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_release_propagate.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_release_unified_1242.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_release_verify.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_release_window.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_remote_auto_prune.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_remote_interactive_reaper.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_repo_edit_2220.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_repo_graph_fleet_2237.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_repo_onboard_2220.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_report_result_push.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_reports.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_retry.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_retry_advisory_1606.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_retry_type_1636.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_revalidate.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_review_end_review_without_verdict.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_review_parse_failure_diagnostic.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_review_reaffirm.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_review_state.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_review_verdict_backstop.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_review_verdict_override_audit.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_review_verdict_relay.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_review_zero_commits.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_scoped_review_wiring.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_scorecard.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_serve.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_serve_app_board_trim.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_session.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_slice_issue_attribution.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_smoke.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_smoke_live_checkout_restore.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_smoke_workflow.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_spend_ceiling.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_spend_ceiling_coordinator.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_split.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_split_work.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_stage_projection.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_stalled_pipeline.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_state.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_state_review_findings_daemon.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_status_fleet_footer.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_stop_1567.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_stuck.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_terminal_command.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_test_author.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_test_chat.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_test_orchestrator.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_test_report.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_test_verdict_parsing.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_test_verdict_transcript_floor.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_thin_client_board_audit.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_thin_client_config_load_1080.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_thin_client_daemon_routing_906.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_tmux_host.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_tmux_session.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_transcript_floor.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_usage.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_usage_limits.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_usage_rollup.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_venv_live_install_2121.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_version_single_source.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_watch.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_worker_events.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_worker_image_pin_sync.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_worker_safety.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_worker_test_scoping.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_worktree.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tests/test_worktree_rmtree_chokepoint.py +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/Cargo.lock +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/Cargo.toml +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/cargo-config-local-quadraui.toml.example +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/src/app/audit.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/src/app/chat.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/src/app/data.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/src/app/dialogs.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/src/app/drive.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/src/app/drive_queue.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/src/app/escalation.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/src/app/events.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/src/app/fixtures.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/src/app/fleet_health.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/src/app/fleet_sessions.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/src/app/fleet_terminals.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/src/app/format.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/src/app/milestone_dag.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/src/app/mod.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/src/app/msv.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/src/app/pipeline.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/src/app/plans.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/src/app/render.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/src/app/reports.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/src/app/sessions.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/src/app/settings_ui.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/src/app/sidebar.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/src/app/terminal.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/src/app/tests.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/src/app/types.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/src/app/workspace.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/src/bin/gtk.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/src/commands.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/src/lib.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/src/main.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/src/settings.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/tests/cli.rs +0 -0
- {code_coordinator-0.5.121 → code_coordinator-0.5.124}/tui/tests/fixtures/board_sample.json +0 -0
|
@@ -784,7 +784,9 @@ tests/acceptance/ms-51/home-active.spec.ts
|
|
|
784
784
|
tests/acceptance/ms-51/manifest.yml
|
|
785
785
|
tests/acceptance/ms-51/tsconfig.json
|
|
786
786
|
tests/acceptance/ms-51/mocks/home-active.html
|
|
787
|
+
tests/acceptance/ms-65/board_tabs_2282.rs
|
|
787
788
|
tests/acceptance/ms-65/contract.md
|
|
789
|
+
tests/acceptance/ms-65/manifest.yml
|
|
788
790
|
tests/acceptance/ms-65/mocks/board-baseline-no-tabs.screen
|
|
789
791
|
tests/acceptance/ms-65/mocks/board-pinned-3-tabs.screen
|
|
790
792
|
tests/acceptance/ms-65/mocks/board-preview-tab.screen
|
{code_coordinator-0.5.121 → code_coordinator-0.5.124}/code_coordinator.egg-info/scm_file_list.json
RENAMED
|
@@ -429,7 +429,9 @@
|
|
|
429
429
|
"tests/acceptance/ms-51/manifest.yml",
|
|
430
430
|
"tests/acceptance/ms-51/mocks/home-active.html",
|
|
431
431
|
"tests/acceptance/ms-51/tsconfig.json",
|
|
432
|
+
"tests/acceptance/ms-65/board_tabs_2282.rs",
|
|
432
433
|
"tests/acceptance/ms-65/contract.md",
|
|
434
|
+
"tests/acceptance/ms-65/manifest.yml",
|
|
433
435
|
"tests/acceptance/ms-65/mocks/board-baseline-no-tabs.screen",
|
|
434
436
|
"tests/acceptance/ms-65/mocks/board-pinned-3-tabs.screen",
|
|
435
437
|
"tests/acceptance/ms-65/mocks/board-preview-tab.screen",
|
|
@@ -3186,6 +3186,17 @@ not apply to it.
|
|
|
3186
3186
|
- If even the scoped run genuinely cannot finish in time, follow the \
|
|
3187
3187
|
background-and-poll pattern in the ONE-SHOT section above — do not invent \
|
|
3188
3188
|
a chunk-and-loop workaround.
|
|
3189
|
+
- #2192: check your own diff now — does it change user-visible behavior \
|
|
3190
|
+
AND add/modify zero test files? That exact pattern was 18.5% of this \
|
|
3191
|
+
repo's blocking reviews (#2132): the code was correct, but CLAUDE.md's \
|
|
3192
|
+
"Testing — black-box coverage is the acceptance bar" rule was skipped, so \
|
|
3193
|
+
the adversarial reviewer rejected it — costing a paid review leg plus a \
|
|
3194
|
+
fix + re-review round trip to catch something you can see for free right \
|
|
3195
|
+
now, in this same already-running session. If it fires, add the test \
|
|
3196
|
+
before declaring done. If this genuinely is a pure refactor / \
|
|
3197
|
+
internal-only change (CLAUDE.md's existing exemption), say so explicitly \
|
|
3198
|
+
in your final message instead — that already satisfies the reviewer, no \
|
|
3199
|
+
test required.
|
|
3189
3200
|
|
|
3190
3201
|
#252: before exiting, emit a SMOKE_TESTS block telling the human what to \
|
|
3191
3202
|
manually verify. You changed the code; you know what's worth poking.
|
|
@@ -787,8 +787,9 @@ def _fix_from_review(
|
|
|
787
787
|
@click.command(
|
|
788
788
|
help=(
|
|
789
789
|
"Dispatch a headless same-branch fix worker.\n\n"
|
|
790
|
-
"ASSIGNMENT_ID is either a WORK assignment whose test gate FAILED
|
|
791
|
-
"whose PR has red CI
|
|
790
|
+
"ASSIGNMENT_ID is either a WORK assignment whose test gate FAILED "
|
|
791
|
+
"(or whose PR has red CI, or whose oracle-loop acceptance trust "
|
|
792
|
+
"gate FAILED — #2344), or a REVIEW assignment whose verdict was "
|
|
792
793
|
"request-changes. Either way the fix lands on the ORIGINAL branch and "
|
|
793
794
|
"updates the ORIGINAL PR — no new issue-N-* branch, no orphan PR."
|
|
794
795
|
)
|
|
@@ -802,12 +803,12 @@ def _fix_from_review(
|
|
|
802
803
|
help=(
|
|
803
804
|
"Override the #555 interactive-work exclusion when fixing a review of "
|
|
804
805
|
"work that ran under claude-pty, or (#2051) dispatch a WORK-row fix "
|
|
805
|
-
"when neither the test verdict
|
|
806
|
-
"for when the caller knows the PR is red
|
|
807
|
-
"(ci_store not configured, a transient read
|
|
808
|
-
"refusal names which of those it was, so
|
|
809
|
-
"before reaching for this. Does NOT override
|
|
810
|
-
"or the #522 terminal-work guard."
|
|
806
|
+
"when neither the test verdict, a live CI read, nor the acceptance "
|
|
807
|
+
"trust gate shows a failure — for when the caller knows the PR is red "
|
|
808
|
+
"but the check missed it (ci_store not configured, a transient read "
|
|
809
|
+
"error). Since #2091 the refusal names which of those it was, so "
|
|
810
|
+
"check the `note:` line before reaching for this. Does NOT override "
|
|
811
|
+
"max_review_iterations or the #522 terminal-work guard."
|
|
811
812
|
),
|
|
812
813
|
)
|
|
813
814
|
def fix(assignment_id: str, config_path: Path, guidance: str, force: bool) -> None:
|
|
@@ -837,10 +838,27 @@ def fix(assignment_id: str, config_path: Path, guidance: str, force: bool) -> No
|
|
|
837
838
|
# `smoke_test=NULL` and must still be fixable.
|
|
838
839
|
test_failed = assignment.test_state == "failed" or assignment.smoke_test == "fail"
|
|
839
840
|
|
|
841
|
+
# #2344: the oracle-loop TRUST GATE (docs/ORACLE_LOOP.md, #2199) is a
|
|
842
|
+
# fourth door onto this command. `_decide_acceptance_gate`
|
|
843
|
+
# (coord/drive.py) dispatches `coord fix <work_aid>` the instant the
|
|
844
|
+
# gate's coordinator-run re-run of the sealed suite comes back red — the
|
|
845
|
+
# same shape as `_decide_test` dispatching on a failed Test verdict.
|
|
846
|
+
# Before this, nothing here recognized that door: a milestone whose
|
|
847
|
+
# trust gate failed in isolation (Test not yet run, or already passed;
|
|
848
|
+
# CI green) hit the #2051 "expected a failed test verdict" refusal on
|
|
849
|
+
# every attempt — structurally unwinnable, not a transient miss — until
|
|
850
|
+
# the drive-queue entry parked after burning its retry budget (ms-65 /
|
|
851
|
+
# #2282, observed live 2026-08-17).
|
|
852
|
+
acceptance_failed = assignment.acceptance_state == "failed"
|
|
853
|
+
|
|
840
854
|
# #1622 (part 3): red CI is the third trigger. Only consulted when the
|
|
841
855
|
# local test gate has NOT already failed, so the cheap in-DB path stays
|
|
842
|
-
# zero-I/O and the existing failure story keeps priority.
|
|
843
|
-
|
|
856
|
+
# zero-I/O and the existing failure story keeps priority. #2344: same
|
|
857
|
+
# treatment for a failed trust gate — it is definitive evidence on its
|
|
858
|
+
# own, so skip the live CI read entirely rather than let a green CI read
|
|
859
|
+
# (which says nothing about the trust gate's sealed-suite re-run) shadow
|
|
860
|
+
# it below.
|
|
861
|
+
ci_read = CiRead() if (test_failed or acceptance_failed) else _read_ci(cfg, assignment)
|
|
844
862
|
ci_story = ci_read.story
|
|
845
863
|
|
|
846
864
|
# #2091: the stored Test verdict says PASSED while the branch's live CI
|
|
@@ -876,8 +894,9 @@ def fix(assignment_id: str, config_path: Path, guidance: str, force: bool) -> No
|
|
|
876
894
|
err=True,
|
|
877
895
|
)
|
|
878
896
|
|
|
879
|
-
# #2051: none of the
|
|
880
|
-
#
|
|
897
|
+
# #2051 (extended by #2344): none of the four doors (failed test
|
|
898
|
+
# verdict, red CI, a failed acceptance trust gate, or the review-id door
|
|
899
|
+
# handled above) is open. `_read_ci` is read-only and
|
|
881
900
|
# fail-quiet (see :class:`CiRead`) — a missing story means "no CI
|
|
882
901
|
# evidence of a failure", never "CI is green" — so a caller who KNOWS
|
|
883
902
|
# the PR is red (ci_store not configured for this repo, a transient
|
|
@@ -886,15 +905,16 @@ def fix(assignment_id: str, config_path: Path, guidance: str, force: bool) -> No
|
|
|
886
905
|
# that caller's release valve; it is NOT a way to skip the #555 / #522 /
|
|
887
906
|
# max_review_iterations guards, which sit elsewhere.
|
|
888
907
|
forced_without_evidence = False
|
|
889
|
-
if not test_failed and ci_story is None:
|
|
908
|
+
if not test_failed and not acceptance_failed and ci_story is None:
|
|
890
909
|
if not force:
|
|
891
910
|
click.echo(
|
|
892
911
|
f"error: assignment {assignment_id} test_state is "
|
|
893
912
|
f"{assignment.test_state!r} / smoke_test is "
|
|
894
|
-
f"{assignment.smoke_test!r}
|
|
895
|
-
"
|
|
896
|
-
"
|
|
897
|
-
"
|
|
913
|
+
f"{assignment.smoke_test!r} / acceptance_state is "
|
|
914
|
+
f"{assignment.acceptance_state!r}, expected a failed test "
|
|
915
|
+
"verdict (or red CI on its PR, a failed acceptance trust "
|
|
916
|
+
"gate, or a request-changes review id). If the PR is "
|
|
917
|
+
"actually red and this check missed it, re-run with --force.",
|
|
898
918
|
err=True,
|
|
899
919
|
)
|
|
900
920
|
# #2091: say WHY there is no CI evidence. Before this, six
|
|
@@ -940,6 +960,14 @@ def fix(assignment_id: str, config_path: Path, guidance: str, force: bool) -> No
|
|
|
940
960
|
test_output_file = COORD_DIR / "test_output" / f"{assignment_id}.txt"
|
|
941
961
|
if ci_story is not None:
|
|
942
962
|
test_output = ci_story
|
|
963
|
+
elif acceptance_failed and not test_failed:
|
|
964
|
+
# #2344: the trust gate's own recorded reason is the evidence for
|
|
965
|
+
# this door — `coord acceptance record` writes it to
|
|
966
|
+
# `acceptance_reason` at the same time it flips `acceptance_state`
|
|
967
|
+
# to "failed" (coord/state.py). Neither the CI-story nor the
|
|
968
|
+
# smoke/test-reason fallbacks below apply here: this door fires
|
|
969
|
+
# precisely when Test/CI are NOT what's red.
|
|
970
|
+
test_output = assignment.acceptance_reason or ""
|
|
943
971
|
elif test_output_file.exists():
|
|
944
972
|
test_output = test_output_file.read_text()
|
|
945
973
|
elif assignment.smoke_test_reason or assignment.test_reason:
|
|
@@ -965,6 +993,9 @@ def fix(assignment_id: str, config_path: Path, guidance: str, force: bool) -> No
|
|
|
965
993
|
"red)"
|
|
966
994
|
)
|
|
967
995
|
_failure_heading = "Reported failure (--force, unverified)"
|
|
996
|
+
elif acceptance_failed and not test_failed and ci_story is None:
|
|
997
|
+
_what = "a failed oracle-loop acceptance trust gate (#2199)"
|
|
998
|
+
_failure_heading = "Acceptance trust-gate failure"
|
|
968
999
|
else:
|
|
969
1000
|
_what = "red CI" if ci_story is not None else "a failed smoke test"
|
|
970
1001
|
_failure_heading = "CI failure" if ci_story is not None else "Test failure"
|
|
@@ -1273,6 +1273,108 @@ def _diff_paths_outside_sealed(diff_text: str, sealed_paths: list[str]) -> list[
|
|
|
1273
1273
|
)
|
|
1274
1274
|
|
|
1275
1275
|
|
|
1276
|
+
# ── #2192: free pre-review "missing test" nudge ─────────────────────────────
|
|
1277
|
+
#
|
|
1278
|
+
# #2132 classified 27 request-changes verdicts on this repo and found 5/27
|
|
1279
|
+
# (18.5%) were "missing required black-box test only" — the code was correct,
|
|
1280
|
+
# but the diff changed user-visible behavior and shipped no test, which
|
|
1281
|
+
# CLAUDE.md's "Testing — black-box coverage is the acceptance bar" section
|
|
1282
|
+
# already requires. Each one cost a full paid review leg plus a fix +
|
|
1283
|
+
# re-review round trip to catch a pattern a static check can see for free.
|
|
1284
|
+
#
|
|
1285
|
+
# This is intentionally a coarse, path-only heuristic — no diff semantics, no
|
|
1286
|
+
# ``claude -p`` call, no LLM judgment, just the same cheap file-path
|
|
1287
|
+
# inspection ``_diff_file_paths``/``_diff_touched_sealed_paths`` already do
|
|
1288
|
+
# above. It is a NUDGE, not a gate: callers only ever log it, never act on it
|
|
1289
|
+
# to change dispatch behavior, so a false positive costs nothing (the
|
|
1290
|
+
# reviewer remains the sole authority and, per CLAUDE.md, already honors a
|
|
1291
|
+
# PR that says it's a pure refactor / internal-only change).
|
|
1292
|
+
#
|
|
1293
|
+
# The caller (``dispatch_review``) logs the result at ``log.warning``, not
|
|
1294
|
+
# ``log.info`` — this repo has no ``logging.basicConfig`` anywhere outside
|
|
1295
|
+
# tests, so the root logger stays at the default WARNING floor with no
|
|
1296
|
+
# handler attached and an INFO record never reaches anyone. WARNING clears
|
|
1297
|
+
# that floor and reaches Python's handler-of-last-resort (stderr) with zero
|
|
1298
|
+
# configuration. See the comment at the call site for the empirical check.
|
|
1299
|
+
|
|
1300
|
+
_TEST_BASENAME_PREFIXES = ("test_",)
|
|
1301
|
+
_TEST_BASENAME_SUFFIXES = (
|
|
1302
|
+
"_test.py", "_test.rs",
|
|
1303
|
+
".test.ts", ".test.tsx", ".spec.ts", ".spec.tsx",
|
|
1304
|
+
)
|
|
1305
|
+
_TEST_BASENAME_EXACT = ("conftest.py",)
|
|
1306
|
+
# Matched against the path with a leading "/" prepended, so both a
|
|
1307
|
+
# repo-root prefix ("tests/foo.py" -> "/tests/foo.py") and a nested
|
|
1308
|
+
# directory ("tui/tests/foo.rs" -> "/tui/tests/foo.rs") are caught by the
|
|
1309
|
+
# same substring check.
|
|
1310
|
+
_TEST_PATH_SEGMENTS = ("/tests/", "/test/", "/__tests__/", "/e2e/")
|
|
1311
|
+
|
|
1312
|
+
# Paths under these prefixes are internal tooling/docs, never shipped
|
|
1313
|
+
# product behavior — CLAUDE.md's "internal-only changes are exempt" carve-out,
|
|
1314
|
+
# expressed as the only thing a pure diff inspection can see: file location.
|
|
1315
|
+
_NON_USER_VISIBLE_PATH_PREFIXES = (
|
|
1316
|
+
"docs/", "scripts/", "deploy/", ".github/", ".claude/", "graphify-out/",
|
|
1317
|
+
)
|
|
1318
|
+
_USER_VISIBLE_SUFFIXES = (".py", ".rs", ".ts", ".tsx", ".js", ".jsx")
|
|
1319
|
+
|
|
1320
|
+
|
|
1321
|
+
def _is_test_path(path: str) -> bool:
|
|
1322
|
+
"""Does *path* look like a test file, by name/location alone?
|
|
1323
|
+
|
|
1324
|
+
NOTE (#2192 review follow-up): ``coord/split_work.py``'s ``_is_test_file``
|
|
1325
|
+
answers a similarly-shaped question with a narrower, Python-only rule
|
|
1326
|
+
set, for chunk-splitting rather than this module's review nudge. See
|
|
1327
|
+
that function's docstring for why the two aren't unified yet.
|
|
1328
|
+
"""
|
|
1329
|
+
lower = path.lower()
|
|
1330
|
+
base = lower.rsplit("/", 1)[-1]
|
|
1331
|
+
if base in _TEST_BASENAME_EXACT:
|
|
1332
|
+
return True
|
|
1333
|
+
if any(base.startswith(p) for p in _TEST_BASENAME_PREFIXES):
|
|
1334
|
+
return True
|
|
1335
|
+
if any(base.endswith(s) for s in _TEST_BASENAME_SUFFIXES):
|
|
1336
|
+
return True
|
|
1337
|
+
return any(seg in f"/{lower}" for seg in _TEST_PATH_SEGMENTS)
|
|
1338
|
+
|
|
1339
|
+
|
|
1340
|
+
def _is_user_visible_path(path: str) -> bool:
|
|
1341
|
+
"""Does *path* look like shipped source (not test, not internal tooling)?"""
|
|
1342
|
+
lower = path.lower()
|
|
1343
|
+
if _is_test_path(lower):
|
|
1344
|
+
return False
|
|
1345
|
+
if any(lower.startswith(p) for p in _NON_USER_VISIBLE_PATH_PREFIXES):
|
|
1346
|
+
return False
|
|
1347
|
+
return any(lower.endswith(s) for s in _USER_VISIBLE_SUFFIXES)
|
|
1348
|
+
|
|
1349
|
+
|
|
1350
|
+
def diff_missing_test_coverage(diff_text: str | None) -> bool:
|
|
1351
|
+
"""#2192: True when *diff_text* touches user-visible source and zero
|
|
1352
|
+
test files, the pattern behind 18.5% of #2132's blocking reviews.
|
|
1353
|
+
|
|
1354
|
+
Pure, free, deterministic path inspection — reuses :func:`_diff_file_paths`.
|
|
1355
|
+
Returns False (never flags) when the diff is empty, touches no recognized
|
|
1356
|
+
source file (docs-only/internal-tooling-only diffs — CLAUDE.md's
|
|
1357
|
+
internal-only exemption), or already includes a test-file change.
|
|
1358
|
+
|
|
1359
|
+
The CLAUDE.md exemption is honored only at the granularity a path-only
|
|
1360
|
+
heuristic can see: whole file *types/locations* (``docs/``, ``scripts/``,
|
|
1361
|
+
non-source suffixes, ...), not genuine behavior-preserving refactors of
|
|
1362
|
+
shipped source. A true pure refactor of a ``.py``/``.rs``/``.ts`` file
|
|
1363
|
+
(e.g. renaming a local variable) with no test changes still flags —
|
|
1364
|
+
harmless today since the caller only ever logs this, never gates on it,
|
|
1365
|
+
but worth knowing if a caller ever starts acting on the result: at that
|
|
1366
|
+
point this function would honor a narrower exemption than CLAUDE.md's
|
|
1367
|
+
own text, which is about intent ("pure refactor / internal-only"), not
|
|
1368
|
+
file location.
|
|
1369
|
+
"""
|
|
1370
|
+
if not diff_text or not diff_text.strip():
|
|
1371
|
+
return False
|
|
1372
|
+
paths = _diff_file_paths(diff_text)
|
|
1373
|
+
if not any(_is_user_visible_path(p) for p in paths):
|
|
1374
|
+
return False
|
|
1375
|
+
return not any(_is_test_path(p) for p in paths)
|
|
1376
|
+
|
|
1377
|
+
|
|
1276
1378
|
def build_review_briefing(
|
|
1277
1379
|
*,
|
|
1278
1380
|
pr_number: int | None,
|
|
@@ -2063,6 +2165,30 @@ def dispatch_review(
|
|
|
2063
2165
|
fetch_body = issue_body_fetcher or _fetch_issue_body
|
|
2064
2166
|
issue_body = fetch_body(repo.github, completed.issue_number)
|
|
2065
2167
|
|
|
2168
|
+
# #2192: free pre-review nudge (see diff_missing_test_coverage docstring).
|
|
2169
|
+
# Logged only, ahead of the paid reviewer dispatch below — never gates,
|
|
2170
|
+
# never denies, never mutates `completed`. A false positive here must
|
|
2171
|
+
# never cost a round trip, so nothing downstream reads this.
|
|
2172
|
+
#
|
|
2173
|
+
# Deliberately `log.warning`, not `log.info` (#2192 review follow-up):
|
|
2174
|
+
# this repo has zero `logging.basicConfig`/`setLevel`/`addHandler` calls
|
|
2175
|
+
# outside tests (see coord/interactive.py:888-898's #865 note on the same
|
|
2176
|
+
# trap), so the root logger sits at Python's default WARNING floor with
|
|
2177
|
+
# no handler attached — an `INFO` record is filtered before it reaches
|
|
2178
|
+
# anywhere and is a silent no-op under every real entry point (`coord
|
|
2179
|
+
# serve`, `coord notify`, `reconcile()`). `WARNING` clears that floor and
|
|
2180
|
+
# is picked up by `logging`'s handler-of-last-resort, which prints
|
|
2181
|
+
# straight to stderr with zero configuration — confirmed empirically:
|
|
2182
|
+
# `logging.getLogger("coord.review").warning(...)` in a bare subprocess
|
|
2183
|
+
# writes to stderr; `.info(...)` writes nothing.
|
|
2184
|
+
if diff_missing_test_coverage(full_diff_text):
|
|
2185
|
+
log.warning(
|
|
2186
|
+
"[review] %s: diff touches user-visible source with zero test "
|
|
2187
|
+
"files changed — matches #2132's 'missing test only' pattern "
|
|
2188
|
+
"(free static check, non-blocking; dispatching review as normal)",
|
|
2189
|
+
completed.assignment_id,
|
|
2190
|
+
)
|
|
2191
|
+
|
|
2066
2192
|
# #1811: does the resolved review provider share the worker's model
|
|
2067
2193
|
# family? ``completed.provider_name`` is the *resolved* name recorded at
|
|
2068
2194
|
# work-dispatch time (spec > repo > providers.default); ``None`` means a
|
|
@@ -2834,6 +2960,13 @@ def dispatch_scoped_review(
|
|
|
2834
2960
|
not the prior reviewer) so the scoped review stays independent of the
|
|
2835
2961
|
code it's judging, mirroring :func:`dispatch_review`'s
|
|
2836
2962
|
``completed.machine_name`` contract.
|
|
2963
|
+
|
|
2964
|
+
Does NOT run the #2192 "missing test coverage" nudge that
|
|
2965
|
+
:func:`dispatch_review` does ahead of its dispatch — intentional, not an
|
|
2966
|
+
oversight: this path only fires after a conflict-fix rebase where a full
|
|
2967
|
+
review (nudge included) already happened against the whole PR, and the
|
|
2968
|
+
delta reviewed here is scoped to just the rebase's own resolution, not
|
|
2969
|
+
the PR's original feature diff.
|
|
2837
2970
|
"""
|
|
2838
2971
|
if not config.reviews.enabled or not config.reviews.auto_dispatch:
|
|
2839
2972
|
return None
|
|
@@ -30,7 +30,19 @@ class WorkChunk:
|
|
|
30
30
|
# ---------------------------------------------------------------------------
|
|
31
31
|
|
|
32
32
|
def _is_test_file(f: str) -> bool:
|
|
33
|
-
"""Return True if the file is a test file.
|
|
33
|
+
"""Return True if the file is a test file.
|
|
34
|
+
|
|
35
|
+
NOTE (#2192 review follow-up): ``coord/review.py``'s ``_is_test_path``
|
|
36
|
+
answers a similarly-shaped question (Rust/TS/JS suffixes, nested
|
|
37
|
+
``tests/`` dirs, ``conftest.py``, ``__tests__/``/``e2e/``) but for a
|
|
38
|
+
different downstream consumer — that one gates a free pre-review nudge,
|
|
39
|
+
this one drives chunk assignment for large-diff splitting. Deliberately
|
|
40
|
+
NOT unified yet: broadening this classifier to match the other one would
|
|
41
|
+
change which files get treated as "test files" during chunk splitting,
|
|
42
|
+
a behavior change out of scope for #2192. Flagged per the repo's "one
|
|
43
|
+
question, one answer" rule (epic #2096) as worth consolidating into one
|
|
44
|
+
shared helper if the two questions ever turn out to be the same one.
|
|
45
|
+
"""
|
|
34
46
|
p = Path(f)
|
|
35
47
|
return (
|
|
36
48
|
len(p.parts) > 0 and p.parts[0] in ("tests", "test")
|