code-coordinator 0.5.113__tar.gz → 0.5.114__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.113 → code_coordinator-0.5.114}/PKG-INFO +1 -1
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/code_coordinator.egg-info/PKG-INFO +1 -1
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/code_coordinator.egg-info/scm_version.json +2 -2
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/config.py +59 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/providers/opencode.py +96 -23
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_config.py +87 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_providers.py +34 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/.claude/commands/board.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/.claude/commands/complete-session.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/.claude/commands/coordinator.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/.githooks/_lib.sh +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/.githooks/post-checkout +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/.githooks/post-commit +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/.githooks/post-merge +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/.github/workflows/auto-release.yml +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/.github/workflows/cargo-test.yml +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/.github/workflows/publish.yml +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/.github/workflows/release-tui.yml +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/.github/workflows/test.yml +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/.gitignore +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/CLAUDE.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/GOAL.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/LICENSE +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/MANIFEST.in +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/README.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/code_coordinator.egg-info/SOURCES.txt +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/code_coordinator.egg-info/dependency_links.txt +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/code_coordinator.egg-info/entry_points.txt +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/code_coordinator.egg-info/requires.txt +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/code_coordinator.egg-info/scm_file_list.json +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/code_coordinator.egg-info/top_level.txt +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/__init__.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/_board_mapping.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/acceptance.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/acceptance_drivers.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/agent.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/agent_app.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/agent_update.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/agents/opencode/.gitignore +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/agents/opencode/agents/work.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/agents/opencode/routing.jsonc +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/audit.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/auto_loop.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/block_log.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/board_bool_guard.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/board_service.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/board_wire.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/brain.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/branch_model.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/bug_intake.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/cargo_cache.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/ci_github.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/ci_store.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/claim.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/cli.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/client.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/commands/__init__.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/commands/_common.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/commands/acceptance.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/commands/agent_ops.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/commands/audit.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/commands/chat.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/commands/dispatch.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/commands/dispatch_workers.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/commands/drive.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/commands/drive_queue.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/commands/gate_a.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/commands/gates.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/commands/issues.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/commands/lifecycle.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/commands/merge.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/commands/milestone.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/commands/plan_followup.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/commands/plans.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/commands/portal.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/commands/release.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/commands/repo.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/commands/report.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/commands/review.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/commands/scorecard.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/commands/sessions.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/commands/setup.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/commands/status.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/commands/terminal.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/commands/test_gate.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/commands/tui.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/comments.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/config_reload.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/conflict_fix.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dao.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/__init__.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/fixture.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/index.html +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/server.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/terminal.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/.gitignore +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/components.json +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/dist/assets/Gallery-BoKs3mpY.js +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/dist/assets/Terminal-9CEnUXvW.css +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/dist/assets/Terminal-CEsP08iX.js +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/dist/assets/index-CDHPlB6k.js +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/dist/assets/index-Dq4kwTdw.css +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/dist/assets/workbox-window.prod.es5-BqEJf4Xk.js +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/dist/icons/icon-192.png +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/dist/icons/icon-512.png +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/dist/icons/icon.svg +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/dist/index.html +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/dist/manifest.webmanifest +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/dist/sw.js +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/dist/workbox-e4022e15.js +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/e2e/available-gates-terminal.spec.ts +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/e2e/deep-link.spec.ts +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/e2e/fixtureServer.ts +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/e2e/live-update-fixture.spec.ts +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/e2e/realtime.spec.ts +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/e2e/shell.spec.ts +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/e2e/smoke.spec.ts +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/e2e/terminal.spec.ts +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/e2e/theme.spec.ts +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/eslint.config.js +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/index.html +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/node_modules/flatted/python/flatted.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/package-lock.json +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/package.json +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/playwright.acceptance.config.ts +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/playwright.config.ts +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/postcss.config.js +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/public/icons/icon-192.png +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/public/icons/icon-512.png +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/public/icons/icon.svg +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/App.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/api/client.ts +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/api/generated.ts +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/components/ConnectionBadge.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/components/Detail.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/components/Gallery.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/components/Home.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/components/MobileKeyBar.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/components/PanelHeader.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/components/PipelineCard.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/components/SessionCard.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/components/SessionDetail.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/components/SessionsList.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/components/Terminal.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/components/__tests__/ConnectionBadge.test.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/components/__tests__/Detail.test.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/components/__tests__/Gallery.test.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/components/__tests__/Home.test.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/components/__tests__/MobileKeyBar.test.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/components/__tests__/PipelineCard.test.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/components/__tests__/SessionCard.test.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/components/__tests__/Terminal.test.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/components/ui/badge.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/components/ui/button.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/components/ui/card.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/components/ui/dialog.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/components/ui/dropdown-menu.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/components/ui/empty-state.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/components/ui/sheet.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/components/ui/skeleton.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/components/ui/tabs.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/components/ui/theme-provider.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/components/ui/theme-toggle.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/components/ui/toast.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/components/ui/toaster.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/components/ui/tooltip.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/components/ui/use-toast.ts +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/index.css +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/lib/pipeline.ts +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/lib/utils.ts +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/main.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/realtime/RealtimeProvider.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/realtime/__tests__/RealtimeProvider.test.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/realtime/__tests__/connection.test.ts +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/realtime/connection.ts +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/realtime/events.ts +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/routes/__tests__/paths.test.ts +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/routes/paths.ts +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/shell/ActivityRail.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/shell/AppShell.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/shell/ComingSoon.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/shell/EmptyDetail.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/shell/RouteNotFound.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/shell/ShellLayout.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/shell/StatusBar.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/shell/__tests__/ShellLayout.test.tsx +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/shell/__tests__/shellState.test.ts +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/shell/__tests__/stubViewport.ts +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/shell/breakpoints.ts +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/shell/railItems.ts +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/shell/shellState.ts +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/shell/useRegionFocus.ts +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/test-setup.ts +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/src/vite-env.d.ts +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/tailwind.config.js +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/tsconfig.json +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/tsconfig.node.json +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dashboard/webapp/vite.config.ts +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/db.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dead_end.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/deploy/README.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/deploy_manifest.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/deploy_units.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/deps.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/diagnose.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dispatch.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/dist_name.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/drive.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/drive_queue.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/drive_state.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/events.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/failure_class.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/filelock.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/fleet_config_health.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/freshness.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/gate_a.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/gate_b.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/gate_snapshot.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/gates.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/github_ops.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/goal.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/graph_health.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/health/__init__.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/health/aggregate.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/health/checks/__init__.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/health/checks/agent_install.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/health/checks/cargo_targets.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/health/checks/claude_binary.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/health/checks/deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/health/checks/disk.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/health/checks/fleet_board.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/health/checks/fleet_deploy_lanes.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/health/checks/fleet_phantom.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/health/checks/fleet_unit_drift.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/health/checks/graph.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/health/checks/graphify_cli.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/health/checks/index_lock.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/health/checks/plan_usage.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/health/checks/repo_state.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/health/checks/spawned_coord.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/health/checks/timer_active.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/health/checks/toolchain.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/health/checks/unit_drift.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/health/checks/unit_enablement.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/health/checks/worktrees.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/health/cli.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/health/context.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/health/fleet_snapshot.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/health/models.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/health/pypi.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/health/registry.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/health/render.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/health/units.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/hooks.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/housekeeping.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/interactive.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/issue_store.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/liveness_auditor.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/machine_pause.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/merge_queue.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/milestone_chat.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/milestone_dispatch.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/milestone_gate.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/milestone_order.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/mock_author.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/models.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/network.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/new_issue_chat.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/notifier/__init__.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/notifier/baseline.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/notifier/cli.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/notifier/collect.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/notifier/digest.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/notifier/models.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/notifier/predicate.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/notifier/service.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/notifier/store.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/notifier/transport.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/notify.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/openapi.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/overlap_fence.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/overlap_predict.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/parentage.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/parentage_github.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/pipeline.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/plan_parser.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/plans.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/platform_paths.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/portal_bridge.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/portal_store.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/portal_sync.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/pr_body_lint.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/prereqs.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/progress.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/providers/__init__.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/providers/base.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/providers/claude.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/providers/claude_pty.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/queue_diagnose.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/reconcile.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/refine_chat.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/release_cordon.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/release_propagate.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/release_verify.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/release_window.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/repo_edit.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/repo_onboard.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/reports.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/revalidate.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/review.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/scorecard.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/serve_app.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/skills/update-issue/SKILL.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/smoke.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/spend_ceiling.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/split_work.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/stage_projection.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/state.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/test_author.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/test_chat.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/test_orchestrator.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/test_report.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/tui_release.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/usage.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/usage_limits.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/usage_rollup.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coord/worker_events.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/coordinator.example.yml +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/deploy/coord-web-dist-build.sh +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/deploy/coord-web-rollback.sh +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/deploy/node-shim.sh +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/docs/AGENT_OPERATIONS.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/docs/ARCHITECTURE.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/docs/ARCH_SECURITY_GATES.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/docs/COCKPIT.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/docs/CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/docs/COST_DISCIPLINE.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/docs/CROSS_PLATFORM.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/docs/CUSTOMER_PORTAL.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/docs/DRIVE_QUEUE.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/docs/EPHEMERAL_WORKERS.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/docs/FORGE_MIGRATION.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/docs/GRAPHIFY_SETUP.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/docs/ISSUE_GUIDANCE.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/docs/MAC_MINI.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/docs/NOTIFIER.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/docs/OPENCODE_VERIFICATION.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/docs/OPERATING_GOTCHAS.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/docs/ORACLE_LOOP.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/docs/PHONE_WEBAPP.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/docs/PIPELINE_V2.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/docs/PLATFORM_EVOLUTION.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/docs/SECOND_BACKEND.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/docs/STORE_SERVICE.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/docs/TEST_FIRST_BUG_LANE.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/docs/WEB_CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/docs/mocks/web/README.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/docs/mocks/web/_tokens.css +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/docs/mocks/web/issue-detail.html +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/docs/mocks/web/pipeline-narrow.html +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/docs/mocks/web/pipeline-wide.html +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/graphify-out/.gitignore +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/install-agent.sh +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/pyproject.toml +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/scripts/audit_review_verdict_overrides.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/scripts/azure-workers/bootstrap-shared.sh +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/scripts/azure-workers/build-worker-image.sh +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/scripts/azure-workers/coordinator-machine.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/scripts/azure-workers/epic-down.sh +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/scripts/azure-workers/epic-up.sh +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/scripts/azure-workers/preflight.sh +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/scripts/azure-workers/provision-worker.sh +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/scripts/azure-workers/tailnet-acl.hujson +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/scripts/azure-workers/verify-github-token.sh +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/scripts/codegen.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/scripts/coord-test-runner.sh +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/scripts/drive-batch.sh +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/scripts/gen_board_fixture.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/scripts/next_release_tag.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/scripts/run_tests_in_populated_home.sh +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/scripts/run_tests_without_gh.sh +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/scripts/smoke_437_interactive.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/scripts/verify_878_review_capture.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/scripts/verify_release_published.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/scripts/verify_release_wheel.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/setup.cfg +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/SMOKE_SET.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/__init__.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/acceptance/ms-33/audit_1039.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/acceptance/ms-33/contract.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/acceptance/ms-33/manifest.yml +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/acceptance/ms-33/mocks/audit-panel-detail.screen +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/acceptance/ms-33/mocks/audit-panel-empty.screen +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/acceptance/ms-33/mocks/audit-panel-filters.screen +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/acceptance/ms-33/mocks/audit-panel-populated.screen +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/acceptance/ms-37/conftest.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/acceptance/ms-37/contract.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/acceptance/ms-37/manifest.yml +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/acceptance/ms-38/contract.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/acceptance/ms-38/manifest.yml +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/acceptance/ms-38/mocks/plans-base.screen +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/acceptance/ms-38/mocks/plans-detail-pane.screen +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/acceptance/ms-38/mocks/plans-help-overlay.screen +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/acceptance/ms-38/mocks/plans-palette.screen +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/acceptance/ms-38/mocks/plans-rightclick-epic.screen +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/acceptance/ms-38/mocks/plans-rightclick-header.screen +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/acceptance/ms-38/mocks/plans-rightclick-stub.screen +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/acceptance/ms-38/plans_detail_1122.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/acceptance/ms-38/plans_help_1124.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/acceptance/ms-38/plans_rightclick_1123.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/acceptance/ms-51/contract.md +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/acceptance/ms-51/manifest.yml +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/acceptance/ms-51/tsconfig.json +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/conftest.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/fixtures/board-pipeline-basic.json +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/fixtures/opencode_run_sample.jsonl +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/fixtures/playwright/all_pass.json +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/fixtures/playwright/global_setup_crash.json +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/fixtures/playwright/mixed_fail.json +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/fixtures/playwright/retry_then_pass.json +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/fixtures/playwright/skip.json +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/fixtures/playwright/truncated.json +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_acceptance.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_acceptance_drivers.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_agent.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_agent_api_error.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_agent_app.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_agent_branch_base.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_agent_branch_capture.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_agent_config_free_1712.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_agent_deploy_units_endpoint.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_agent_dirty_worktree.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_agent_graph_self_heal.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_agent_health_h3.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_agent_idle_restart.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_agent_push_failure.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_agent_reap.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_agent_repos_and_pull.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_agent_restart_services_endpoint.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_agent_startup_diagnostics.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_agent_update.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_agent_update_bluegreen.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_agent_usage_limit.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_agent_zero_commit.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_ambient_home_isolation.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_approve_reject_plan.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_approve_usage_gate.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_assignment_already_recorded_daemon.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_audit_log.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_audit_outcome.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_audit_query.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_auto_loop.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_auto_release_publish_2035.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_base_checkout_restore.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_block_log.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_board_cap_762.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_board_fixture.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_board_read_path.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_board_service.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_board_state.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_board_wire.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_brain.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_branch_model.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_bug_intake.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_build_worker_image_env_update.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cargo_cache.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_ci_acceptance_gate_1950.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_ci_parity_2091.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_ci_store.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_claim.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_acceptance.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_assign.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_assign_interactive_remote.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_assign_provider.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_assign_repo_drift_2219.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_audit.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_chat_continue.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_diagnose_config_provenance.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_diagnose_graph.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_doctor.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_doctor_config_free_1801.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_drive.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_drive_queue.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_escalate.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_fix_headless_review.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_gate_a.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_install_drift.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_install_skills.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_issue_create_label.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_issue_reopen.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_merge.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_milestone_assign.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_milestone_capture.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_milestone_chat_add_child.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_milestone_gate_b.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_milestone_gate_c.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_milestone_order.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_milestone_ship.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_network.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_new_issue_chat.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_plans.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_portal.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_pull_artifact.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_queue.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_reattach_sessions.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_refine_board.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_release_preflight.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_release_propagate.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_release_window.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_repo_2220.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_scorecard.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_set_review_findings.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_status_advisory_terminal.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_status_merge_queue.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_status_provider.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_status_review_finalizing.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_status_test_failed_tag.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_status_usage_limit.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_sync_comments_873.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_test_plan.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_track.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_tui_update.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cli_wait.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_client_base_install.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_comments.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_completion_summary.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_config_acceptance.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_config_audit.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_config_pricing.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_config_usage_gate.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_conflict_fix.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_conflict_fix_semantic.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_coord_test.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_coord_test_runner_baseline.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_coord_test_runner_routing.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_coord_test_runner_toolchain.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_coord_web_sse_restart_live.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_coordinator_machine.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_cross_platform_imports.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_dashboard.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_dashboard_fixture.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_dashboard_terminal.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_dashboard_terminal_live.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_db.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_dead_end.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_deploy_coord_db_backup.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_deploy_coord_web_dist.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_deploy_coord_web_rollback.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_deploy_drive_queue_unit.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_deploy_manifest.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_deploy_units_lane.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_deploy_web_unit.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_deps.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_diagnose.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_dispatch.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_dispatch_target_validation.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_dist_name.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_done_housekeeping.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_drive.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_drive_queue.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_drive_state.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_drive_tmux.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_epic_up_capability_detection.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_epic_up_image_provenance.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_errors.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_events.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_failure_class.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_filelock.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_fix_of_force_override.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_fleet_config_health.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_fleet_health_probes.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_fleet_health_snapshot.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_freshness.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_gate_a.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_gate_b.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_gate_snapshot_staleness.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_gates.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_gather_fleet_tmux_sessions.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_generated_types_fixture.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_github_ops.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_goal.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_graph_health.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_graph_selfheal_absent_2237.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_handoff.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_health_checks.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_health_cli.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_health_cli_graph.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_health_config.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_health_context.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_health_deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_health_incident_regression.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_health_pypi.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_health_registry.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_health_timer_active.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_health_toolchain.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_health_unit_drift.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_health_unit_enablement.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_hooks.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_human_attended_437.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_init.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_integration.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_interactive_briefing_echo.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_interactive_prefill_state.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_interactive_session_relaunch.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_interactive_test_verdict_backstop.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_interactive_token_attribution.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_interactive_worktree.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_issue_store_seam.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_liveness_auditor.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_liveness_notify.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_machine_pause.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_merge_queue.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_merge_verify.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_milestone_chat.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_milestone_gate.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_milestone_order.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_milestone_seam.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_mock_author.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_model_tiering.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_models.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_models_config_labels.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_needs_attention.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_network.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_new_issue_chat.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_next_release_tag.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_no_direct_gh_calls.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_node_shim.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_notifier_baseline.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_notifier_cli.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_notifier_collect.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_notifier_config.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_notifier_drive_seam.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_notifier_isolation.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_notifier_predicate.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_notifier_quiet_hours.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_notifier_service.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_notify.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_notify_drain.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_openapi.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_operational_defaults.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_overlap_fence.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_overlap_predict.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_packaged_deploy_units.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_parentage.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_paste_landed.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_pipeline.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_plan_followup_approve_plan_command.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_plan_followup_pr_command.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_plan_followup_review_command.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_plan_only.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_plan_parser.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_platform_paths.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_portal_bridge.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_portal_config.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_portal_sync.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_pr_body_lint.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_prereqs.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_production_db_guard.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_progress.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_provider_seam.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_providers_config_labels.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_providers_pty.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_quiet_hours.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_quiet_hours_store_2146.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_reap_merged_sessions.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_reap_stale_interactive_tick.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_reconcile_branch.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_reconcile_completions.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_reconcile_merges.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_reconcile_no_agent_record.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_reconcile_usage_limit_done.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_refine_chat.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_release_cordon_2101.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_release_cordon_deadlock_2240.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_release_propagate.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_release_unified_1242.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_release_verify.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_release_window.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_remote_auto_prune.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_remote_interactive_reaper.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_repo_edit_2220.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_repo_graph_fleet_2237.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_repo_onboard_2220.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_report_result_push.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_reports.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_retry.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_retry_advisory_1606.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_retry_type_1636.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_revalidate.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_review.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_review_end_review_without_verdict.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_review_parse_failure_diagnostic.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_review_reaffirm.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_review_state.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_review_verdict_backstop.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_review_verdict_override_audit.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_review_verdict_relay.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_review_zero_commits.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_scoped_review_wiring.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_scorecard.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_serve.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_serve_app_board_trim.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_session.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_slice_issue_attribution.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_smoke.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_smoke_live_checkout_restore.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_smoke_workflow.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_spend_ceiling.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_spend_ceiling_coordinator.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_split.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_split_work.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_stage_projection.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_stalled_pipeline.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_state.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_state_review_findings_daemon.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_status_fleet_footer.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_stop_1567.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_stuck.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_terminal_command.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_test_author.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_test_chat.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_test_orchestrator.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_test_report.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_test_verdict_parsing.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_test_verdict_transcript_floor.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_thin_client_board_audit.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_thin_client_config_load_1080.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_thin_client_daemon_routing_906.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_tmux_host.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_tmux_session.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_transcript_floor.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_usage.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_usage_limits.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_usage_rollup.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_venv_live_install_2121.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_version_single_source.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_watch.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_worker_events.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_worker_image_pin_sync.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_worker_safety.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_worker_test_scoping.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_worktree.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tests/test_worktree_rmtree_chokepoint.py +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/Cargo.lock +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/Cargo.toml +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/cargo-config-local-quadraui.toml.example +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/src/app/audit.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/src/app/chat.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/src/app/data.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/src/app/dialogs.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/src/app/drive.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/src/app/drive_queue.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/src/app/escalation.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/src/app/events.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/src/app/fixtures.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/src/app/fleet_health.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/src/app/fleet_sessions.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/src/app/fleet_terminals.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/src/app/format.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/src/app/milestone_dag.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/src/app/mod.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/src/app/msv.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/src/app/pipeline.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/src/app/plans.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/src/app/render.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/src/app/reports.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/src/app/sessions.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/src/app/settings_ui.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/src/app/sidebar.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/src/app/terminal.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/src/app/tests.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/src/app/types.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/src/app/workspace.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/src/bin/gtk.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/src/commands.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/src/lib.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/src/main.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/src/settings.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/tests/acceptance.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/tests/cli.rs +0 -0
- {code_coordinator-0.5.113 → code_coordinator-0.5.114}/tui/tests/fixtures/board_sample.json +0 -0
|
@@ -3321,6 +3321,51 @@ def _expand_env_vars(value: str) -> str:
|
|
|
3321
3321
|
return _ENV_VAR_RE.sub(_replace, value)
|
|
3322
3322
|
|
|
3323
3323
|
|
|
3324
|
+
#: Matches exactly what opencode's own ``OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX``
|
|
3325
|
+
#: parser (#2321) accepts as a *string form* of a number: one or more ASCII
|
|
3326
|
+
#: digits, nothing else — no sign, no decimal point, no whitespace, no
|
|
3327
|
+
#: underscore digit-grouping. Combined with the ``> 0`` check below this
|
|
3328
|
+
#: mirrors opencode's own rule (integer, ``> 0``) closely enough to reject
|
|
3329
|
+
#: every value opencode is documented to silently discard: ``"131072 "``
|
|
3330
|
+
#: (trailing whitespace), ``"131_072"`` (underscore grouping — Python's
|
|
3331
|
+
#: ``int()`` would accept this but JS ``Number()`` coercion does not),
|
|
3332
|
+
#: ``"0"`` (fails ``> 0``), ``"1.5"`` (decimal point), and ``"unlimited"``
|
|
3333
|
+
#: (non-numeric).
|
|
3334
|
+
_OPENCODE_OUTPUT_TOKEN_MAX_RE = re.compile(r"[0-9]+")
|
|
3335
|
+
|
|
3336
|
+
#: The env var name gated by :data:`_OPENCODE_OUTPUT_TOKEN_MAX_RE` — kept as
|
|
3337
|
+
#: a constant rather than a literal so config.py and opencode.py can be
|
|
3338
|
+
#: grepped for the exact same string (deliberately NOT imported from
|
|
3339
|
+
#: coord.providers.opencode: config.py must not depend on provider modules).
|
|
3340
|
+
OPENCODE_OUTPUT_TOKEN_MAX_ENV_VAR = "OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX"
|
|
3341
|
+
|
|
3342
|
+
|
|
3343
|
+
def _validate_opencode_output_token_max_env(value: str, *, context: str) -> None:
|
|
3344
|
+
"""Reject an ``OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX`` override that
|
|
3345
|
+
opencode's own parser would silently discard (#2321).
|
|
3346
|
+
|
|
3347
|
+
opencode's env-var parser demands an integer ``> 0``; anything else
|
|
3348
|
+
(a non-numeric string, a decimal, a value with surrounding whitespace
|
|
3349
|
+
or underscore digit-grouping, zero or negative) maps to ``undefined``
|
|
3350
|
+
internally, which silently restores opencode's 32,000-token default
|
|
3351
|
+
with **no warning anywhere** — exactly the failure mode #2321 exists
|
|
3352
|
+
to end. Config-parse time is the only point where "silently reverted
|
|
3353
|
+
to 32,000" can be turned into a loud, actionable error instead of a
|
|
3354
|
+
truncated worker run discovered hours later.
|
|
3355
|
+
|
|
3356
|
+
Raises:
|
|
3357
|
+
ConfigError: when *value* is not a bare positive-integer string.
|
|
3358
|
+
"""
|
|
3359
|
+
if not _OPENCODE_OUTPUT_TOKEN_MAX_RE.fullmatch(value) or int(value) <= 0:
|
|
3360
|
+
raise ConfigError(
|
|
3361
|
+
f"{context} must be a positive integer string with no "
|
|
3362
|
+
"surrounding whitespace, sign, decimal point, or underscores "
|
|
3363
|
+
"(opencode's OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX parser "
|
|
3364
|
+
"silently discards anything else and reverts to its 32000 "
|
|
3365
|
+
f"default) — got {value!r}"
|
|
3366
|
+
)
|
|
3367
|
+
|
|
3368
|
+
|
|
3324
3369
|
_PORTAL_PLAIN_STR_FIELDS = ("base_url",)
|
|
3325
3370
|
_PORTAL_SECRET_STR_FIELDS = ("bridge_client_id", "bridge_client_secret")
|
|
3326
3371
|
|
|
@@ -3471,6 +3516,20 @@ def _parse_providers(raw: Any) -> ProvidersConfig:
|
|
|
3471
3516
|
# Expand ${VAR} in env values.
|
|
3472
3517
|
env: dict[str, str] = {k: _expand_env_vars(v) for k, v in env_raw.items()}
|
|
3473
3518
|
|
|
3519
|
+
# #2321: an operator override of opencode's output-token-cap knob
|
|
3520
|
+
# must be a value opencode's own parser will actually honour — see
|
|
3521
|
+
# _validate_opencode_output_token_max_env for why a bad value here
|
|
3522
|
+
# (e.g. a trailing space) is worse than a normal type error: it
|
|
3523
|
+
# doesn't fail, it silently reverts to the 32000 default.
|
|
3524
|
+
if OPENCODE_OUTPUT_TOKEN_MAX_ENV_VAR in env:
|
|
3525
|
+
_validate_opencode_output_token_max_env(
|
|
3526
|
+
env[OPENCODE_OUTPUT_TOKEN_MAX_ENV_VAR],
|
|
3527
|
+
context=(
|
|
3528
|
+
f"providers.definitions[{def_name!r}].env"
|
|
3529
|
+
f"[{OPENCODE_OUTPUT_TOKEN_MAX_ENV_VAR!r}]"
|
|
3530
|
+
),
|
|
3531
|
+
)
|
|
3532
|
+
|
|
3474
3533
|
extra_args_raw = def_raw.get("extra_args", []) or []
|
|
3475
3534
|
if not isinstance(extra_args_raw, list) or not all(
|
|
3476
3535
|
isinstance(a, str) for a in extra_args_raw
|
|
@@ -76,6 +76,12 @@ Differences from :class:`~.claude.ClaudeProvider`:
|
|
|
76
76
|
* ``env()`` always sets ``OPENCODE_CONFIG_DIR`` (agent-file discovery, see
|
|
77
77
|
above) and ``OPENCODE_CONFIG`` (the OpenRouter upstream-routing pin, see
|
|
78
78
|
``coord/agents/opencode/routing.jsonc`` and :data:`ROUTING_PIN_PATH`).
|
|
79
|
+
* ``env()`` also seeds ``OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX`` to
|
|
80
|
+
:data:`OUTPUT_TOKEN_MAX_DEFAULT` (#2321) — unlike the two variables
|
|
81
|
+
above, this one *is* operator-overridable (it's a tuning knob, not a
|
|
82
|
+
safety mechanism); see :meth:`env`'s docstring for why it sits on the
|
|
83
|
+
opposite side of ``self._env`` from ``OPENCODE_CONFIG_DIR``/
|
|
84
|
+
``OPENCODE_CONFIG``.
|
|
79
85
|
"""
|
|
80
86
|
|
|
81
87
|
from __future__ import annotations
|
|
@@ -148,6 +154,46 @@ AGENTS_ROOT = Path(__file__).resolve().parent.parent / "agents" / "opencode"
|
|
|
148
154
|
#: onto the worker's environment as ``OPENCODE_CONFIG`` by :meth:`env`.
|
|
149
155
|
ROUTING_PIN_PATH = AGENTS_ROOT / "routing.jsonc"
|
|
150
156
|
|
|
157
|
+
#: Default value for ``OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX`` (#2321).
|
|
158
|
+
#:
|
|
159
|
+
#: opencode caps every request's output tokens at 32,000 (its internal
|
|
160
|
+
#: ``OY = 32000`` default) unless this environment variable overrides it —
|
|
161
|
+
#: and on a reasoning model that 32,000-token budget is *shared* with the
|
|
162
|
+
#: model's own reasoning, so a long reasoning block can consume the whole
|
|
163
|
+
#: cap before a single tool call is emitted. This is not hypothetical:
|
|
164
|
+
#: space-invaders#1 (``8c95182b0749``) spent all 32,000 tokens on one
|
|
165
|
+
#: 113 KB reasoning block, was truncated (``"reason":"length"``), emitted
|
|
166
|
+
#: no tool call, and exited 0 with nothing on disk — the run this issue is
|
|
167
|
+
#: named for.
|
|
168
|
+
#:
|
|
169
|
+
#: opencode computes the *effective* cap as
|
|
170
|
+
#: ``min(model.limit.output, $OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX)`` —
|
|
171
|
+
#: it is a ceiling suggestion, not a per-model override. Raising it can
|
|
172
|
+
#: never push a model's output above what that model's own
|
|
173
|
+
#: ``limit.output`` allows; it can only stop opencode's own 32,000
|
|
174
|
+
#: default from clamping a model that allows more. That makes a single
|
|
175
|
+
#: generous constant safe across every model dispatched through this
|
|
176
|
+
#: provider — no need to look up ``limit.output`` per model at dispatch
|
|
177
|
+
#: time.
|
|
178
|
+
#:
|
|
179
|
+
#: Chosen as 384,000 — the largest ``limit.output`` among the opencode
|
|
180
|
+
#: model definitions coord currently routes through (``oc-cheap`` /
|
|
181
|
+
#: ``opencode/deepseek-v4-flash`` and ``oc-heavy`` /
|
|
182
|
+
#: ``opencode/deepseek-v4-pro``, both 384,000; ``oc-mid`` /
|
|
183
|
+
#: ``opencode/glm-5.2`` is lower at 131,072 and is naturally clamped to
|
|
184
|
+
#: its own true ceiling by the ``min()`` above — never pushed past it).
|
|
185
|
+
#:
|
|
186
|
+
#: Both fleet binaries already read this variable (1.18.11 on dellserver —
|
|
187
|
+
#: the machine that hit the space-invaders#1 truncation — and 1.18.12 on
|
|
188
|
+
#: precision), and it is not gated behind ``OPENCODE_EXPERIMENTAL`` the
|
|
189
|
+
#: way other ``experimental*``-named flags are (that gating uses a
|
|
190
|
+
#: different internal helper; this flag's parser reads the env var
|
|
191
|
+
#: directly, unconditionally). No version-floor probe is needed here and
|
|
192
|
+
#: none should be added later on speculation: on a binary that predates
|
|
193
|
+
#: this flag it is simply inert and the cap silently stays at 32,000 —
|
|
194
|
+
#: never a hard failure.
|
|
195
|
+
OUTPUT_TOKEN_MAX_DEFAULT = 384_000
|
|
196
|
+
|
|
151
197
|
|
|
152
198
|
class OpenCodeAgentNotFoundError(RuntimeError):
|
|
153
199
|
"""Raised when no committed opencode agent definition exists for a
|
|
@@ -641,35 +687,62 @@ class OpenCodeProvider(Provider):
|
|
|
641
687
|
def env(self) -> dict[str, str]:
|
|
642
688
|
"""Extra environment variables for the worker subprocess.
|
|
643
689
|
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
690
|
+
Three parts, deliberately split across **both sides** of
|
|
691
|
+
``self._env`` — that asymmetry is the whole point, see below:
|
|
692
|
+
|
|
693
|
+
1. **#2321, seeded BEFORE ``self._env``, operator-overridable:**
|
|
694
|
+
``OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX`` defaults to
|
|
695
|
+
:data:`OUTPUT_TOKEN_MAX_DEFAULT` (see that constant for the
|
|
696
|
+
full rationale). Unlike part 3 below, this is a *tuning knob*,
|
|
697
|
+
not a safety mechanism — an operator has a legitimate reason to
|
|
698
|
+
pin it lower (e.g. to cap cost) or higher (a future model with
|
|
699
|
+
a larger ``limit.output``), so it is seeded first and then
|
|
700
|
+
allowed to be shadowed by ``self._env`` like any other
|
|
701
|
+
``ProviderDef.env`` entry. ``coord/config.py``'s
|
|
702
|
+
``_parse_providers`` rejects a value at config-parse time that
|
|
703
|
+
opencode's own parser would silently discard (non-integer,
|
|
704
|
+
``<= 0``, or containing whitespace/underscores) — see that
|
|
705
|
+
function for the validation opencode itself performs.
|
|
706
|
+
2. ``ProviderDef.env`` (already ``${VAR}``-expanded by config
|
|
647
707
|
parsing, #1706) — how an operator points a named ``opencode``
|
|
648
708
|
provider definition at a specific set of credentials without
|
|
649
|
-
baking them into the machine's agent unit.
|
|
650
|
-
|
|
651
|
-
``
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
709
|
+
baking them into the machine's agent unit. This is also where
|
|
710
|
+
an operator's override of part 1 above lands, since dict
|
|
711
|
+
``.update()`` here happens after the default is seeded.
|
|
712
|
+
3. **#1705, always set AFTER ``self._env``, NOT
|
|
713
|
+
operator-overridable:** ``OPENCODE_CONFIG_DIR``
|
|
714
|
+
(:data:`AGENTS_ROOT` — where the committed per-spec-type agent
|
|
715
|
+
files live, see the module docstring for why an env var rather
|
|
716
|
+
than a worktree file copy) and ``OPENCODE_CONFIG``
|
|
717
|
+
(:data:`ROUTING_PIN_PATH` — the OpenRouter routing pin, see
|
|
718
|
+
``coord/agents/opencode/routing.jsonc``). These are applied
|
|
719
|
+
**after** ``self._env`` so a ``ProviderDef.env`` entry cannot
|
|
720
|
+
accidentally (or maliciously, via a compromised
|
|
721
|
+
``coordinator.yml`` edit that isn't the security-reviewed
|
|
722
|
+
agent-file path) shadow the deny-list discovery mechanism —
|
|
723
|
+
see :class:`OpenCodeAgentNotFoundError`'s docstring for why
|
|
724
|
+
silently losing this would be bad. Verified empirically that
|
|
725
|
+
``OPENCODE_CONFIG_DIR`` is inert for a provider the operator
|
|
726
|
+
hasn't configured credentials for (real opencode 1.18.11 run
|
|
727
|
+
against a non-OpenRouter model with both variables set
|
|
728
|
+
completed normally) — see
|
|
666
729
|
``test_opencode_routing_pin_inert_without_openrouter_credential_end_to_end``.
|
|
667
730
|
|
|
731
|
+
The asymmetry: part 1 is a default an operator must be able to
|
|
732
|
+
override (seeded *before* the merge, operator wins); part 3 is a
|
|
733
|
+
safety mechanism an operator must never be able to override (set
|
|
734
|
+
*after* the merge, coord wins). Do not "fix" this into a single
|
|
735
|
+
consistent ordering — the two groups need opposite precedence on
|
|
736
|
+
purpose.
|
|
737
|
+
|
|
668
738
|
Returns a fresh dict each call.
|
|
669
739
|
"""
|
|
670
|
-
merged =
|
|
671
|
-
|
|
672
|
-
|
|
740
|
+
merged: dict[str, str] = {
|
|
741
|
+
"OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX": str(OUTPUT_TOKEN_MAX_DEFAULT),
|
|
742
|
+
}
|
|
743
|
+
merged.update(self._env) # operator wins over the tuning-knob default
|
|
744
|
+
merged["OPENCODE_CONFIG_DIR"] = str(AGENTS_ROOT) # coord wins, unchanged
|
|
745
|
+
merged["OPENCODE_CONFIG"] = str(ROUTING_PIN_PATH) # coord wins, unchanged
|
|
673
746
|
return merged
|
|
674
747
|
|
|
675
748
|
def parse_log(
|
|
@@ -1349,6 +1349,93 @@ def test_providers_definition_env_non_string_value_raises(tmp_path: Path) -> Non
|
|
|
1349
1349
|
load(p)
|
|
1350
1350
|
|
|
1351
1351
|
|
|
1352
|
+
# ── providers.definitions[*].env OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX (#2321) ─
|
|
1353
|
+
|
|
1354
|
+
|
|
1355
|
+
def test_providers_output_token_max_valid_value_accepted(tmp_path: Path) -> None:
|
|
1356
|
+
"""A bare positive-integer string is accepted and stored verbatim."""
|
|
1357
|
+
p = tmp_path / "coordinator.yml"
|
|
1358
|
+
p.write_text(
|
|
1359
|
+
_MIN_CONFIG
|
|
1360
|
+
+ "providers:\n"
|
|
1361
|
+
" definitions:\n"
|
|
1362
|
+
" oc:\n"
|
|
1363
|
+
" type: opencode\n"
|
|
1364
|
+
" env:\n"
|
|
1365
|
+
" OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX: '131072'\n"
|
|
1366
|
+
)
|
|
1367
|
+
cfg = load(p)
|
|
1368
|
+
env = cfg.providers.definitions["oc"].env
|
|
1369
|
+
assert env["OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX"] == "131072"
|
|
1370
|
+
|
|
1371
|
+
|
|
1372
|
+
@pytest.mark.parametrize(
|
|
1373
|
+
"bad_value",
|
|
1374
|
+
[
|
|
1375
|
+
"131072 ", # trailing whitespace — opencode's parser silently discards
|
|
1376
|
+
" 131072", # leading whitespace
|
|
1377
|
+
"131_072", # underscore digit-grouping — Number() coercion rejects
|
|
1378
|
+
"0", # not > 0
|
|
1379
|
+
"-1", # not > 0, has a sign
|
|
1380
|
+
"1.5", # decimal point
|
|
1381
|
+
"unlimited", # non-numeric
|
|
1382
|
+
"", # empty
|
|
1383
|
+
],
|
|
1384
|
+
)
|
|
1385
|
+
def test_providers_output_token_max_bad_value_raises(
|
|
1386
|
+
tmp_path: Path, bad_value: str
|
|
1387
|
+
) -> None:
|
|
1388
|
+
"""A value opencode's own parser would silently discard is rejected
|
|
1389
|
+
loudly at config-parse time (#2321) instead of silently reverting to
|
|
1390
|
+
the 32000 default with no warning."""
|
|
1391
|
+
p = tmp_path / "coordinator.yml"
|
|
1392
|
+
p.write_text(
|
|
1393
|
+
_MIN_CONFIG
|
|
1394
|
+
+ "providers:\n"
|
|
1395
|
+
" definitions:\n"
|
|
1396
|
+
" oc:\n"
|
|
1397
|
+
" type: opencode\n"
|
|
1398
|
+
" env:\n"
|
|
1399
|
+
f" OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX: {bad_value!r}\n"
|
|
1400
|
+
)
|
|
1401
|
+
with pytest.raises(ConfigError, match="OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX"):
|
|
1402
|
+
load(p)
|
|
1403
|
+
|
|
1404
|
+
|
|
1405
|
+
def test_providers_output_token_max_absent_does_not_raise(tmp_path: Path) -> None:
|
|
1406
|
+
"""Not setting the key at all is fine — env() supplies its own default."""
|
|
1407
|
+
p = tmp_path / "coordinator.yml"
|
|
1408
|
+
p.write_text(
|
|
1409
|
+
_MIN_CONFIG
|
|
1410
|
+
+ "providers:\n"
|
|
1411
|
+
" definitions:\n"
|
|
1412
|
+
" oc:\n"
|
|
1413
|
+
" type: opencode\n"
|
|
1414
|
+
)
|
|
1415
|
+
cfg = load(p)
|
|
1416
|
+
assert "OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX" not in cfg.providers.definitions["oc"].env
|
|
1417
|
+
|
|
1418
|
+
|
|
1419
|
+
def test_providers_output_token_max_validated_after_var_expansion(
|
|
1420
|
+
tmp_path: Path, monkeypatch
|
|
1421
|
+
) -> None:
|
|
1422
|
+
"""The value is validated AFTER ${VAR} expansion — an expanded bad
|
|
1423
|
+
value is caught, not just a literal one."""
|
|
1424
|
+
monkeypatch.setenv("COORD_TEST_BAD_TOKEN_MAX", "not-a-number")
|
|
1425
|
+
p = tmp_path / "coordinator.yml"
|
|
1426
|
+
p.write_text(
|
|
1427
|
+
_MIN_CONFIG
|
|
1428
|
+
+ "providers:\n"
|
|
1429
|
+
" definitions:\n"
|
|
1430
|
+
" oc:\n"
|
|
1431
|
+
" type: opencode\n"
|
|
1432
|
+
" env:\n"
|
|
1433
|
+
" OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX: '${COORD_TEST_BAD_TOKEN_MAX}'\n"
|
|
1434
|
+
)
|
|
1435
|
+
with pytest.raises(ConfigError, match="OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX"):
|
|
1436
|
+
load(p)
|
|
1437
|
+
|
|
1438
|
+
|
|
1352
1439
|
def test_providers_extra_args_non_string_element_raises(tmp_path: Path) -> None:
|
|
1353
1440
|
"""extra_args elements must be strings."""
|
|
1354
1441
|
p = tmp_path / "coordinator.yml"
|
|
@@ -52,6 +52,7 @@ from coord.providers.claude import ClaudeProvider
|
|
|
52
52
|
from coord.providers.opencode import (
|
|
53
53
|
AGENTS_ROOT,
|
|
54
54
|
DEFAULT_OPENCODE_BINARY,
|
|
55
|
+
OUTPUT_TOKEN_MAX_DEFAULT,
|
|
55
56
|
RESULT_MARKER,
|
|
56
57
|
ROUTING_PIN_PATH,
|
|
57
58
|
OpenCodeAgentNotFoundError,
|
|
@@ -1538,6 +1539,39 @@ def test_opencode_env_definition_cannot_shadow_config_dir() -> None:
|
|
|
1538
1539
|
assert env["OPENCODE_CONFIG"] == str(ROUTING_PIN_PATH)
|
|
1539
1540
|
|
|
1540
1541
|
|
|
1542
|
+
def test_opencode_env_sets_output_token_max_default() -> None:
|
|
1543
|
+
"""#2321: env() always seeds OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX to
|
|
1544
|
+
OUTPUT_TOKEN_MAX_DEFAULT, even with no ProviderDef.env configured —
|
|
1545
|
+
without this every opencode worker is silently capped at opencode's
|
|
1546
|
+
32,000-token default, shared with reasoning-model thinking tokens."""
|
|
1547
|
+
env = OpenCodeProvider().env()
|
|
1548
|
+
assert env["OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX"] == str(OUTPUT_TOKEN_MAX_DEFAULT)
|
|
1549
|
+
|
|
1550
|
+
|
|
1551
|
+
def test_opencode_env_output_token_max_is_positive_integer_string() -> None:
|
|
1552
|
+
"""Sanity: the default itself must satisfy opencode's own parser rule
|
|
1553
|
+
(integer, > 0, no extra characters) or every dispatch would silently
|
|
1554
|
+
fall back to 32000 — the exact failure mode #2321 exists to end."""
|
|
1555
|
+
value = OpenCodeProvider().env()["OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX"]
|
|
1556
|
+
assert value.isdigit()
|
|
1557
|
+
assert int(value) > 0
|
|
1558
|
+
|
|
1559
|
+
|
|
1560
|
+
def test_opencode_env_output_token_max_operator_override_wins() -> None:
|
|
1561
|
+
"""#2321: unlike OPENCODE_CONFIG_DIR/OPENCODE_CONFIG, this variable IS
|
|
1562
|
+
operator-overridable — it's a tuning knob (e.g. to cap cost), not a
|
|
1563
|
+
safety mechanism, so a ProviderDef.env entry must win over the
|
|
1564
|
+
built-in default."""
|
|
1565
|
+
provider = OpenCodeProvider(
|
|
1566
|
+
env={"OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX": "50000"}
|
|
1567
|
+
)
|
|
1568
|
+
env = provider.env()
|
|
1569
|
+
assert env["OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX"] == "50000"
|
|
1570
|
+
# And the non-overridable variables are still coord-controlled.
|
|
1571
|
+
assert env["OPENCODE_CONFIG_DIR"] == str(AGENTS_ROOT)
|
|
1572
|
+
assert env["OPENCODE_CONFIG"] == str(ROUTING_PIN_PATH)
|
|
1573
|
+
|
|
1574
|
+
|
|
1541
1575
|
# ── parse_log ─────────────────────────────────────────────────────────────────
|
|
1542
1576
|
|
|
1543
1577
|
|
|
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.113 → code_coordinator-0.5.114}/code_coordinator.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{code_coordinator-0.5.113 → code_coordinator-0.5.114}/code_coordinator.egg-info/entry_points.txt
RENAMED
|
File without changes
|
{code_coordinator-0.5.113 → code_coordinator-0.5.114}/code_coordinator.egg-info/requires.txt
RENAMED
|
File without changes
|
{code_coordinator-0.5.113 → code_coordinator-0.5.114}/code_coordinator.egg-info/scm_file_list.json
RENAMED
|
File without changes
|
{code_coordinator-0.5.113 → code_coordinator-0.5.114}/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
|
|
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
|