code-coordinator 0.5.507__tar.gz → 0.5.509__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.507 → code_coordinator-0.5.509}/CLAUDE.md +37 -61
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/PKG-INFO +1 -1
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/code_coordinator.egg-info/PKG-INFO +1 -1
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/code_coordinator.egg-info/SOURCES.txt +1 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/code_coordinator.egg-info/scm_file_list.json +1 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/code_coordinator.egg-info/scm_version.json +2 -2
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/agent.py +134 -18
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/drive_queue.py +38 -10
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/setup.py +38 -4
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/config.py +24 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/drive_queue.py +210 -35
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/models.py +26 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/providers/claude.py +18 -20
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coordinator.example.yml +22 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/ARCHITECTURE.md +15 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/DRIVE_QUEUE.md +49 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/OPERATOR_GUIDES.md +23 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_agent.py +123 -3
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_claude_md_budget.py +9 -5
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_providers.py +104 -0
- code_coordinator-0.5.509/tests/test_repo_max_parallel_3423.py +637 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/.claude/commands/board.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/.claude/commands/complete-session.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/.claude/commands/coordinator.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/.githooks/_lib.sh +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/.githooks/post-checkout +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/.githooks/post-commit +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/.githooks/post-merge +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/.github/workflows/auto-release.yml +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/.github/workflows/publish.yml +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/.github/workflows/test.yml +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/.gitignore +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/GOAL.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/LICENSE +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/MANIFEST.in +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/README.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/code_coordinator.egg-info/dependency_links.txt +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/code_coordinator.egg-info/entry_points.txt +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/code_coordinator.egg-info/requires.txt +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/code_coordinator.egg-info/top_level.txt +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/__init__.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/_board_mapping.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/acceptance.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/acceptance_drivers.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/agent_app.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/agent_update.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/agents/opencode/.gitignore +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/agents/opencode/agents/work.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/agents/opencode/routing.jsonc +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/approved_work.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/audit.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/auto_loop.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/backup.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/block_log.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/board_schema.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/board_service.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/board_wire.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/brain.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/branch_model.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/bug_intake.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/cargo_cache.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/ci_fix.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/ci_github.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/ci_gitlab.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/ci_store.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/claim.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/claude_setup_token.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/cli.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/client.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/codegen.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/__init__.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/_common.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/acceptance.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/agent_ops.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/audit.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/backup.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/chat.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/ci.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/codegen.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/dispatch.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/dispatch_workers.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/dr.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/drive.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/gate_a.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/gates.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/issues.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/lifecycle.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/machine.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/merge.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/milestone.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/plan_followup.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/plans.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/portal.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/pr.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/release.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/repo.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/report.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/review.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/scorecard.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/sessions.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/status.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/store_migrate.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/terminal.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/test_gate.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/commands/tui.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/comments.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/config_reload.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/confirm_test.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/conflict_fix.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/dao.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/dashboard/__init__.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/dashboard/fixture.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/dashboard/index.html +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/dashboard/server.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/dashboard/terminal.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/db.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/dead_end.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/decomposition_chat.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/deploy/README.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/deploy/coord-backup.service +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/deploy/coord-backup.timer +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/deploy/coord-dr-verify.service +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/deploy/coord-dr-verify.timer +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/deploy/coord-failure-notify.service +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/deploy/coord-fleet-watchdog.service +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/deploy/coord-fleet-watchdog.timer +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/deploy_manifest.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/deploy_units.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/deprecation_telemetry.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/deps.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/diagnose.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/dispatch.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/dispatch_liveness.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/dist_name.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/dr_promote.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/dr_verify.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/drive.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/drive_state.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/events.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/failure_class.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/failure_classifier.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/filelock.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/fleet_config_health.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/forge_availability.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/freshness.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/gate_a.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/gate_b.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/gate_snapshot.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/gates.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/gen_board_fixture.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/github_ops.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/github_throttle.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/goal.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/graph_health.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/__init__.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/aggregate.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/checks/__init__.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/checks/_ci_pin.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/checks/agent_install.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/checks/cargo_targets.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/checks/claude_binary.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/checks/config_drift.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/checks/coord_tui_ci_pin.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/checks/coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/checks/deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/checks/disk.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/checks/fleet_board.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/checks/fleet_deploy_lanes.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/checks/fleet_phantom.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/checks/fleet_unit_drift.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/checks/graph.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/checks/graphify_cli.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/checks/index_lock.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/checks/issues_sync_staleness.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/checks/plan_usage.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/checks/pr_churn.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/checks/release_cordon.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/checks/repo_state.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/checks/spawned_coord.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/checks/stalled_pipeline.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/checks/timer_active.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/checks/toolchain.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/checks/unit_drift.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/checks/unit_enablement.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/checks/wedged_drive_queue.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/checks/worktrees.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/cli.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/context.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/fleet_snapshot.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/models.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/pypi.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/registry.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/render.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/health/units.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/hooks.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/housekeeping.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/interactive.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/invariant_alarms.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/issue_store.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/issues_sync_status.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/liveness_auditor.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/machine_fault.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/machine_metrics.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/machine_onboard.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/machine_pause.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/machine_stats.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/merge_queue.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/milestone_chat.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/milestone_dispatch.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/milestone_gate.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/milestone_order.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/mock_author.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/network.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/new_issue_chat.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/notifier/__init__.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/notifier/baseline.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/notifier/cli.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/notifier/collect.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/notifier/digest.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/notifier/models.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/notifier/predicate.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/notifier/service.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/notifier/store.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/notifier/transport.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/notify.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/openapi.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/overlap_fence.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/overlap_predict.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/parentage.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/parentage_github.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/pipeline.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/plan_parser.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/plans.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/platform_paths.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/portal_bridge.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/portal_store.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/portal_sync.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/pr_body_lint.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/prereqs.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/progress.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/providers/__init__.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/providers/base.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/providers/claude_pty.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/providers/opencode.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/queue_diagnose.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/reconcile.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/reconcile_tick.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/refine_chat.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/release_cordon.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/release_propagate.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/release_verify.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/release_window.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/repo_dormancy.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/repo_edit.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/repo_onboard.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/reports.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/rest_schema.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/restart_cmd.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/revalidate.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/review.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/scorecard.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/self_health.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/serve_app.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/skills/coord-dispatch-verbs/SKILL.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/skills/drive-queue-preflight/SKILL.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/skills/fleet-restart-safety/SKILL.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/skills/merge-stuck-triage/SKILL.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/skills/pipeline-limbo-triage/SKILL.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/skills/portal-followup/SKILL.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/skills/release-now/SKILL.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/skills/review-verdict-recovery/SKILL.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/skills/tui-quadraui-workflow/SKILL.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/skills/update-issue/SKILL.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/smoke.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/spend_ceiling.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/split_work.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/sql.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/stage_projection.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/state.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/store_migrate.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/store_parity.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/templates/deploy-cloudflare.node.yml +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/test_author.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/test_chat.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/test_orchestrator.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/test_report.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/tui_release.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/uat_checks.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/usage.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/usage_limits.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/usage_rollup.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/coord/worker_events.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/deploy/coord-backup.service +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/deploy/coord-backup.timer +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/deploy/coord-dr-verify.service +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/deploy/coord-dr-verify.timer +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/deploy/coord-failure-notify.service +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/deploy/coord-failure-notify.sh +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/deploy/coord-fleet-watchdog.service +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/deploy/coord-fleet-watchdog.timer +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/deploy/coord-web-dist-build.sh +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/deploy/coord-web-rollback.sh +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/deploy/node-shim.sh +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/ADR_COORD_TUI_CI.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/ADR_COORD_WEB_ACCEPTANCE_SUITE.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/ADR_COORD_WEB_CI.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/ADR_COORD_WEB_DIST.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/ADR_PY_RUST_MIRRORS.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/AGENT_OPERATIONS.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/ARCH_SECURITY_GATES.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/COCKPIT.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/COST_DISCIPLINE.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/CROSS_PLATFORM.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/CUSTOMER_FACING_APPS.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/CUSTOMER_PORTAL.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/DATA_STORE_SELECTION.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/DISASTER_RECOVERY.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/EPHEMERAL_WORKERS.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/FORGE_MIGRATION.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/GRAPHIFY_SETUP.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/ISSUE_GUIDANCE.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/MAC_MINI.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/NOTIFIER.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/OPENCODE_VERIFICATION.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/OPERATING_GOTCHAS.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/ORACLE_LOOP.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/PHONE_WEBAPP.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/PIPELINE_V2.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/PLATFORM_EVOLUTION.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/SECOND_BACKEND.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/STORE_SERVICE.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/TEST_FIRST_BUG_LANE.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/WEB_CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/WSL_WINDOWS_WORKER.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/mocks/web/README.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/mocks/web/_tokens.css +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/mocks/web/issue-detail.html +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/mocks/web/pipeline-narrow.html +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/docs/mocks/web/pipeline-wide.html +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/graphify-out/.gitignore +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/install-agent.sh +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/pyproject.toml +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/audit_review_verdict_overrides.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/azure-workers/bootstrap-shared.sh +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/azure-workers/build-worker-image.sh +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/azure-workers/coordinator-machine.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/azure-workers/dr-down.sh +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/azure-workers/dr-up.sh +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/azure-workers/epic-down.sh +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/azure-workers/epic-up.sh +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/azure-workers/preflight.sh +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/azure-workers/provision-server.sh +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/azure-workers/provision-worker.sh +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/azure-workers/tailnet-acl.hujson +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/azure-workers/throwaway-vm.sh +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/azure-workers/verify-github-token.sh +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/check_gh_argv_containment.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/codegen.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/coord-test-runner.sh +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/coord-tui-scaffold/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/coord-tui-scaffold/.github/workflows/cargo-test.yml +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/coord-tui-scaffold/.github/workflows/codegen-drift.yml +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/coord-tui-scaffold/CLAUDE.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/coord-venv-rollback.sh +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/drive-batch.sh +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/extract-coord-tui.sh +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/fleet_watchdog.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/gen_board_fixture.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/gen_mock_index.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/lib/provision-core.sh +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/next_release_tag.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/provision-machine.sh +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/run_tests_in_populated_home.sh +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/run_tests_without_gh.sh +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/setup-macmini.sh +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/smoke_437_interactive.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/verify-provision-noble.sh +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/verify_878_review_capture.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/verify_release_published.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/scripts/verify_release_wheel.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/setup.cfg +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/SMOKE_SET.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/__init__.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/acceptance/ms-37/conftest.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/acceptance/ms-37/contract.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/acceptance/ms-37/manifest.yml +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/acceptance/ms-51/contract.md +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/acceptance/ms-51/manifest.yml +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/acceptance/ms-51/tsconfig.json +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/backends.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/conftest.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/fixtures/board-pipeline-basic.json +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/fixtures/opencode_run_sample.jsonl +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/fixtures/playwright/all_pass.json +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/fixtures/playwright/global_setup_crash.json +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/fixtures/playwright/mixed_fail.json +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/fixtures/playwright/retry_then_pass.json +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/fixtures/playwright/skip.json +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/fixtures/playwright/truncated.json +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_acceptance.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_acceptance_drivers.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_agent_api_error.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_agent_app.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_agent_branch_base.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_agent_branch_capture.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_agent_config_free_1712.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_agent_deploy_units_endpoint.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_agent_dirty_worktree.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_agent_drive_queue_reconcile_2373.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_agent_graph_self_heal.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_agent_health_h3.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_agent_idle_restart.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_agent_push_failure.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_agent_reap.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_agent_repos_and_pull.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_agent_restart_services_endpoint.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_agent_skills_self_heal.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_agent_startup_diagnostics.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_agent_update.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_agent_update_bluegreen.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_agent_usage_limit.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_agent_zero_commit.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_ambient_home_isolation.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_approve_capability_reroute_3241.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_approve_dependency_busy_2804.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_approve_reject_plan.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_approve_usage_gate.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_approved_work_2532.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_approved_work_2996.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_assignment_already_recorded_daemon.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_audit_log.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_audit_outcome.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_audit_query.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_auto_loop.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_auto_release_publish_2035.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_backend_selection.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_backup.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_base_checkout_restore.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_block_log.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_board_cap_762.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_board_fixture.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_board_read_path.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_board_schema.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_board_service.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_board_state.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_board_wire.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_brain.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_branch_model.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_bug_intake.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_build_worker_image_env_update.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cargo_cache.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_check_gh_argv_containment.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_ci_acceptance_gate_1950.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_ci_fix.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_ci_github.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_ci_gitlab.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_ci_parity_2091.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_ci_store.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_claim.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_claude_setup_token.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_acceptance.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_assign.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_assign_interactive_remote.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_assign_provider.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_assign_repo_drift_2219.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_audit.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_chat_continue.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_ci.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_codegen.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_decide.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_diagnose_capability_rules.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_diagnose_config_provenance.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_diagnose_forge_availability.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_diagnose_graph.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_diagnose_self.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_diagnose_test_coverage.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_doctor.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_doctor_config_free_1801.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_doctor_store_backend_3084.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_drive.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_drive_queue.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_escalate.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_fix_headless_review.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_gate_a.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_install_drift.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_install_skills.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_issue_comment.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_issue_create_label.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_issue_reopen.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_issue_view_list.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_merge.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_milestone_assign.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_milestone_capture.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_milestone_chat_add_child.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_milestone_gate_b.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_milestone_gate_c.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_milestone_order.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_milestone_ship.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_network.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_new_issue_chat.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_plans.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_portal.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_pr.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_pull_artifact.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_queue.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_reattach_sessions.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_refine_board.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_release_preflight.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_release_propagate.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_release_window.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_repo_2220.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_review_test_author_tracking_epic_2639.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_scorecard.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_serve_store_backend_3084.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_set_review_findings.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_status_advisory_terminal.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_status_contested_tag.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_status_invariant_alarms.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_status_machine_fault.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_status_merge_queue.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_status_provider.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_status_retried_3340.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_status_review_finalizing.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_status_supervisor_3366.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_status_test_failed_tag.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_status_usage_limit.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_sync_comments_873.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_test_plan.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_track.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_tui_update.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cli_wait.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_client.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_client_base_install.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_client_config_cache_atomic_3052.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_client_resource_migration_1946.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_commands_common.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_comments.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_completion_summary.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_config.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_config_acceptance.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_config_audit.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_config_drift_check.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_config_effective.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_config_pricing.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_config_usage_gate.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_confirm_test.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_conflict_fix.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_conflict_fix_semantic.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_coord_log_daemon_fallback_2547.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_coord_test.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_coord_test_runner_acceptance_toolchain_2936.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_coord_test_runner_baseline.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_coord_test_runner_populated_home.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_coord_test_runner_routing.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_coord_test_runner_toolchain.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_coord_uat.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_coord_web_sse_restart_live.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_coordinator_machine.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_cross_platform_imports.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_dao.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_dashboard.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_dashboard_api.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_dashboard_fixture.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_dashboard_server.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_dashboard_terminal.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_dashboard_terminal_live.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_db.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_dead_end.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_decomposition_chat.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_deploy_coord_db_backup.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_deploy_coord_web_dist.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_deploy_coord_web_rollback.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_deploy_db_backup_unit.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_deploy_drive_queue_unit.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_deploy_failure_notify_unit.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_deploy_manifest.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_deploy_notify_unit.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_deploy_units_lane.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_deploy_web_unit.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_deprecation_telemetry.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_deps.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_diagnose.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_dispatch.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_dispatch_liveness.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_dispatch_target_validation.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_dispatch_workers.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_dist_name.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_done_housekeeping.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_dr_azure_scripts.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_dr_promote.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_dr_verify.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_drive.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_drive_machine_fault.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_drive_queue.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_drive_queue_blocked_rendering.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_drive_queue_launch_argv.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_drive_queue_max_parallel_config.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_drive_queue_max_parallel_per_repo_config.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_drive_queue_roll_pending.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_drive_queue_self_cordon_escalation.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_drive_state.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_drive_tmux.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_epic_up_capability_detection.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_epic_up_image_provenance.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_errors.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_events.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_failure_class.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_failure_classifier.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_filelock.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_fix_escalation_classifier.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_fix_of_force_override.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_fleet_config_health.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_fleet_health_probes.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_fleet_health_snapshot.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_fleet_watchdog.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_forge_availability.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_freshness.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_gate_a.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_gate_b.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_gate_snapshot_staleness.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_gates.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_gather_fleet_tmux_sessions.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_gen_mock_index.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_generated_rust_fixture.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_generated_rust_requests.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_generated_types_fixture.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_github_ops.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_github_throttle.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_goal.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_graph_health.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_graph_selfheal_absent_2237.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_handoff.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_health_checks.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_health_cli.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_health_cli_graph.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_health_config.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_health_context.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_health_coord_tui_ci_pin.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_health_coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_health_deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_health_fix.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_health_incident_regression.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_health_issues_sync_staleness.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_health_pr_churn.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_health_pypi.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_health_registry.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_health_release_cordon_probe.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_health_timer_active.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_health_toolchain.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_health_unit_drift.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_health_unit_enablement.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_health_wedged_drive_queue.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_hooks.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_housekeeping.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_human_attended_437.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_init.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_install_agent_venv_2911.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_integration.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_interactive_briefing_echo.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_interactive_pane_log_2541.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_interactive_prefill_state.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_interactive_session_relaunch.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_interactive_test_verdict_backstop.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_interactive_token_attribution.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_interactive_worktree.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_invariant_alarms.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_issue_store_seam.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_issues_sync_status.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_liveness_auditor.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_liveness_notify.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_lock_contention_ratchet.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_machine_fault.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_machine_metrics.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_machine_onboard.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_machine_pause.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_machine_stats.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_merge_queue.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_merge_verify.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_milestone_chat.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_milestone_gate.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_milestone_order.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_milestone_seam.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_mock_author.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_model_tiering.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_models.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_models_config_labels.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_needs_attention.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_network.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_new_issue_chat.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_next_release_tag.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_node_shim.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_notifier_baseline.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_notifier_cli.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_notifier_collect.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_notifier_config.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_notifier_drive_seam.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_notifier_isolation.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_notifier_predicate.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_notifier_quiet_hours.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_notifier_service.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_notify.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_notify_drain.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_openapi.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_operational_defaults.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_overlap_fence.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_overlap_predict.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_packaged_deploy_units.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_parentage.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_paste_landed.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_phantom_heal_venv_independence_2570.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_pipeline.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_plan_followup_approve_plan_command.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_plan_followup_pr_command.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_plan_followup_review_command.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_plan_only.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_plan_parser.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_platform_paths.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_portal_bridge.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_portal_config.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_portal_store.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_portal_sync.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_pr_body_lint.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_prereqs.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_production_db_guard.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_progress.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_provider_seam.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_providers_config_labels.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_providers_pty.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_provision_core.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_provision_machine.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_py_rust_mirror_inventory.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_quiet_hours.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_quiet_hours_store_2146.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_reap_merged_sessions.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_reap_stale_interactive_tick.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_reconcile.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_reconcile_branch.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_reconcile_completions.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_reconcile_late_agent_reports_2547.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_reconcile_merges.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_reconcile_no_agent_record.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_reconcile_tick.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_reconcile_usage_limit_done.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_refine_chat.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_release_cordon_2101.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_release_cordon_deadlock_2240.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_release_cordon_drain_stall_3336.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_release_cordon_stuck_2490.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_release_propagate.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_release_propagate_threshold.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_release_roll_between_legs_2854.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_release_roll_window_handoff.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_release_unified_1242.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_release_verify.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_release_window.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_remote_auto_prune.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_remote_interactive_reaper.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_repo_add.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_repo_dormancy.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_repo_edit_2220.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_repo_graph_fleet_2237.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_repo_onboard_2220.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_report_result_push.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_reports.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_restart_cmd.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_retry.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_retry_advisory_1606.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_retry_escalation_classify_3360.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_retry_type_1636.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_revalidate.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_review.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_review_end_review_without_verdict.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_review_parse_failure_diagnostic.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_review_reaffirm.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_review_state.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_review_verdict_backstop.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_review_verdict_override_audit.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_review_verdict_relay.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_review_zero_commits.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_scoped_review_wiring.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_scorecard.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_self_health.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_serve.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_serve_app.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_serve_app_board_trim.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_serve_rest_routes.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_session.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_slice_issue_attribution.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_smoke.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_smoke_fanout_manifest_3333.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_smoke_live_checkout_restore.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_smoke_workflow.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_spend_ceiling.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_spend_ceiling_coordinator.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_split.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_split_work.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_sql_dialect.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_sqlite_connect_ratchet.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_stage_projection.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_stale_busy_reviewer_697.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_stalled_pipeline.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_state.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_state_review_findings_daemon.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_status_fleet_footer.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_stop_1567.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_store_contract.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_store_migrate.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_stuck.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_stuck_test_state_watchdog_2803.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_terminal_command.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_test_author.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_test_chat.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_test_orchestrator.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_test_report.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_test_verdict_parsing.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_test_verdict_transcript_floor.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_text_io_encoding_audit.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_thin_client_board_audit.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_thin_client_config_load_1080.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_thin_client_daemon_routing_906.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_throwaway_vm.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_tmux_host.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_tmux_session.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_transcript_floor.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_uat_checks.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_usage.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_usage_limits.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_usage_rollup.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_venv_live_install_2121.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_version_single_source.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_watch.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_worker_env_venv_isolation.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_worker_events.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_worker_image_pin_sync.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_worker_safety.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_worker_test_scoping.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_worktree.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_worktree_rmtree_chokepoint.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/test_write_parity.py +0 -0
- {code_coordinator-0.5.507 → code_coordinator-0.5.509}/tests/write_parity.py +0 -0
|
@@ -2,20 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
CLI tool + per-machine agent server that coordinates Claude Code workers across multiple machines and repos over Tailscale.
|
|
4
4
|
|
|
5
|
-
> **Scope of this file (#2195).** This is the **worker- and reviewer-facing**
|
|
6
|
-
> loaded into every worker leg, every review leg
|
|
7
|
-
> every turn of each
|
|
8
|
-
>
|
|
9
|
-
> [`docs
|
|
10
|
-
>
|
|
11
|
-
>
|
|
12
|
-
>
|
|
13
|
-
> [`docs/
|
|
14
|
-
>
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
5
|
+
> **Scope of this file (#2195, #2817).** This is the **worker- and reviewer-facing**
|
|
6
|
+
> rulebook: it is loaded into every worker leg, every review leg and every coordinator
|
|
7
|
+
> session — and re-read on **every turn** of each, so every byte here is a recurring
|
|
8
|
+
> fleet-wide cost. It holds only what someone *editing this repo* must act on.
|
|
9
|
+
> **If a new rule does not change what a worker does, it belongs in [`docs/`](docs/).**
|
|
10
|
+
> `tests/test_claude_md_budget.py` enforces that with a byte cap — move a section out
|
|
11
|
+
> rather than raise it.
|
|
12
|
+
>
|
|
13
|
+
> Not here: operator runbooks ([`docs/OPERATOR_GUIDES.md`](docs/OPERATOR_GUIDES.md)) ·
|
|
14
|
+
> settled design rationale
|
|
15
|
+
> ([`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md#design-decisions--the-settled-rationale)) ·
|
|
16
|
+
> the `coord` command reference (`coord <cmd> --help`) · operator cost rules and
|
|
17
|
+
> "dispatch, don't do" ([`docs/COST_DISCIPLINE.md`](docs/COST_DISCIPLINE.md)) ·
|
|
18
|
+
> the current north-star objective ([`GOAL.md`](GOAL.md) — read it in a coordinator
|
|
19
|
+
> session when planning or triaging; a worker or reviewer leg does not need it).
|
|
19
20
|
|
|
20
21
|
## Codebase navigation — query the graph first
|
|
21
22
|
|
|
@@ -64,22 +65,11 @@ Query the **graphify graph** (`graphify-out/`) for the full module map + relatio
|
|
|
64
65
|
|
|
65
66
|
## Commands
|
|
66
67
|
|
|
67
|
-
`coord <cmd> --help` documents every command
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
coord
|
|
71
|
-
|
|
72
|
-
coord assign <machine> <repo> <issue> [--briefing TEXT | --briefing-file F] [--dry-run] # Direct dispatch
|
|
73
|
-
coord status [--freshness] # Machines, assignments, connectivity (+ repo freshness vs GitHub HEADs)
|
|
74
|
-
coord log <id> [-f] [--machine NAME] # claude -p output (remote logs need --machine)
|
|
75
|
-
coord notify # Poll agents, post completion/failure comments to GitHub
|
|
76
|
-
coord test --passed|--fail|--skipped <id> # Record the Test-gate verdict (bare `coord test <id>` builds+tests locally)
|
|
77
|
-
coord merge [--dry-run] [--repo NAME] [--method rebase|squash|merge] [--order IDs] [--force-merge]
|
|
78
|
-
coord reconcile-merges # Backfill missing branches + record out-of-band merges (#609/#611)
|
|
79
|
-
coord retry|stop|resume <id> # Recovery; `coord done` ends the session
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
Setup / diagnostics (discoverable via `--help`): `coord init`, `coord config`, `coord agent`, `coord serve`, `coord web`, `coord diagnose`, `coord sessions [--remote]`, `coord split`, `coord notifier`, `coord repo add` / `coord repo doctor`.
|
|
68
|
+
`coord <cmd> --help` documents every command and flag — that is the reference, not this
|
|
69
|
+
file. The operator-facing core loop (`plan`/`approve`/`assign`/`status`/`merge`/...) is in
|
|
70
|
+
[`docs/OPERATOR_GUIDES.md`](docs/OPERATOR_GUIDES.md#the-core-loop). The one `coord` command
|
|
71
|
+
a **worker** runs is `coord acceptance run --issue N`, in an oracle-loop round (see Testing
|
|
72
|
+
below).
|
|
83
73
|
|
|
84
74
|
## Development
|
|
85
75
|
|
|
@@ -133,34 +123,22 @@ computes the routing without actually building or testing anything.
|
|
|
133
123
|
|
|
134
124
|
## Key Design Decisions
|
|
135
125
|
|
|
136
|
-
|
|
137
|
-
[`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md#design-decisions--the-settled-rationale).
|
|
138
|
-
|
|
139
|
-
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
- **
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
- **The pipeline order is `Work → Test → Review → Merge`.** Test precedes Review; the
|
|
148
|
-
-
|
|
149
|
-
- **
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
- **The notifier tells you when NOBODY IS COMING — and nothing else (#1632).** Advisory, isolated, off by default; it is not an error channel and not a progress feed.
|
|
153
|
-
|
|
154
|
-
## Review Prompt Assembly
|
|
155
|
-
|
|
156
|
-
The reviewer gets a prompt built from:
|
|
157
|
-
1. **Repo's CLAUDE.md** — the project rules (source of truth, not duplicated)
|
|
158
|
-
2. **Generic checklist** — "did you add tests?", "did you stay in file scope?", "any security issues?"
|
|
159
|
-
3. **Repo overrides** — project-specific patterns from `coordinator.yml` `reviews.repo_overrides`
|
|
160
|
-
4. **The diff** — `gh pr diff` of the worker's branch vs base
|
|
161
|
-
5. **The issue** — title and body for intent verification
|
|
162
|
-
|
|
163
|
-
The reviewer reads the rules and enforces them against the diff. It does not have the worker's session context — genuinely independent.
|
|
126
|
+
These are the ones a **diff** can violate. The full set, with the reasoning behind each, is
|
|
127
|
+
in [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md#design-decisions--the-settled-rationale).
|
|
128
|
+
|
|
129
|
+
- **`coordinator.yml` is the single source of truth** for repo topology, machine
|
|
130
|
+
capabilities, dependencies, concurrency limits, review settings, smoke-test rules and the
|
|
131
|
+
pipeline gate order (`pipeline.default_gates`). It lives in `~/.coord/`, **not** the repo
|
|
132
|
+
checkout.
|
|
133
|
+
- **Conflict rules are inferred, not configured.** There is no `file_groups` /
|
|
134
|
+
`exclusive_files` config and never will be — `coord drive-queue add` compares an issue's
|
|
135
|
+
own `## Files` declaration against the **real diffs** of in-flight branches
|
|
136
|
+
(`coord/overlap_predict.py`, #2247). **It ORDERS, never refuses.** Do not add such config.
|
|
137
|
+
- **The pipeline order is `Work → Test → Review → Merge`.** Test precedes Review; the
|
|
138
|
+
headless auto-loop holds review dispatch until there is a `passed`/`skipped` verdict.
|
|
139
|
+
- **Adversarial reviews are rule-enforcing, not rubber-stamping.** A fresh `claude -p`
|
|
140
|
+
session on a *different* machine reviews your diff against this file, with **zero shared
|
|
141
|
+
context with you** — so your diff and final message must stand on their own.
|
|
164
142
|
|
|
165
143
|
## Rules for workers
|
|
166
144
|
|
|
@@ -212,7 +190,5 @@ versus keep in the coordinator session, and the coordinator session's own
|
|
|
212
190
|
|
|
213
191
|
## Operating the fleet — operator-facing
|
|
214
192
|
|
|
215
|
-
**Not needed to work on this repo.**
|
|
216
|
-
runbook — the pre-flight gotchas, agent installs and releases, the drive queue, the customer
|
|
217
|
-
portal, and the two deploy facts that bite most often — is indexed in
|
|
193
|
+
**Not needed to work on this repo.** Every operator runbook is indexed in
|
|
218
194
|
[`docs/OPERATOR_GUIDES.md`](docs/OPERATOR_GUIDES.md).
|
|
@@ -788,6 +788,7 @@ tests/test_repo_add.py
|
|
|
788
788
|
tests/test_repo_dormancy.py
|
|
789
789
|
tests/test_repo_edit_2220.py
|
|
790
790
|
tests/test_repo_graph_fleet_2237.py
|
|
791
|
+
tests/test_repo_max_parallel_3423.py
|
|
791
792
|
tests/test_repo_onboard_2220.py
|
|
792
793
|
tests/test_report_result_push.py
|
|
793
794
|
tests/test_reports.py
|
{code_coordinator-0.5.507 → code_coordinator-0.5.509}/code_coordinator.egg-info/scm_file_list.json
RENAMED
|
@@ -814,6 +814,7 @@
|
|
|
814
814
|
"tests/test_repo_dormancy.py",
|
|
815
815
|
"tests/test_repo_edit_2220.py",
|
|
816
816
|
"tests/test_repo_graph_fleet_2237.py",
|
|
817
|
+
"tests/test_repo_max_parallel_3423.py",
|
|
817
818
|
"tests/test_repo_onboard_2220.py",
|
|
818
819
|
"tests/test_report_result_push.py",
|
|
819
820
|
"tests/test_reports.py",
|
|
@@ -5062,6 +5062,136 @@ def _claude_md_system_prompt_suffix(repo_path: str) -> str:
|
|
|
5062
5062
|
return "\n\n## Project rules (from CLAUDE.md)\n\n" + claude_md.strip() + "\n"
|
|
5063
5063
|
|
|
5064
5064
|
|
|
5065
|
+
# #3420: every `claude -p` leg loads the full JSON schema for all built-in
|
|
5066
|
+
# tools regardless of `--allowedTools`, which is a *permission* filter, not a
|
|
5067
|
+
# tool-surface one — a leg with `Read,Bash` in `--allowedTools` still pays
|
|
5068
|
+
# the prompt-token cost of the `Workflow`/`Skill`/etc. schemas it can never
|
|
5069
|
+
# call. Measured with controlled `claude -p` probes on this repo's own
|
|
5070
|
+
# `default_worker_command` flags (Claude Code 2.1.278, `type="work"`): the
|
|
5071
|
+
# schemas for these tools cost 12,134 tokens/turn (44% of the static
|
|
5072
|
+
# prefix), re-read at cache-read rates on every turn of every leg. None of
|
|
5073
|
+
# them has a legitimate use from a headless coord leg:
|
|
5074
|
+
# - `Workflow`: requires explicit user opt-in; a headless leg has no user.
|
|
5075
|
+
# - `Skill`: all `coord` skills are operator-only runbooks.
|
|
5076
|
+
# - `ScheduleWakeup`: every leg is one-shot (WORKER_SYSTEM_PROMPT's
|
|
5077
|
+
# ONE-SHOT section, #1394) — there is no future turn to wake up into.
|
|
5078
|
+
# - `Task`: CLAUDE.md mandates `graphify query` + grep for navigation
|
|
5079
|
+
# instead of spawning a subagent.
|
|
5080
|
+
# - `ReportFindings`, `ListAgents`: unreferenced by any coord system
|
|
5081
|
+
# prompt; no fleet-messaging or review-findings-reporting surface is
|
|
5082
|
+
# exposed to a leg.
|
|
5083
|
+
# - The remainder (`Cron*`, `DesignSync`, `EnterWorktree`/`ExitWorktree`,
|
|
5084
|
+
# `NotebookEdit`, `PushNotification`, `RemoteTrigger`, `SendMessage`):
|
|
5085
|
+
# operator/coordinator-session tools with no worker-leg counterpart —
|
|
5086
|
+
# already deferred behind `ToolSearch` so each costs only ~6-9 tokens,
|
|
5087
|
+
# but included for a consistent, minimal tool surface.
|
|
5088
|
+
#
|
|
5089
|
+
# Deliberately EXCLUDED, despite being equally unusable:
|
|
5090
|
+
# - `Monitor`: 0 marginal token cost, and WORKER_SYSTEM_PROMPT's ONE-SHOT
|
|
5091
|
+
# polling guidance depends on it (it's the sanctioned way to await a
|
|
5092
|
+
# backgrounded command in bounded steps).
|
|
5093
|
+
# - `ToolSearch`: cheap on its own, and removing it is untested — it's the
|
|
5094
|
+
# mechanism that resolves every deferred tool name at all.
|
|
5095
|
+
# - `TaskOutput`/`TaskStop`: look like `Task`'s output/cancel pair at
|
|
5096
|
+
# first glance, but WORKER_SYSTEM_PROMPT's ONE-SHOT section and
|
|
5097
|
+
# coord/smoke.py's SMOKE_SYSTEM_PROMPT both explicitly teach
|
|
5098
|
+
# `TaskOutput` as the bounded-poll alternative to `Monitor` for a
|
|
5099
|
+
# backgrounded Bash command (`run_in_background`) — disallowing it
|
|
5100
|
+
# would make that documented guidance a dead end. `TaskStop` is kept
|
|
5101
|
+
# alongside it since it's the same background-job-management pair.
|
|
5102
|
+
# - `WebFetch`/`WebSearch`: ~6 tokens each either way (negligible), and a
|
|
5103
|
+
# worker may legitimately need to look up library docs or an error
|
|
5104
|
+
# message mid-task — kept allowed rather than trading real capability
|
|
5105
|
+
# for a rounding error in prompt size.
|
|
5106
|
+
UNUSABLE_TOOL_SCHEMAS: list[str] = [
|
|
5107
|
+
"Workflow",
|
|
5108
|
+
"Skill",
|
|
5109
|
+
"ScheduleWakeup",
|
|
5110
|
+
"Task",
|
|
5111
|
+
"ReportFindings",
|
|
5112
|
+
"ListAgents",
|
|
5113
|
+
"CronCreate",
|
|
5114
|
+
"CronDelete",
|
|
5115
|
+
"CronList",
|
|
5116
|
+
"DesignSync",
|
|
5117
|
+
"EnterWorktree",
|
|
5118
|
+
"ExitWorktree",
|
|
5119
|
+
"NotebookEdit",
|
|
5120
|
+
"PushNotification",
|
|
5121
|
+
"RemoteTrigger",
|
|
5122
|
+
"SendMessage",
|
|
5123
|
+
]
|
|
5124
|
+
|
|
5125
|
+
|
|
5126
|
+
def worker_disallowed_tools(spec: AssignmentSpec, allowed_tools: str) -> list[str]:
|
|
5127
|
+
"""Return the ordered ``--disallowedTools`` entries for *spec*.
|
|
5128
|
+
|
|
5129
|
+
**Single source of truth.** Both argv builders that emit
|
|
5130
|
+
``--disallowedTools`` — :func:`default_worker_command` and
|
|
5131
|
+
:meth:`coord.providers.claude.ClaudeProvider.build_command` — call
|
|
5132
|
+
this, rather than each reimplementing the same four-layer stack. The
|
|
5133
|
+
two previously transcribed the logic independently, which is exactly
|
|
5134
|
+
how #3420's ``UNUSABLE_TOOL_SCHEMAS`` layer landed in one and not the
|
|
5135
|
+
other; the parity suite in ``tests/test_providers.py`` caught it, but
|
|
5136
|
+
a shared function makes the divergence unrepresentable instead of
|
|
5137
|
+
merely detectable.
|
|
5138
|
+
|
|
5139
|
+
Layers, in argv order (each skips entries an earlier layer already
|
|
5140
|
+
added, so the result is de-duplicated but order-stable):
|
|
5141
|
+
|
|
5142
|
+
1. #3420 ``UNUSABLE_TOOL_SCHEMAS`` — unconditional, every spec type.
|
|
5143
|
+
2. #1315 sealed-oracle write guard, from ``spec.files_forbidden``.
|
|
5144
|
+
3. #1642 base-checkout write guard — only when *allowed_tools*
|
|
5145
|
+
actually grants ``Edit``; for the Read/Bash-only chat types the
|
|
5146
|
+
guard would be a no-op cluttering the argv.
|
|
5147
|
+
4. #2461 ``REVIEW_DENY_COMMANDS`` — only for ``spec.type ==
|
|
5148
|
+
"review"``, wiring the mutating-command deny list into the
|
|
5149
|
+
CLI-enforced flag and not just the soft prompt reminder.
|
|
5150
|
+
|
|
5151
|
+
Args:
|
|
5152
|
+
spec: The assignment being dispatched.
|
|
5153
|
+
allowed_tools: The ``--allowedTools`` value computed for this
|
|
5154
|
+
spec — inspected for ``Edit`` to decide layer 3. Passing the
|
|
5155
|
+
caller's own computed value (rather than re-deriving it here)
|
|
5156
|
+
keeps the two flags consistent even when a caller overrides
|
|
5157
|
+
``--allowedTools`` explicitly, as ``build_command`` allows.
|
|
5158
|
+
|
|
5159
|
+
Returns:
|
|
5160
|
+
A fresh list; callers may mutate it. Empty only in the
|
|
5161
|
+
impossible case where every layer contributes nothing — since
|
|
5162
|
+
#3420, layer 1 is unconditional, so in practice this is always
|
|
5163
|
+
non-empty and ``--disallowedTools`` is always emitted.
|
|
5164
|
+
"""
|
|
5165
|
+
# #3420: strip the unusable-tool schemas from every spec type, including
|
|
5166
|
+
# the Read/Bash-only chat legs (plan, refinement, test-chat,
|
|
5167
|
+
# new-issue-chat, smoke, review) — they carry the same
|
|
5168
|
+
# Workflow/Skill/Task/etc. schemas as a work leg and benefit identically.
|
|
5169
|
+
# This is FIRST so the guards below, which each append to this same
|
|
5170
|
+
# list, keep working unchanged.
|
|
5171
|
+
disallowed_tools = list(UNUSABLE_TOOL_SCHEMAS)
|
|
5172
|
+
# #1315: structural sealing enforcement — see _sealed_write_guard_tools.
|
|
5173
|
+
for pattern in _sealed_write_guard_tools(spec.files_forbidden):
|
|
5174
|
+
if pattern not in disallowed_tools:
|
|
5175
|
+
disallowed_tools.append(pattern)
|
|
5176
|
+
# #1642: block Edit/Write on the shared base checkout for any spec.type
|
|
5177
|
+
# that actually gets Edit/Write in --allowedTools — the Read/Bash-only
|
|
5178
|
+
# chat types can't touch files regardless, and adding the guard there
|
|
5179
|
+
# would be a no-op cluttering their argv for nothing.
|
|
5180
|
+
if "Edit" in allowed_tools:
|
|
5181
|
+
for pattern in _base_checkout_write_guard_tools(spec.repo_path):
|
|
5182
|
+
if pattern not in disallowed_tools:
|
|
5183
|
+
disallowed_tools.append(pattern)
|
|
5184
|
+
# #2461: review gets its mutating-command deny list wired into
|
|
5185
|
+
# --disallowedTools too, not just the soft system-prompt reminder from
|
|
5186
|
+
# build_deny_prompt — the CLI enforces this one even if the model
|
|
5187
|
+
# decides to ignore its own prompt.
|
|
5188
|
+
if spec.type == "review":
|
|
5189
|
+
for pattern in REVIEW_DENY_COMMANDS:
|
|
5190
|
+
if pattern not in disallowed_tools:
|
|
5191
|
+
disallowed_tools.append(pattern)
|
|
5192
|
+
return disallowed_tools
|
|
5193
|
+
|
|
5194
|
+
|
|
5065
5195
|
def default_worker_command(spec: AssignmentSpec, *, binary: str = DEFAULT_WORKER_BINARY) -> list[str]:
|
|
5066
5196
|
"""Build the argv for invoking the worker on this assignment.
|
|
5067
5197
|
|
|
@@ -5347,24 +5477,10 @@ def default_worker_command(spec: AssignmentSpec, *, binary: str = DEFAULT_WORKER
|
|
|
5347
5477
|
]
|
|
5348
5478
|
if spec.model:
|
|
5349
5479
|
argv.extend(["--model", spec.model])
|
|
5350
|
-
# #1315:
|
|
5351
|
-
|
|
5352
|
-
#
|
|
5353
|
-
|
|
5354
|
-
# chat types above can't touch files regardless, and adding the guard
|
|
5355
|
-
# there would be a no-op cluttering their argv for nothing.
|
|
5356
|
-
if "Edit" in allowed_tools:
|
|
5357
|
-
for pattern in _base_checkout_write_guard_tools(spec.repo_path):
|
|
5358
|
-
if pattern not in disallowed_tools:
|
|
5359
|
-
disallowed_tools.append(pattern)
|
|
5360
|
-
# #2461: review gets its mutating-command deny list wired into
|
|
5361
|
-
# --disallowedTools too, not just the soft system-prompt reminder from
|
|
5362
|
-
# build_deny_prompt above — the CLI enforces this one even if the model
|
|
5363
|
-
# decides to ignore its own prompt.
|
|
5364
|
-
if spec.type == "review":
|
|
5365
|
-
for pattern in REVIEW_DENY_COMMANDS:
|
|
5366
|
-
if pattern not in disallowed_tools:
|
|
5367
|
-
disallowed_tools.append(pattern)
|
|
5480
|
+
# #3420 / #1315 / #1642 / #2461: all four --disallowedTools layers live
|
|
5481
|
+
# in worker_disallowed_tools, shared with ClaudeProvider.build_command so
|
|
5482
|
+
# the two argv builders cannot drift apart (see that function's docstring).
|
|
5483
|
+
disallowed_tools = worker_disallowed_tools(spec, allowed_tools)
|
|
5368
5484
|
if disallowed_tools:
|
|
5369
5485
|
argv.extend(["--disallowedTools", ",".join(disallowed_tools)])
|
|
5370
5486
|
# #315: when resuming a prior chat session, load the prior conversation so
|
|
@@ -101,8 +101,10 @@ from coord.drive_queue import (
|
|
|
101
101
|
plan_tick,
|
|
102
102
|
remaining_fix_rounds,
|
|
103
103
|
render_plan,
|
|
104
|
+
effective_repo_capacities,
|
|
104
105
|
resolve_max_parallel,
|
|
105
106
|
resolve_max_parallel_per_repo,
|
|
107
|
+
resolve_repo_ceilings,
|
|
106
108
|
total_fix_round_budget,
|
|
107
109
|
unreachable_wait_alert,
|
|
108
110
|
validate_apply_gate,
|
|
@@ -6226,25 +6228,45 @@ def drive_queue_tick(
|
|
|
6226
6228
|
_config_max_parallel_per_repo = (
|
|
6227
6229
|
None if _cfg is None else _cfg.pipeline.max_parallel_per_repo
|
|
6228
6230
|
)
|
|
6229
|
-
|
|
6230
|
-
|
|
6231
|
-
override_value=max_parallel_per_repo,
|
|
6232
|
-
config_key="pipeline.max_parallel_per_repo",
|
|
6233
|
-
config_value=_config_max_parallel_per_repo,
|
|
6234
|
-
)
|
|
6235
|
-
if _shadow_warning:
|
|
6236
|
-
click.echo(_shadow_warning)
|
|
6237
|
-
max_parallel_per_repo = resolve_max_parallel_per_repo(
|
|
6231
|
+
_flag_max_parallel_per_repo = max_parallel_per_repo
|
|
6232
|
+
_per_repo_resolution = resolve_max_parallel_per_repo(
|
|
6238
6233
|
override_value=max_parallel_per_repo,
|
|
6239
6234
|
override_source="--max-parallel-per-repo flag",
|
|
6240
6235
|
config_value=_config_max_parallel_per_repo,
|
|
6241
|
-
)
|
|
6236
|
+
)
|
|
6237
|
+
max_parallel_per_repo = _per_repo_resolution.value
|
|
6242
6238
|
|
|
6243
6239
|
if max_parallel_per_repo < 0:
|
|
6244
6240
|
raise click.ClickException(
|
|
6245
6241
|
"--max-parallel-per-repo must be 0 (no per-repo ceiling) or more"
|
|
6246
6242
|
)
|
|
6247
6243
|
|
|
6244
|
+
# #3423: each repo's OWN ceiling (`repos[].max_parallel`), layered on the
|
|
6245
|
+
# fleet-wide answer just resolved. Only the repos that actually DIFFER
|
|
6246
|
+
# are carried into the tick, so a fleet with no overrides produces the
|
|
6247
|
+
# identical `TickPlan` (and identical `render_plan` output) it did
|
|
6248
|
+
# before. `resolve_repo_ceilings` is the SAME function `coord config
|
|
6249
|
+
# --effective` reports through, for the same reason as the two ceilings
|
|
6250
|
+
# above: one resolution order, not two that could drift (#2085).
|
|
6251
|
+
_repo_ceilings = resolve_repo_ceilings(
|
|
6252
|
+
{} if _cfg is None else {r.name: r.max_parallel for r in _cfg.repos},
|
|
6253
|
+
fleet=_per_repo_resolution,
|
|
6254
|
+
)
|
|
6255
|
+
repo_max_parallel = effective_repo_capacities(
|
|
6256
|
+
_repo_ceilings, fleet_value=max_parallel_per_repo
|
|
6257
|
+
)
|
|
6258
|
+
# Emitted after the per-repo table exists so the #3408 warning can name
|
|
6259
|
+
# the repos whose own ceiling beats the flag anyway (#3423).
|
|
6260
|
+
_shadow_warning = flag_shadows_config_warning(
|
|
6261
|
+
flag_name="max-parallel-per-repo",
|
|
6262
|
+
override_value=_flag_max_parallel_per_repo,
|
|
6263
|
+
config_key="pipeline.max_parallel_per_repo",
|
|
6264
|
+
config_value=_config_max_parallel_per_repo,
|
|
6265
|
+
overridden_repos=sorted(repo_max_parallel),
|
|
6266
|
+
)
|
|
6267
|
+
if _shadow_warning:
|
|
6268
|
+
click.echo(_shadow_warning)
|
|
6269
|
+
|
|
6248
6270
|
# #3388/#3408: an explicit `--max-parallel` always wins; otherwise
|
|
6249
6271
|
# `pipeline.max_parallel` from coordinator.yml; otherwise derive it from
|
|
6250
6272
|
# the fleet's own shape (repo count * the per-repo ceiling just resolved
|
|
@@ -6272,6 +6294,11 @@ def drive_queue_tick(
|
|
|
6272
6294
|
max_parallel_per_repo=max_parallel_per_repo,
|
|
6273
6295
|
max_workers_cap=0 if _cfg is None else _cfg.concurrency.max_workers,
|
|
6274
6296
|
config_readable=_cfg is not None,
|
|
6297
|
+
# #3423: the derivation must sum the per-repo ceilings, not multiply
|
|
6298
|
+
# by the fleet default — raising one repo to 2 without widening the
|
|
6299
|
+
# global ceiling to match re-creates exactly the starvation #3388
|
|
6300
|
+
# was opened for.
|
|
6301
|
+
repo_overrides=repo_max_parallel,
|
|
6275
6302
|
).value
|
|
6276
6303
|
|
|
6277
6304
|
if max_parallel < 0:
|
|
@@ -6522,6 +6549,7 @@ def drive_queue_tick(
|
|
|
6522
6549
|
board,
|
|
6523
6550
|
effective_capacity,
|
|
6524
6551
|
max_parallel_per_repo=max_parallel_per_repo,
|
|
6552
|
+
repo_max_parallel=repo_max_parallel,
|
|
6525
6553
|
probes=probes,
|
|
6526
6554
|
now=now,
|
|
6527
6555
|
local_host=_local_host_id(),
|
|
@@ -20,6 +20,8 @@ from coord.commands._common import _CONFIG_OPTION, _load_config
|
|
|
20
20
|
import json
|
|
21
21
|
|
|
22
22
|
if TYPE_CHECKING: # pragma: no cover — typing only
|
|
23
|
+
from collections.abc import Mapping
|
|
24
|
+
|
|
23
25
|
from coord.config import Config
|
|
24
26
|
from coord.drive_queue import CeilingResolution
|
|
25
27
|
|
|
@@ -183,10 +185,12 @@ def _print_effective_concurrency(
|
|
|
183
185
|
machine's own installed systemd unit, if any.
|
|
184
186
|
"""
|
|
185
187
|
from coord.drive_queue import ( # noqa: PLC0415
|
|
188
|
+
effective_repo_capacities,
|
|
186
189
|
flag_shadows_config_warning,
|
|
187
190
|
read_systemd_max_parallel_flags,
|
|
188
191
|
resolve_max_parallel,
|
|
189
192
|
resolve_max_parallel_per_repo,
|
|
193
|
+
resolve_repo_ceilings,
|
|
190
194
|
)
|
|
191
195
|
|
|
192
196
|
systemd_flags = read_systemd_max_parallel_flags()
|
|
@@ -202,11 +206,26 @@ def _print_effective_concurrency(
|
|
|
202
206
|
override_source=per_repo_source,
|
|
203
207
|
config_value=cfg.pipeline.max_parallel_per_repo,
|
|
204
208
|
)
|
|
209
|
+
# #3423: each repo's own `repos[].max_parallel`, layered on the
|
|
210
|
+
# fleet-wide answer above. Reported per repo below — a single
|
|
211
|
+
# `max_parallel_per_repo` line stopped being the whole truth the moment
|
|
212
|
+
# one repo could disagree with it, and "which ceiling actually applies
|
|
213
|
+
# to MY repo" is the same question #3408 was opened to answer.
|
|
214
|
+
repo_resolutions = resolve_repo_ceilings(
|
|
215
|
+
{r.name: r.max_parallel for r in cfg.repos}, fleet=per_repo_resolution
|
|
216
|
+
)
|
|
217
|
+
repo_overrides = effective_repo_capacities(
|
|
218
|
+
repo_resolutions, fleet_value=per_repo_resolution.value
|
|
219
|
+
)
|
|
205
220
|
per_repo_warning = flag_shadows_config_warning(
|
|
206
221
|
flag_name="max-parallel-per-repo",
|
|
207
222
|
override_value=per_repo_override,
|
|
208
223
|
config_key="pipeline.max_parallel_per_repo",
|
|
209
224
|
config_value=cfg.pipeline.max_parallel_per_repo,
|
|
225
|
+
# #3423: computed after the per-repo table above so the warning can
|
|
226
|
+
# name the repos that beat the flag — "always wins" would otherwise
|
|
227
|
+
# be contradicted by the very next line this function prints.
|
|
228
|
+
overridden_repos=sorted(repo_overrides),
|
|
210
229
|
)
|
|
211
230
|
|
|
212
231
|
max_parallel_override = sim_max_parallel
|
|
@@ -222,6 +241,7 @@ def _print_effective_concurrency(
|
|
|
222
241
|
repo_count=len(cfg.repos),
|
|
223
242
|
max_parallel_per_repo=per_repo_resolution.value,
|
|
224
243
|
max_workers_cap=cfg.concurrency.max_workers,
|
|
244
|
+
repo_overrides=repo_overrides,
|
|
225
245
|
)
|
|
226
246
|
global_warning = flag_shadows_config_warning(
|
|
227
247
|
flag_name="max-parallel",
|
|
@@ -239,16 +259,26 @@ def _print_effective_concurrency(
|
|
|
239
259
|
_echo_ceiling(per_repo_resolution)
|
|
240
260
|
if per_repo_warning:
|
|
241
261
|
click.echo(f" {per_repo_warning}")
|
|
262
|
+
# #3423: only the repos that actually override the fleet default are
|
|
263
|
+
# listed. Printing all fourteen would bury the two that differ, which is
|
|
264
|
+
# the opposite of what this report is for.
|
|
265
|
+
for name in sorted(repo_overrides):
|
|
266
|
+
_echo_ceiling(repo_resolutions[name], indent=" ")
|
|
242
267
|
click.echo(
|
|
243
268
|
f" {'concurrency.max_workers':<24} {cfg.concurrency.max_workers}"
|
|
244
269
|
" <- coordinator.yml concurrency.max_workers"
|
|
245
270
|
)
|
|
246
271
|
click.echo("")
|
|
247
|
-
click.echo(
|
|
272
|
+
click.echo(
|
|
273
|
+
_effective_usage_line(
|
|
274
|
+
cfg, global_resolution, per_repo_resolution, repo_overrides
|
|
275
|
+
)
|
|
276
|
+
)
|
|
248
277
|
|
|
249
278
|
|
|
250
|
-
def _echo_ceiling(resolution: "CeilingResolution") -> None:
|
|
251
|
-
|
|
279
|
+
def _echo_ceiling(resolution: "CeilingResolution", *, indent: str = " ") -> None:
|
|
280
|
+
width = 26 - len(indent)
|
|
281
|
+
line = f"{indent}{resolution.name:<{width}} {resolution.value} <- {resolution.source}"
|
|
252
282
|
if resolution.losing:
|
|
253
283
|
losers = ", ".join(f"{name}: {value}" for name, value in resolution.losing)
|
|
254
284
|
line += f" (losing: {losers})"
|
|
@@ -259,6 +289,7 @@ def _effective_usage_line(
|
|
|
259
289
|
cfg: "Config",
|
|
260
290
|
global_resolution: "CeilingResolution",
|
|
261
291
|
per_repo_resolution: "CeilingResolution",
|
|
292
|
+
repo_overrides: "Mapping[str, int] | None" = None,
|
|
262
293
|
) -> str:
|
|
263
294
|
"""Current in-flight usage against the two resolved ceilings above
|
|
264
295
|
(#3408 acceptance: "a queue at its global ceiling reports N/N rather
|
|
@@ -291,8 +322,11 @@ def _effective_usage_line(
|
|
|
291
322
|
return f"in flight unavailable ({exc})"
|
|
292
323
|
|
|
293
324
|
line = f"in flight {occupied}/{global_resolution.value} global"
|
|
325
|
+
# #3423: count each repo against ITS OWN ceiling — against the fleet
|
|
326
|
+
# default, an overridden repo reports "2/1" and reads as a bug.
|
|
327
|
+
overrides = repo_overrides or {}
|
|
294
328
|
per_repo_bits = " · ".join(
|
|
295
|
-
f"{repo} {count}/{per_repo_resolution.value}"
|
|
329
|
+
f"{repo} {count}/{overrides.get(repo, per_repo_resolution.value)}"
|
|
296
330
|
for repo, count in sorted(repo_occupied.items())
|
|
297
331
|
)
|
|
298
332
|
if per_repo_bits:
|
|
@@ -2536,6 +2536,7 @@ _KNOWN_REPO_KEYS = frozenset(
|
|
|
2536
2536
|
"uat_live_preview",
|
|
2537
2537
|
"uat_checks",
|
|
2538
2538
|
"requires",
|
|
2539
|
+
"max_parallel",
|
|
2539
2540
|
}
|
|
2540
2541
|
)
|
|
2541
2542
|
|
|
@@ -2831,6 +2832,28 @@ def _parse_repos(raw: Any) -> tuple[list[Repo], list[str]]:
|
|
|
2831
2832
|
if not isinstance(requires, list) or not all(isinstance(r, str) for r in requires):
|
|
2832
2833
|
raise ConfigError(f"repos[{i}].requires must be a list of strings")
|
|
2833
2834
|
|
|
2835
|
+
# #3423: max_parallel — THIS repo's own drive-queue concurrency
|
|
2836
|
+
# ceiling, overriding the fleet-wide `pipeline.max_parallel_per_repo`.
|
|
2837
|
+
# Absent (None) means "no opinion", i.e. exactly the pre-#3423
|
|
2838
|
+
# behaviour for that repo. See `Repo.max_parallel`'s docstring for
|
|
2839
|
+
# why this one override outranks an explicit CLI/systemd flag, and
|
|
2840
|
+
# `coord.drive_queue.resolve_repo_max_parallel` for the resolution.
|
|
2841
|
+
# `bool` is rejected explicitly: YAML's `max_parallel: true` parses
|
|
2842
|
+
# as a bool, which `isinstance(x, int)` would otherwise wave through
|
|
2843
|
+
# as 1 — a silently-wrong ceiling rather than a config error.
|
|
2844
|
+
repo_max_parallel = entry.get("max_parallel")
|
|
2845
|
+
if repo_max_parallel is not None:
|
|
2846
|
+
if isinstance(repo_max_parallel, bool) or not isinstance(repo_max_parallel, int):
|
|
2847
|
+
raise ConfigError(
|
|
2848
|
+
f"repos[{i}].max_parallel must be an integer "
|
|
2849
|
+
"(omit the key entirely to use pipeline.max_parallel_per_repo)"
|
|
2850
|
+
)
|
|
2851
|
+
if repo_max_parallel < 0:
|
|
2852
|
+
raise ConfigError(
|
|
2853
|
+
f"repos[{i}].max_parallel must be 0 (no per-repo ceiling "
|
|
2854
|
+
"for this repo) or more"
|
|
2855
|
+
)
|
|
2856
|
+
|
|
2834
2857
|
repos.append(
|
|
2835
2858
|
Repo(
|
|
2836
2859
|
name=name,
|
|
@@ -2853,6 +2876,7 @@ def _parse_repos(raw: Any) -> tuple[list[Repo], list[str]]:
|
|
|
2853
2876
|
uat_live_preview=uat_live_preview_raw,
|
|
2854
2877
|
uat_checks=uat_checks,
|
|
2855
2878
|
requires=list(requires),
|
|
2879
|
+
max_parallel=repo_max_parallel,
|
|
2856
2880
|
)
|
|
2857
2881
|
)
|
|
2858
2882
|
return repos, warnings
|