code-coordinator 0.5.114__tar.gz → 0.5.115__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.114 → code_coordinator-0.5.115}/PKG-INFO +1 -1
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/code_coordinator.egg-info/PKG-INFO +1 -1
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/code_coordinator.egg-info/scm_version.json +2 -2
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/commands/dispatch.py +27 -10
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/diagnose.py +6 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/github_ops.py +69 -1
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_diagnose.py +37 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_github_ops.py +187 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_retry_advisory_1606.py +9 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/.claude/commands/board.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/.claude/commands/complete-session.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/.claude/commands/coordinator.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/.githooks/_lib.sh +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/.githooks/post-checkout +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/.githooks/post-commit +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/.githooks/post-merge +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/.github/workflows/auto-release.yml +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/.github/workflows/cargo-test.yml +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/.github/workflows/publish.yml +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/.github/workflows/release-tui.yml +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/.github/workflows/test.yml +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/.gitignore +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/CLAUDE.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/GOAL.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/LICENSE +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/MANIFEST.in +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/README.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/code_coordinator.egg-info/SOURCES.txt +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/code_coordinator.egg-info/dependency_links.txt +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/code_coordinator.egg-info/entry_points.txt +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/code_coordinator.egg-info/requires.txt +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/code_coordinator.egg-info/scm_file_list.json +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/code_coordinator.egg-info/top_level.txt +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/__init__.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/_board_mapping.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/acceptance.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/acceptance_drivers.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/agent.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/agent_app.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/agent_update.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/agents/opencode/.gitignore +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/agents/opencode/agents/work.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/agents/opencode/routing.jsonc +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/audit.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/auto_loop.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/block_log.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/board_bool_guard.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/board_service.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/board_wire.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/brain.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/branch_model.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/bug_intake.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/cargo_cache.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/ci_github.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/ci_store.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/claim.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/cli.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/client.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/commands/__init__.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/commands/_common.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/commands/acceptance.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/commands/agent_ops.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/commands/audit.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/commands/chat.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/commands/dispatch_workers.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/commands/drive.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/commands/drive_queue.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/commands/gate_a.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/commands/gates.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/commands/issues.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/commands/lifecycle.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/commands/merge.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/commands/milestone.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/commands/plan_followup.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/commands/plans.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/commands/portal.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/commands/release.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/commands/repo.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/commands/report.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/commands/review.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/commands/scorecard.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/commands/sessions.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/commands/setup.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/commands/status.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/commands/terminal.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/commands/test_gate.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/commands/tui.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/comments.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/config.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/config_reload.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/conflict_fix.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dao.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/__init__.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/fixture.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/index.html +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/server.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/terminal.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/.gitignore +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/components.json +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/dist/assets/Gallery-BoKs3mpY.js +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/dist/assets/Terminal-9CEnUXvW.css +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/dist/assets/Terminal-CEsP08iX.js +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/dist/assets/index-CDHPlB6k.js +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/dist/assets/index-Dq4kwTdw.css +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/dist/assets/workbox-window.prod.es5-BqEJf4Xk.js +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/dist/icons/icon-192.png +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/dist/icons/icon-512.png +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/dist/icons/icon.svg +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/dist/index.html +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/dist/manifest.webmanifest +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/dist/sw.js +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/dist/workbox-e4022e15.js +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/e2e/available-gates-terminal.spec.ts +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/e2e/deep-link.spec.ts +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/e2e/fixtureServer.ts +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/e2e/live-update-fixture.spec.ts +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/e2e/realtime.spec.ts +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/e2e/shell.spec.ts +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/e2e/smoke.spec.ts +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/e2e/terminal.spec.ts +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/e2e/theme.spec.ts +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/eslint.config.js +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/index.html +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/node_modules/flatted/python/flatted.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/package-lock.json +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/package.json +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/playwright.acceptance.config.ts +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/playwright.config.ts +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/postcss.config.js +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/public/icons/icon-192.png +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/public/icons/icon-512.png +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/public/icons/icon.svg +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/App.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/api/client.ts +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/api/generated.ts +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/components/ConnectionBadge.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/components/Detail.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/components/Gallery.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/components/Home.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/components/MobileKeyBar.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/components/PanelHeader.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/components/PipelineCard.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/components/SessionCard.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/components/SessionDetail.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/components/SessionsList.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/components/Terminal.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/components/__tests__/ConnectionBadge.test.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/components/__tests__/Detail.test.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/components/__tests__/Gallery.test.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/components/__tests__/Home.test.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/components/__tests__/MobileKeyBar.test.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/components/__tests__/PipelineCard.test.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/components/__tests__/SessionCard.test.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/components/__tests__/Terminal.test.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/components/ui/badge.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/components/ui/button.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/components/ui/card.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/components/ui/dialog.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/components/ui/dropdown-menu.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/components/ui/empty-state.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/components/ui/sheet.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/components/ui/skeleton.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/components/ui/tabs.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/components/ui/theme-provider.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/components/ui/theme-toggle.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/components/ui/toast.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/components/ui/toaster.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/components/ui/tooltip.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/components/ui/use-toast.ts +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/index.css +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/lib/pipeline.ts +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/lib/utils.ts +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/main.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/realtime/RealtimeProvider.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/realtime/__tests__/RealtimeProvider.test.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/realtime/__tests__/connection.test.ts +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/realtime/connection.ts +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/realtime/events.ts +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/routes/__tests__/paths.test.ts +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/routes/paths.ts +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/shell/ActivityRail.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/shell/AppShell.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/shell/ComingSoon.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/shell/EmptyDetail.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/shell/RouteNotFound.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/shell/ShellLayout.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/shell/StatusBar.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/shell/__tests__/ShellLayout.test.tsx +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/shell/__tests__/shellState.test.ts +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/shell/__tests__/stubViewport.ts +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/shell/breakpoints.ts +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/shell/railItems.ts +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/shell/shellState.ts +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/shell/useRegionFocus.ts +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/test-setup.ts +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/src/vite-env.d.ts +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/tailwind.config.js +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/tsconfig.json +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/tsconfig.node.json +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dashboard/webapp/vite.config.ts +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/db.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dead_end.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/deploy/README.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/deploy_manifest.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/deploy_units.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/deps.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dispatch.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/dist_name.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/drive.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/drive_queue.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/drive_state.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/events.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/failure_class.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/filelock.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/fleet_config_health.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/freshness.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/gate_a.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/gate_b.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/gate_snapshot.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/gates.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/goal.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/graph_health.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/health/__init__.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/health/aggregate.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/health/checks/__init__.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/health/checks/agent_install.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/health/checks/cargo_targets.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/health/checks/claude_binary.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/health/checks/deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/health/checks/disk.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/health/checks/fleet_board.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/health/checks/fleet_deploy_lanes.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/health/checks/fleet_phantom.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/health/checks/fleet_unit_drift.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/health/checks/graph.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/health/checks/graphify_cli.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/health/checks/index_lock.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/health/checks/plan_usage.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/health/checks/repo_state.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/health/checks/spawned_coord.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/health/checks/timer_active.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/health/checks/toolchain.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/health/checks/unit_drift.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/health/checks/unit_enablement.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/health/checks/worktrees.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/health/cli.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/health/context.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/health/fleet_snapshot.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/health/models.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/health/pypi.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/health/registry.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/health/render.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/health/units.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/hooks.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/housekeeping.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/interactive.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/issue_store.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/liveness_auditor.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/machine_pause.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/merge_queue.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/milestone_chat.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/milestone_dispatch.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/milestone_gate.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/milestone_order.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/mock_author.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/models.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/network.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/new_issue_chat.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/notifier/__init__.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/notifier/baseline.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/notifier/cli.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/notifier/collect.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/notifier/digest.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/notifier/models.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/notifier/predicate.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/notifier/service.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/notifier/store.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/notifier/transport.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/notify.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/openapi.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/overlap_fence.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/overlap_predict.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/parentage.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/parentage_github.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/pipeline.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/plan_parser.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/plans.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/platform_paths.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/portal_bridge.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/portal_store.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/portal_sync.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/pr_body_lint.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/prereqs.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/progress.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/providers/__init__.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/providers/base.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/providers/claude.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/providers/claude_pty.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/providers/opencode.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/queue_diagnose.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/reconcile.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/refine_chat.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/release_cordon.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/release_propagate.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/release_verify.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/release_window.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/repo_edit.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/repo_onboard.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/reports.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/revalidate.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/review.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/scorecard.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/serve_app.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/skills/update-issue/SKILL.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/smoke.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/spend_ceiling.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/split_work.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/stage_projection.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/state.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/test_author.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/test_chat.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/test_orchestrator.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/test_report.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/tui_release.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/usage.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/usage_limits.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/usage_rollup.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coord/worker_events.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/coordinator.example.yml +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/deploy/coord-web-dist-build.sh +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/deploy/coord-web-rollback.sh +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/deploy/node-shim.sh +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/docs/AGENT_OPERATIONS.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/docs/ARCHITECTURE.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/docs/ARCH_SECURITY_GATES.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/docs/COCKPIT.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/docs/CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/docs/COST_DISCIPLINE.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/docs/CROSS_PLATFORM.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/docs/CUSTOMER_PORTAL.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/docs/DRIVE_QUEUE.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/docs/EPHEMERAL_WORKERS.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/docs/FORGE_MIGRATION.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/docs/GRAPHIFY_SETUP.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/docs/ISSUE_GUIDANCE.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/docs/MAC_MINI.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/docs/NOTIFIER.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/docs/OPENCODE_VERIFICATION.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/docs/OPERATING_GOTCHAS.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/docs/ORACLE_LOOP.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/docs/PHONE_WEBAPP.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/docs/PIPELINE_V2.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/docs/PLATFORM_EVOLUTION.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/docs/SECOND_BACKEND.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/docs/STORE_SERVICE.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/docs/TEST_FIRST_BUG_LANE.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/docs/WEB_CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/docs/mocks/web/README.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/docs/mocks/web/_tokens.css +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/docs/mocks/web/issue-detail.html +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/docs/mocks/web/pipeline-narrow.html +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/docs/mocks/web/pipeline-wide.html +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/graphify-out/.gitignore +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/install-agent.sh +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/pyproject.toml +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/scripts/audit_review_verdict_overrides.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/scripts/azure-workers/bootstrap-shared.sh +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/scripts/azure-workers/build-worker-image.sh +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/scripts/azure-workers/coordinator-machine.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/scripts/azure-workers/epic-down.sh +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/scripts/azure-workers/epic-up.sh +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/scripts/azure-workers/preflight.sh +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/scripts/azure-workers/provision-worker.sh +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/scripts/azure-workers/tailnet-acl.hujson +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/scripts/azure-workers/verify-github-token.sh +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/scripts/codegen.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/scripts/coord-test-runner.sh +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/scripts/drive-batch.sh +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/scripts/gen_board_fixture.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/scripts/next_release_tag.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/scripts/run_tests_in_populated_home.sh +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/scripts/run_tests_without_gh.sh +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/scripts/smoke_437_interactive.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/scripts/verify_878_review_capture.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/scripts/verify_release_published.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/scripts/verify_release_wheel.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/setup.cfg +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/SMOKE_SET.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/__init__.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/acceptance/ms-33/audit_1039.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/acceptance/ms-33/contract.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/acceptance/ms-33/manifest.yml +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/acceptance/ms-33/mocks/audit-panel-detail.screen +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/acceptance/ms-33/mocks/audit-panel-empty.screen +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/acceptance/ms-33/mocks/audit-panel-filters.screen +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/acceptance/ms-33/mocks/audit-panel-populated.screen +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/acceptance/ms-37/conftest.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/acceptance/ms-37/contract.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/acceptance/ms-37/manifest.yml +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/acceptance/ms-38/contract.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/acceptance/ms-38/manifest.yml +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/acceptance/ms-38/mocks/plans-base.screen +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/acceptance/ms-38/mocks/plans-detail-pane.screen +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/acceptance/ms-38/mocks/plans-help-overlay.screen +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/acceptance/ms-38/mocks/plans-palette.screen +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/acceptance/ms-38/mocks/plans-rightclick-epic.screen +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/acceptance/ms-38/mocks/plans-rightclick-header.screen +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/acceptance/ms-38/mocks/plans-rightclick-stub.screen +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/acceptance/ms-38/plans_detail_1122.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/acceptance/ms-38/plans_help_1124.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/acceptance/ms-38/plans_rightclick_1123.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/acceptance/ms-51/contract.md +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/acceptance/ms-51/manifest.yml +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/acceptance/ms-51/tsconfig.json +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/conftest.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/fixtures/board-pipeline-basic.json +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/fixtures/opencode_run_sample.jsonl +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/fixtures/playwright/all_pass.json +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/fixtures/playwright/global_setup_crash.json +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/fixtures/playwright/mixed_fail.json +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/fixtures/playwright/retry_then_pass.json +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/fixtures/playwright/skip.json +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/fixtures/playwright/truncated.json +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_acceptance.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_acceptance_drivers.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_agent.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_agent_api_error.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_agent_app.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_agent_branch_base.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_agent_branch_capture.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_agent_config_free_1712.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_agent_deploy_units_endpoint.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_agent_dirty_worktree.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_agent_graph_self_heal.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_agent_health_h3.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_agent_idle_restart.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_agent_push_failure.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_agent_reap.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_agent_repos_and_pull.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_agent_restart_services_endpoint.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_agent_startup_diagnostics.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_agent_update.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_agent_update_bluegreen.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_agent_usage_limit.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_agent_zero_commit.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_ambient_home_isolation.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_approve_reject_plan.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_approve_usage_gate.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_assignment_already_recorded_daemon.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_audit_log.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_audit_outcome.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_audit_query.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_auto_loop.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_auto_release_publish_2035.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_base_checkout_restore.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_block_log.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_board_cap_762.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_board_fixture.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_board_read_path.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_board_service.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_board_state.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_board_wire.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_brain.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_branch_model.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_bug_intake.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_build_worker_image_env_update.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cargo_cache.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_ci_acceptance_gate_1950.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_ci_parity_2091.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_ci_store.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_claim.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_acceptance.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_assign.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_assign_interactive_remote.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_assign_provider.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_assign_repo_drift_2219.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_audit.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_chat_continue.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_diagnose_config_provenance.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_diagnose_graph.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_doctor.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_doctor_config_free_1801.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_drive.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_drive_queue.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_escalate.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_fix_headless_review.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_gate_a.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_install_drift.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_install_skills.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_issue_create_label.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_issue_reopen.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_merge.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_milestone_assign.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_milestone_capture.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_milestone_chat_add_child.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_milestone_gate_b.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_milestone_gate_c.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_milestone_order.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_milestone_ship.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_network.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_new_issue_chat.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_plans.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_portal.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_pull_artifact.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_queue.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_reattach_sessions.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_refine_board.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_release_preflight.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_release_propagate.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_release_window.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_repo_2220.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_scorecard.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_set_review_findings.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_status_advisory_terminal.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_status_merge_queue.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_status_provider.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_status_review_finalizing.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_status_test_failed_tag.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_status_usage_limit.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_sync_comments_873.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_test_plan.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_track.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_tui_update.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cli_wait.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_client_base_install.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_comments.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_completion_summary.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_config.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_config_acceptance.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_config_audit.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_config_pricing.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_config_usage_gate.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_conflict_fix.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_conflict_fix_semantic.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_coord_test.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_coord_test_runner_baseline.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_coord_test_runner_routing.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_coord_test_runner_toolchain.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_coord_web_sse_restart_live.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_coordinator_machine.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_cross_platform_imports.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_dashboard.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_dashboard_fixture.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_dashboard_terminal.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_dashboard_terminal_live.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_db.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_dead_end.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_deploy_coord_db_backup.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_deploy_coord_web_dist.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_deploy_coord_web_rollback.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_deploy_drive_queue_unit.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_deploy_manifest.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_deploy_units_lane.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_deploy_web_unit.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_deps.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_dispatch.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_dispatch_target_validation.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_dist_name.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_done_housekeeping.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_drive.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_drive_queue.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_drive_state.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_drive_tmux.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_epic_up_capability_detection.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_epic_up_image_provenance.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_errors.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_events.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_failure_class.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_filelock.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_fix_of_force_override.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_fleet_config_health.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_fleet_health_probes.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_fleet_health_snapshot.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_freshness.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_gate_a.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_gate_b.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_gate_snapshot_staleness.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_gates.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_gather_fleet_tmux_sessions.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_generated_types_fixture.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_goal.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_graph_health.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_graph_selfheal_absent_2237.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_handoff.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_health_checks.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_health_cli.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_health_cli_graph.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_health_config.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_health_context.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_health_deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_health_incident_regression.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_health_pypi.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_health_registry.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_health_timer_active.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_health_toolchain.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_health_unit_drift.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_health_unit_enablement.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_hooks.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_human_attended_437.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_init.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_integration.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_interactive_briefing_echo.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_interactive_prefill_state.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_interactive_session_relaunch.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_interactive_test_verdict_backstop.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_interactive_token_attribution.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_interactive_worktree.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_issue_store_seam.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_liveness_auditor.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_liveness_notify.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_machine_pause.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_merge_queue.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_merge_verify.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_milestone_chat.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_milestone_gate.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_milestone_order.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_milestone_seam.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_mock_author.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_model_tiering.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_models.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_models_config_labels.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_needs_attention.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_network.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_new_issue_chat.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_next_release_tag.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_no_direct_gh_calls.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_node_shim.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_notifier_baseline.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_notifier_cli.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_notifier_collect.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_notifier_config.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_notifier_drive_seam.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_notifier_isolation.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_notifier_predicate.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_notifier_quiet_hours.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_notifier_service.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_notify.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_notify_drain.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_openapi.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_operational_defaults.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_overlap_fence.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_overlap_predict.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_packaged_deploy_units.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_parentage.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_paste_landed.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_pipeline.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_plan_followup_approve_plan_command.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_plan_followup_pr_command.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_plan_followup_review_command.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_plan_only.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_plan_parser.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_platform_paths.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_portal_bridge.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_portal_config.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_portal_sync.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_pr_body_lint.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_prereqs.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_production_db_guard.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_progress.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_provider_seam.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_providers.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_providers_config_labels.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_providers_pty.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_quiet_hours.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_quiet_hours_store_2146.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_reap_merged_sessions.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_reap_stale_interactive_tick.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_reconcile_branch.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_reconcile_completions.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_reconcile_merges.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_reconcile_no_agent_record.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_reconcile_usage_limit_done.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_refine_chat.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_release_cordon_2101.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_release_cordon_deadlock_2240.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_release_propagate.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_release_unified_1242.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_release_verify.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_release_window.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_remote_auto_prune.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_remote_interactive_reaper.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_repo_edit_2220.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_repo_graph_fleet_2237.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_repo_onboard_2220.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_report_result_push.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_reports.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_retry.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_retry_type_1636.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_revalidate.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_review.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_review_end_review_without_verdict.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_review_parse_failure_diagnostic.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_review_reaffirm.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_review_state.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_review_verdict_backstop.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_review_verdict_override_audit.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_review_verdict_relay.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_review_zero_commits.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_scoped_review_wiring.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_scorecard.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_serve.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_serve_app_board_trim.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_session.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_slice_issue_attribution.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_smoke.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_smoke_live_checkout_restore.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_smoke_workflow.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_spend_ceiling.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_spend_ceiling_coordinator.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_split.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_split_work.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_stage_projection.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_stalled_pipeline.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_state.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_state_review_findings_daemon.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_status_fleet_footer.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_stop_1567.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_stuck.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_terminal_command.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_test_author.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_test_chat.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_test_orchestrator.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_test_report.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_test_verdict_parsing.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_test_verdict_transcript_floor.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_thin_client_board_audit.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_thin_client_config_load_1080.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_thin_client_daemon_routing_906.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_tmux_host.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_tmux_session.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_transcript_floor.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_usage.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_usage_limits.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_usage_rollup.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_venv_live_install_2121.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_version_single_source.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_watch.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_worker_events.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_worker_image_pin_sync.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_worker_safety.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_worker_test_scoping.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_worktree.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tests/test_worktree_rmtree_chokepoint.py +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/Cargo.lock +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/Cargo.toml +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/cargo-config-local-quadraui.toml.example +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/src/app/audit.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/src/app/chat.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/src/app/data.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/src/app/dialogs.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/src/app/drive.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/src/app/drive_queue.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/src/app/escalation.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/src/app/events.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/src/app/fixtures.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/src/app/fleet_health.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/src/app/fleet_sessions.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/src/app/fleet_terminals.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/src/app/format.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/src/app/milestone_dag.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/src/app/mod.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/src/app/msv.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/src/app/pipeline.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/src/app/plans.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/src/app/render.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/src/app/reports.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/src/app/sessions.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/src/app/settings_ui.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/src/app/sidebar.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/src/app/terminal.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/src/app/tests.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/src/app/types.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/src/app/workspace.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/src/bin/gtk.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/src/commands.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/src/lib.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/src/main.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/src/settings.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/tests/acceptance.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/tests/cli.rs +0 -0
- {code_coordinator-0.5.114 → code_coordinator-0.5.115}/tui/tests/fixtures/board_sample.json +0 -0
|
@@ -1873,18 +1873,35 @@ def retry(assignment_id: str, config_path: Path, acknowledge_cost: bool = False)
|
|
|
1873
1873
|
# an independent inline copy of the same "branch empty → 0, repo
|
|
1874
1874
|
# missing → None, else ask GitHub" logic.
|
|
1875
1875
|
ahead = github_ops.branch_commits_ahead_for_assignment(assignment, cfg)
|
|
1876
|
-
if ahead
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1876
|
+
if ahead is None:
|
|
1877
|
+
# #2324: a genuine lookup failure (network error, auth, rate
|
|
1878
|
+
# limit, repo missing) is NOT evidence that commits exist — it's
|
|
1879
|
+
# just an unanswered question. Don't assert the #1357
|
|
1880
|
+
# false-positive shape or point at `--accept-advisory`, which
|
|
1881
|
+
# assumes real commits are sitting on the branch; nothing here
|
|
1882
|
+
# established that. Say the lookup failed and name what to
|
|
1883
|
+
# check instead. (A confirmed 404 on the head branch is handled
|
|
1884
|
+
# above this `is None` check — `branch_commits_ahead_for_assignment`
|
|
1885
|
+
# reads that as 0, not None.)
|
|
1886
|
+
click.echo(
|
|
1887
|
+
f"error: assignment {assignment_id} is 'advisory', and its "
|
|
1888
|
+
"commit count could not be confirmed (gh lookup failed) — "
|
|
1889
|
+
"coord retry only re-dispatches a GENUINE zero-commit "
|
|
1890
|
+
"advisory, and a failed lookup isn't confirmation either "
|
|
1891
|
+
"way. Check `gh api` access and the recorded branch/repo, "
|
|
1892
|
+
"then retry; or inspect by hand: coord log "
|
|
1893
|
+
f"{assignment_id}.",
|
|
1894
|
+
err=True,
|
|
1881
1895
|
)
|
|
1896
|
+
sys.exit(1)
|
|
1897
|
+
if ahead != 0:
|
|
1882
1898
|
click.echo(
|
|
1883
|
-
f"error: assignment {assignment_id} is 'advisory', and
|
|
1884
|
-
"
|
|
1885
|
-
"
|
|
1886
|
-
"signature instead; use `coord
|
|
1887
|
-
"proceed with the existing
|
|
1899
|
+
f"error: assignment {assignment_id} is 'advisory', and "
|
|
1900
|
+
f"{ahead} commit(s) are present on its branch — coord retry "
|
|
1901
|
+
"only re-dispatches a GENUINE zero-commit advisory. This is "
|
|
1902
|
+
"the #1357 false-positive signature instead; use `coord "
|
|
1903
|
+
"drive --accept-advisory` to proceed with the existing "
|
|
1904
|
+
"commits, or inspect by hand.",
|
|
1888
1905
|
err=True,
|
|
1889
1906
|
)
|
|
1890
1907
|
sys.exit(1)
|
|
@@ -1069,6 +1069,12 @@ def _work_advisory_commits_ahead(assignment: "Assignment", config: "Config") ->
|
|
|
1069
1069
|
zero-commit gate uses) rather than a local git checkout — `coord
|
|
1070
1070
|
diagnose` runs on the daemon host, which has no guarantee of a local
|
|
1071
1071
|
clone of every worker's branch.
|
|
1072
|
+
|
|
1073
|
+
#2324: ``None`` here means the lookup genuinely couldn't be confirmed
|
|
1074
|
+
(network/auth/rate-limit/repo-missing) — a head branch GitHub positively
|
|
1075
|
+
404s, with the base branch still resolving, comes back as ``0`` instead
|
|
1076
|
+
(see :func:`coord.github_ops.branch_commits_ahead`), since a deleted
|
|
1077
|
+
branch is proof nothing was pushed, not an unknown.
|
|
1072
1078
|
"""
|
|
1073
1079
|
from coord import github_ops # noqa: PLC0415
|
|
1074
1080
|
|
|
@@ -1775,6 +1775,58 @@ def get_compare_files(repo: str, base: str, head: str) -> list[str] | None:
|
|
|
1775
1775
|
return [line for line in (ln.strip() for ln in raw.splitlines()) if line]
|
|
1776
1776
|
|
|
1777
1777
|
|
|
1778
|
+
def _gh_ref_confirmed_missing(exc: Exception) -> bool:
|
|
1779
|
+
"""True when *exc* (raised by ``_gh`` for a ``gh api`` ref/compare call)
|
|
1780
|
+
is GitHub positively saying "no such ref" — a 404 — as opposed to an
|
|
1781
|
+
auth, rate-limit, network, or other transient failure that merely looks
|
|
1782
|
+
like one from the caller's point of view.
|
|
1783
|
+
|
|
1784
|
+
#2324: deliberately narrower than the "http 4" match
|
|
1785
|
+
:func:`branch_exists_on_remote` uses (which folds 401/403/429 in with
|
|
1786
|
+
404, and fails open elsewhere for that function's own reasons). This is
|
|
1787
|
+
the one call site where conflating "confirmed gone" with "auth/rate-limit
|
|
1788
|
+
blip" would make `coord retry`'s zero-commit gate treat a locked-out
|
|
1789
|
+
``gh`` as proof a branch was deleted and race ahead re-dispatching real,
|
|
1790
|
+
unconfirmed work — so it checks :func:`_is_transient_error`'s keywords
|
|
1791
|
+
first and only then looks for an explicit "404"/"not found" signal.
|
|
1792
|
+
"""
|
|
1793
|
+
if _is_transient_error(exc):
|
|
1794
|
+
return False
|
|
1795
|
+
msg = str(exc).lower()
|
|
1796
|
+
return "404" in msg or "not found" in msg
|
|
1797
|
+
|
|
1798
|
+
|
|
1799
|
+
def _head_branch_confirmed_deleted(repo: str, base: str, branch: str) -> bool:
|
|
1800
|
+
"""True when *branch* 404s on *repo* while *base* still resolves.
|
|
1801
|
+
|
|
1802
|
+
#2324: :func:`branch_commits_ahead`'s three-dot compare call 404s
|
|
1803
|
+
identically whether it's the head branch that's gone, the base branch,
|
|
1804
|
+
or something else entirely obscures both — the compare error text alone
|
|
1805
|
+
can't tell them apart. This asks each ref directly (the same
|
|
1806
|
+
``git/refs/heads`` lookup :func:`branch_exists_on_remote` uses) so a
|
|
1807
|
+
branch that was genuinely deleted — the normal cleanup after a
|
|
1808
|
+
zero-commit worker exit — reads as "confirmed gone" instead of being
|
|
1809
|
+
lumped in with an unrelated failure and reported as unknown.
|
|
1810
|
+
|
|
1811
|
+
Only returns True on the one shape that's actually conclusive: the head
|
|
1812
|
+
ref 404s (via :func:`_gh_ref_confirmed_missing`) *and* the base ref
|
|
1813
|
+
still resolves. Any other combination — head resolves fine, head lookup
|
|
1814
|
+
itself fails inconclusively, or base can't be confirmed either — returns
|
|
1815
|
+
False so the caller keeps its existing fail-closed ``None``.
|
|
1816
|
+
"""
|
|
1817
|
+
try:
|
|
1818
|
+
_gh("api", f"repos/{repo}/git/refs/heads/{branch}")
|
|
1819
|
+
return False # head resolves fine; compare failed for some other reason
|
|
1820
|
+
except RuntimeError as exc:
|
|
1821
|
+
if not _gh_ref_confirmed_missing(exc):
|
|
1822
|
+
return False # inconclusive — do not guess
|
|
1823
|
+
try:
|
|
1824
|
+
_gh("api", f"repos/{repo}/git/refs/heads/{base}")
|
|
1825
|
+
except RuntimeError:
|
|
1826
|
+
return False # base itself unconfirmable — don't trust the read
|
|
1827
|
+
return True # head confirmed gone, base confirmed present
|
|
1828
|
+
|
|
1829
|
+
|
|
1778
1830
|
def branch_commits_ahead(repo: str, base: str, branch: str) -> int | None:
|
|
1779
1831
|
"""Commits *branch* is ahead of *base* on the remote, or ``None``.
|
|
1780
1832
|
|
|
@@ -1790,6 +1842,16 @@ def branch_commits_ahead(repo: str, base: str, branch: str) -> int | None:
|
|
|
1790
1842
|
real reviews. This is the opposite polarity from
|
|
1791
1843
|
:func:`branch_is_fully_merged`, which returns a plain ``False`` on error
|
|
1792
1844
|
because *its* fail-safe direction is "keep the PR open".
|
|
1845
|
+
|
|
1846
|
+
#2324 exception: when the compare call fails, a *confirmed* 404 on the
|
|
1847
|
+
head branch while the base branch still resolves
|
|
1848
|
+
(:func:`_head_branch_confirmed_deleted`) returns ``0``, not ``None`` — a
|
|
1849
|
+
head ref that GitHub positively says doesn't exist is the strongest
|
|
1850
|
+
possible evidence nothing was ever pushed to it (a branch carrying
|
|
1851
|
+
commits would still be there). Every other failure shape — the compare
|
|
1852
|
+
call fails for a reason that isn't a confirmed head-branch 404, or the
|
|
1853
|
+
follow-up ref checks themselves are inconclusive — keeps the existing
|
|
1854
|
+
fail-closed ``None``.
|
|
1793
1855
|
"""
|
|
1794
1856
|
if not branch or not base:
|
|
1795
1857
|
return None
|
|
@@ -1799,6 +1861,8 @@ def branch_commits_ahead(repo: str, base: str, branch: str) -> int | None:
|
|
|
1799
1861
|
raw = _gh("api", f"repos/{repo}/compare/{base}...{branch}")
|
|
1800
1862
|
cmp = json.loads(raw)
|
|
1801
1863
|
except Exception: # noqa: BLE001 — unknown, not zero
|
|
1864
|
+
if _head_branch_confirmed_deleted(repo, base, branch):
|
|
1865
|
+
return 0
|
|
1802
1866
|
return None
|
|
1803
1867
|
if not isinstance(cmp, dict):
|
|
1804
1868
|
return None
|
|
@@ -1832,7 +1896,11 @@ def branch_commits_ahead_for_assignment(assignment: Any, config: Any) -> int | N
|
|
|
1832
1896
|
that ``config`` doesn't know about returns ``None`` ("cannot confirm"),
|
|
1833
1897
|
never a bare 0, matching :func:`branch_commits_ahead`'s own fail-closed
|
|
1834
1898
|
polarity: an unconfirmable commit count must never be silently read as
|
|
1835
|
-
"empty branch, safe to touch"
|
|
1899
|
+
"empty branch, safe to touch" — *except* the one case
|
|
1900
|
+
:func:`branch_commits_ahead` itself carves out (#2324): a recorded
|
|
1901
|
+
branch whose head ref GitHub positively 404s, with the base branch still
|
|
1902
|
+
resolving, comes back as 0 rather than ``None`` — a deleted branch
|
|
1903
|
+
proves nothing was pushed at least as conclusively as a blank one does.
|
|
1836
1904
|
"""
|
|
1837
1905
|
branch = (getattr(assignment, "branch", None) or "").strip()
|
|
1838
1906
|
if not branch:
|
|
@@ -1651,6 +1651,43 @@ def test_zero_commit_advisory_is_not_reported_healthy(monkeypatch, config) -> No
|
|
|
1651
1651
|
assert res.recovered is False
|
|
1652
1652
|
|
|
1653
1653
|
|
|
1654
|
+
def test_zero_commit_advisory_with_deleted_branch_is_not_reported_healthy(
|
|
1655
|
+
monkeypatch, config
|
|
1656
|
+
) -> None:
|
|
1657
|
+
"""#2324: space-invaders#1's exact shape — a genuine zero-commit
|
|
1658
|
+
advisory whose branch has already been deleted. Unlike the other tests
|
|
1659
|
+
in this section, `_work_advisory_commits_ahead` is deliberately NOT
|
|
1660
|
+
stubbed here — this exercises the real call into
|
|
1661
|
+
`github_ops.branch_commits_ahead_for_assignment`, mocking only `gh`
|
|
1662
|
+
itself, to prove the full chain (not just the diagnose-side branching)
|
|
1663
|
+
reads a confirmed-404 head branch as 0, not None. Before #2324 this
|
|
1664
|
+
reported "could not be confirmed" and steered toward `coord drive
|
|
1665
|
+
--accept-advisory`, which assumes commits exist."""
|
|
1666
|
+
_stub(monkeypatch, session="dead")
|
|
1667
|
+
|
|
1668
|
+
def _gh_dispatch(*args, **kwargs):
|
|
1669
|
+
path = args[1] if len(args) > 1 else ""
|
|
1670
|
+
if path == "repos/acme/api/compare/main...issue-42-deleted":
|
|
1671
|
+
raise RuntimeError("gh: Not Found (HTTP 404)")
|
|
1672
|
+
if path == "repos/acme/api/git/refs/heads/issue-42-deleted":
|
|
1673
|
+
raise RuntimeError("gh: Not Found (HTTP 404)")
|
|
1674
|
+
if path == "repos/acme/api/git/refs/heads/main":
|
|
1675
|
+
return "{}"
|
|
1676
|
+
raise AssertionError(f"unexpected _gh call: {args!r}")
|
|
1677
|
+
|
|
1678
|
+
monkeypatch.setattr("coord.github_ops._gh", _gh_dispatch)
|
|
1679
|
+
|
|
1680
|
+
a = _assign(aid="w-advisory-deleted", status="advisory", branch="issue-42-deleted")
|
|
1681
|
+
board = Board(completed=[a])
|
|
1682
|
+
res = diagnose.diagnose_stage(board, config, "api", 42, "work")
|
|
1683
|
+
|
|
1684
|
+
assert not any("looks healthy" in f for f in res.findings), res.findings
|
|
1685
|
+
assert not any("could not be confirmed" in f for f in res.findings), res.findings
|
|
1686
|
+
assert any("0 commits" in f for f in res.findings), res.findings
|
|
1687
|
+
assert any("coord retry w-advisory-deleted" in f for f in res.findings), res.findings
|
|
1688
|
+
assert res.recovered is False
|
|
1689
|
+
|
|
1690
|
+
|
|
1654
1691
|
def test_zero_commit_advisory_on_a_plan_row_is_not_reported_healthy(
|
|
1655
1692
|
monkeypatch, config
|
|
1656
1693
|
) -> None:
|
|
@@ -1277,6 +1277,167 @@ class TestComputePatchId:
|
|
|
1277
1277
|
assert github_ops.compute_patch_id(_unified_diff("hello")) is None
|
|
1278
1278
|
|
|
1279
1279
|
|
|
1280
|
+
def _gh_ref_dispatch(repo: str, base: str, branch: str, *, head_error=None, base_error=None):
|
|
1281
|
+
"""Build a ``_gh`` ``side_effect`` for :func:`branch_commits_ahead`'s
|
|
1282
|
+
#2324 fallback path: the initial ``compare`` call always fails (the
|
|
1283
|
+
caller supplies that via a separate ``side_effect``/``compare_error``),
|
|
1284
|
+
and this answers the two follow-up ``git/refs/heads/<ref>`` lookups —
|
|
1285
|
+
raising *head_error*/*base_error* when given, succeeding otherwise.
|
|
1286
|
+
"""
|
|
1287
|
+
head_path = f"repos/{repo}/git/refs/heads/{branch}"
|
|
1288
|
+
base_path = f"repos/{repo}/git/refs/heads/{base}"
|
|
1289
|
+
|
|
1290
|
+
def _dispatch(*args, **kwargs):
|
|
1291
|
+
path = args[1] if len(args) > 1 else ""
|
|
1292
|
+
if path == head_path:
|
|
1293
|
+
if head_error is not None:
|
|
1294
|
+
raise head_error
|
|
1295
|
+
return "{}"
|
|
1296
|
+
if path == base_path:
|
|
1297
|
+
if base_error is not None:
|
|
1298
|
+
raise base_error
|
|
1299
|
+
return "{}"
|
|
1300
|
+
raise AssertionError(f"unexpected _gh call: {args!r}")
|
|
1301
|
+
|
|
1302
|
+
return _dispatch
|
|
1303
|
+
|
|
1304
|
+
|
|
1305
|
+
class TestGhRefConfirmedMissing:
|
|
1306
|
+
"""#2324: distinguishes a confirmed 404 (GitHub positively saying a ref
|
|
1307
|
+
doesn't exist) from an auth/rate-limit/network failure that merely
|
|
1308
|
+
looks like one — the exact conflation that made a deleted branch read
|
|
1309
|
+
as "unconfirmed" instead of "confirmed empty"."""
|
|
1310
|
+
|
|
1311
|
+
def test_true_on_explicit_404(self) -> None:
|
|
1312
|
+
assert github_ops._gh_ref_confirmed_missing(
|
|
1313
|
+
RuntimeError("gh api branches: 404 not found")
|
|
1314
|
+
) is True
|
|
1315
|
+
|
|
1316
|
+
def test_true_on_not_found_message(self) -> None:
|
|
1317
|
+
assert github_ops._gh_ref_confirmed_missing(
|
|
1318
|
+
RuntimeError("gh: Not Found (HTTP 404)")
|
|
1319
|
+
) is True
|
|
1320
|
+
|
|
1321
|
+
def test_false_on_auth_failure(self) -> None:
|
|
1322
|
+
assert github_ops._gh_ref_confirmed_missing(
|
|
1323
|
+
RuntimeError("gh: HTTP 403: Bad credentials")
|
|
1324
|
+
) is False
|
|
1325
|
+
|
|
1326
|
+
def test_false_on_rate_limit(self) -> None:
|
|
1327
|
+
assert github_ops._gh_ref_confirmed_missing(
|
|
1328
|
+
RuntimeError("gh: API rate limit exceeded")
|
|
1329
|
+
) is False
|
|
1330
|
+
|
|
1331
|
+
def test_false_on_network_timeout(self) -> None:
|
|
1332
|
+
assert github_ops._gh_ref_confirmed_missing(
|
|
1333
|
+
RuntimeError("gh: connection timed out")
|
|
1334
|
+
) is False
|
|
1335
|
+
|
|
1336
|
+
|
|
1337
|
+
class TestBranchCommitsAhead:
|
|
1338
|
+
"""#2324: a compare-API failure that turns out to be a *confirmed* 404 on
|
|
1339
|
+
the head branch — with the base branch still resolving — must read as 0
|
|
1340
|
+
commits ahead, not None. A deleted branch is the strongest possible
|
|
1341
|
+
evidence nothing was pushed; treating it as "unconfirmed" steered `coord
|
|
1342
|
+
retry` toward refusing a genuine zero-commit advisory."""
|
|
1343
|
+
|
|
1344
|
+
def test_head_confirmed_deleted_base_resolves_is_zero(self) -> None:
|
|
1345
|
+
repo, base, branch = "acme/api", "main", "issue-1-x"
|
|
1346
|
+
|
|
1347
|
+
def _dispatch(*args, **kwargs):
|
|
1348
|
+
path = args[1] if len(args) > 1 else ""
|
|
1349
|
+
if path == f"repos/{repo}/compare/{base}...{branch}":
|
|
1350
|
+
raise RuntimeError("gh: Not Found (HTTP 404)")
|
|
1351
|
+
return _gh_ref_dispatch(
|
|
1352
|
+
repo, base, branch,
|
|
1353
|
+
head_error=RuntimeError("gh: Not Found (HTTP 404)"),
|
|
1354
|
+
)(*args, **kwargs)
|
|
1355
|
+
|
|
1356
|
+
with patch("coord.github_ops._gh", side_effect=_dispatch):
|
|
1357
|
+
assert github_ops.branch_commits_ahead(repo, base, branch) == 0
|
|
1358
|
+
|
|
1359
|
+
def test_head_resolves_fine_compare_failure_is_none(self) -> None:
|
|
1360
|
+
"""The compare call fails for some reason other than the head branch
|
|
1361
|
+
being gone (e.g. a transient blip) — the head ref lookup itself
|
|
1362
|
+
succeeds, so there is nothing to trust. Must stay None."""
|
|
1363
|
+
repo, base, branch = "acme/api", "main", "issue-1-x"
|
|
1364
|
+
|
|
1365
|
+
def _dispatch(*args, **kwargs):
|
|
1366
|
+
path = args[1] if len(args) > 1 else ""
|
|
1367
|
+
if path == f"repos/{repo}/compare/{base}...{branch}":
|
|
1368
|
+
raise RuntimeError("gh: connection timed out")
|
|
1369
|
+
return _gh_ref_dispatch(repo, base, branch)(*args, **kwargs)
|
|
1370
|
+
|
|
1371
|
+
with patch("coord.github_ops._gh", side_effect=_dispatch):
|
|
1372
|
+
assert github_ops.branch_commits_ahead(repo, base, branch) is None
|
|
1373
|
+
|
|
1374
|
+
def test_head_lookup_inconclusive_is_none(self) -> None:
|
|
1375
|
+
"""Compare fails, and the head-ref lookup fails too but for a
|
|
1376
|
+
non-404 (auth/network) reason -- not a confirmed deletion, so this
|
|
1377
|
+
must not be guessed as zero."""
|
|
1378
|
+
repo, base, branch = "acme/api", "main", "issue-1-x"
|
|
1379
|
+
|
|
1380
|
+
def _dispatch(*args, **kwargs):
|
|
1381
|
+
path = args[1] if len(args) > 1 else ""
|
|
1382
|
+
if path == f"repos/{repo}/compare/{base}...{branch}":
|
|
1383
|
+
raise RuntimeError("gh: Not Found (HTTP 404)")
|
|
1384
|
+
return _gh_ref_dispatch(
|
|
1385
|
+
repo, base, branch,
|
|
1386
|
+
head_error=RuntimeError("gh: HTTP 403: Bad credentials"),
|
|
1387
|
+
)(*args, **kwargs)
|
|
1388
|
+
|
|
1389
|
+
with patch("coord.github_ops._gh", side_effect=_dispatch):
|
|
1390
|
+
assert github_ops.branch_commits_ahead(repo, base, branch) is None
|
|
1391
|
+
|
|
1392
|
+
def test_head_deleted_but_base_unconfirmable_is_none(self) -> None:
|
|
1393
|
+
"""Head 404s, but the base ref itself can't be confirmed (e.g. the
|
|
1394
|
+
whole repo is having an outage) — not the conclusive "head gone,
|
|
1395
|
+
base fine" shape, so this must stay None rather than guess."""
|
|
1396
|
+
repo, base, branch = "acme/api", "main", "issue-1-x"
|
|
1397
|
+
|
|
1398
|
+
def _dispatch(*args, **kwargs):
|
|
1399
|
+
path = args[1] if len(args) > 1 else ""
|
|
1400
|
+
if path == f"repos/{repo}/compare/{base}...{branch}":
|
|
1401
|
+
raise RuntimeError("gh: Not Found (HTTP 404)")
|
|
1402
|
+
return _gh_ref_dispatch(
|
|
1403
|
+
repo, base, branch,
|
|
1404
|
+
head_error=RuntimeError("gh: Not Found (HTTP 404)"),
|
|
1405
|
+
base_error=RuntimeError("gh: connection timed out"),
|
|
1406
|
+
)(*args, **kwargs)
|
|
1407
|
+
|
|
1408
|
+
with patch("coord.github_ops._gh", side_effect=_dispatch):
|
|
1409
|
+
assert github_ops.branch_commits_ahead(repo, base, branch) is None
|
|
1410
|
+
|
|
1411
|
+
def test_head_deleted_base_also_deleted_is_none(self) -> None:
|
|
1412
|
+
"""Both refs 404 -- e.g. the whole repo was renamed/deleted -- so
|
|
1413
|
+
there is no confirmed base to compare against. Must not read as
|
|
1414
|
+
zero."""
|
|
1415
|
+
repo, base, branch = "acme/api", "main", "issue-1-x"
|
|
1416
|
+
|
|
1417
|
+
def _dispatch(*args, **kwargs):
|
|
1418
|
+
path = args[1] if len(args) > 1 else ""
|
|
1419
|
+
if path == f"repos/{repo}/compare/{base}...{branch}":
|
|
1420
|
+
raise RuntimeError("gh: Not Found (HTTP 404)")
|
|
1421
|
+
return _gh_ref_dispatch(
|
|
1422
|
+
repo, base, branch,
|
|
1423
|
+
head_error=RuntimeError("gh: Not Found (HTTP 404)"),
|
|
1424
|
+
base_error=RuntimeError("gh: Not Found (HTTP 404)"),
|
|
1425
|
+
)(*args, **kwargs)
|
|
1426
|
+
|
|
1427
|
+
with patch("coord.github_ops._gh", side_effect=_dispatch):
|
|
1428
|
+
assert github_ops.branch_commits_ahead(repo, base, branch) is None
|
|
1429
|
+
|
|
1430
|
+
def test_successful_compare_unaffected(self) -> None:
|
|
1431
|
+
"""The happy path (compare succeeds) never touches the new fallback
|
|
1432
|
+
-- unchanged from before #2324."""
|
|
1433
|
+
with patch(
|
|
1434
|
+
"coord.github_ops._gh",
|
|
1435
|
+
return_value=json.dumps({"ahead_by": 3}),
|
|
1436
|
+
) as gh:
|
|
1437
|
+
assert github_ops.branch_commits_ahead("acme/api", "main", "issue-1-x") == 3
|
|
1438
|
+
gh.assert_called_once()
|
|
1439
|
+
|
|
1440
|
+
|
|
1280
1441
|
class TestBranchCommitsAheadForAssignment:
|
|
1281
1442
|
"""#1606: the one shared implementation of "branch empty -> 0, repo
|
|
1282
1443
|
missing -> None, else ask GitHub" — `coord retry`'s advisory gate
|
|
@@ -1345,6 +1506,32 @@ class TestBranchCommitsAheadForAssignment:
|
|
|
1345
1506
|
result = github_ops.branch_commits_ahead_for_assignment(assignment, config)
|
|
1346
1507
|
assert result is None
|
|
1347
1508
|
|
|
1509
|
+
def test_deleted_head_branch_with_resolving_base_is_zero(self) -> None:
|
|
1510
|
+
"""#2324: `coord retry` on space-invaders#1's exact shape — a
|
|
1511
|
+
zero-commit advisory whose branch was already deleted. The compare
|
|
1512
|
+
call 404s because the head branch is gone; the base branch
|
|
1513
|
+
(default_branch) still resolves. That must read as a genuine
|
|
1514
|
+
zero-commit advisory (0), not "could not be confirmed" (None) —
|
|
1515
|
+
the None reading is what steered the operator toward the wrong
|
|
1516
|
+
remedy (`coord drive --accept-advisory`, which assumes commits
|
|
1517
|
+
exist)."""
|
|
1518
|
+
assignment = self._Assignment(branch="issue-1-fix")
|
|
1519
|
+
config = self._Config(self._RepoCfg("acme/api", default_branch="main"))
|
|
1520
|
+
|
|
1521
|
+
def _dispatch(*args, **kwargs):
|
|
1522
|
+
path = args[1] if len(args) > 1 else ""
|
|
1523
|
+
if path == "repos/acme/api/compare/main...issue-1-fix":
|
|
1524
|
+
raise RuntimeError("gh: Not Found (HTTP 404)")
|
|
1525
|
+
if path == "repos/acme/api/git/refs/heads/issue-1-fix":
|
|
1526
|
+
raise RuntimeError("gh: Not Found (HTTP 404)")
|
|
1527
|
+
if path == "repos/acme/api/git/refs/heads/main":
|
|
1528
|
+
return "{}"
|
|
1529
|
+
raise AssertionError(f"unexpected _gh call: {args!r}")
|
|
1530
|
+
|
|
1531
|
+
with patch("coord.github_ops._gh", side_effect=_dispatch):
|
|
1532
|
+
result = github_ops.branch_commits_ahead_for_assignment(assignment, config)
|
|
1533
|
+
assert result == 0
|
|
1534
|
+
|
|
1348
1535
|
|
|
1349
1536
|
class TestGetBranchPatchId:
|
|
1350
1537
|
"""#1475: fetches the three-dot compare diff (no PR required, mirroring
|
|
@@ -121,6 +121,15 @@ class TestRetryAcceptsZeroCommitAdvisory:
|
|
|
121
121
|
out = output_and_stderr(result)
|
|
122
122
|
assert result.exit_code == 1
|
|
123
123
|
assert "could not be confirmed" in out
|
|
124
|
+
# #2324: a genuine lookup failure is not confirmation that commits
|
|
125
|
+
# exist. The message must not assert the #1357 false-positive shape
|
|
126
|
+
# or steer the operator at a remedy (--accept-advisory) that assumes
|
|
127
|
+
# real commits are sitting on the branch — nothing here established
|
|
128
|
+
# that. It should instead say what to check.
|
|
129
|
+
assert "#1357" not in out
|
|
130
|
+
assert "--accept-advisory" not in out
|
|
131
|
+
assert "existing commits" not in out
|
|
132
|
+
assert "coord log 0256c844edfb" in out
|
|
124
133
|
|
|
125
134
|
def test_done_status_is_still_refused(self, valid_config_path: Path) -> None:
|
|
126
135
|
"""Control: only `failed` and `advisory` are retryable — every other
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_coordinator-0.5.114 → code_coordinator-0.5.115}/code_coordinator.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{code_coordinator-0.5.114 → code_coordinator-0.5.115}/code_coordinator.egg-info/entry_points.txt
RENAMED
|
File without changes
|
{code_coordinator-0.5.114 → code_coordinator-0.5.115}/code_coordinator.egg-info/requires.txt
RENAMED
|
File without changes
|
{code_coordinator-0.5.114 → code_coordinator-0.5.115}/code_coordinator.egg-info/scm_file_list.json
RENAMED
|
File without changes
|
{code_coordinator-0.5.114 → code_coordinator-0.5.115}/code_coordinator.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|