code-coordinator 0.5.506__tar.gz → 0.5.508__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.506 → code_coordinator-0.5.508}/CLAUDE.md +37 -61
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/PKG-INFO +1 -1
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/code_coordinator.egg-info/PKG-INFO +1 -1
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/code_coordinator.egg-info/scm_version.json +2 -2
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/agent.py +134 -18
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/notify.py +131 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/providers/claude.py +18 -20
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/ARCHITECTURE.md +15 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/OPERATOR_GUIDES.md +23 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_agent.py +123 -3
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_claude_md_budget.py +9 -5
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_notify.py +152 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_providers.py +104 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/.claude/commands/board.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/.claude/commands/complete-session.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/.claude/commands/coordinator.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/.githooks/_lib.sh +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/.githooks/post-checkout +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/.githooks/post-commit +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/.githooks/post-merge +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/.github/workflows/auto-release.yml +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/.github/workflows/publish.yml +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/.github/workflows/test.yml +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/.gitignore +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/GOAL.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/LICENSE +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/MANIFEST.in +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/README.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/code_coordinator.egg-info/SOURCES.txt +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/code_coordinator.egg-info/dependency_links.txt +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/code_coordinator.egg-info/entry_points.txt +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/code_coordinator.egg-info/requires.txt +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/code_coordinator.egg-info/scm_file_list.json +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/code_coordinator.egg-info/top_level.txt +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/__init__.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/_board_mapping.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/acceptance.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/acceptance_drivers.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/agent_app.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/agent_update.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/agents/opencode/.gitignore +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/agents/opencode/agents/work.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/agents/opencode/routing.jsonc +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/approved_work.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/audit.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/auto_loop.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/backup.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/block_log.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/board_schema.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/board_service.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/board_wire.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/brain.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/branch_model.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/bug_intake.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/cargo_cache.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/ci_fix.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/ci_github.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/ci_gitlab.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/ci_store.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/claim.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/claude_setup_token.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/cli.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/client.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/codegen.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/__init__.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/_common.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/acceptance.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/agent_ops.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/audit.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/backup.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/chat.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/ci.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/codegen.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/dispatch.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/dispatch_workers.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/dr.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/drive.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/drive_queue.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/gate_a.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/gates.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/issues.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/lifecycle.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/machine.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/merge.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/milestone.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/plan_followup.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/plans.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/portal.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/pr.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/release.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/repo.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/report.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/review.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/scorecard.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/sessions.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/setup.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/status.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/store_migrate.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/terminal.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/test_gate.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/commands/tui.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/comments.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/config.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/config_reload.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/confirm_test.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/conflict_fix.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/dao.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/dashboard/__init__.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/dashboard/fixture.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/dashboard/index.html +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/dashboard/server.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/dashboard/terminal.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/db.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/dead_end.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/decomposition_chat.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/deploy/README.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/deploy/coord-backup.service +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/deploy/coord-backup.timer +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/deploy/coord-dr-verify.service +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/deploy/coord-dr-verify.timer +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/deploy/coord-failure-notify.service +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/deploy/coord-fleet-watchdog.service +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/deploy/coord-fleet-watchdog.timer +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/deploy_manifest.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/deploy_units.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/deprecation_telemetry.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/deps.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/diagnose.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/dispatch.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/dispatch_liveness.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/dist_name.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/dr_promote.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/dr_verify.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/drive.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/drive_queue.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/drive_state.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/events.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/failure_class.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/failure_classifier.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/filelock.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/fleet_config_health.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/forge_availability.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/freshness.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/gate_a.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/gate_b.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/gate_snapshot.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/gates.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/gen_board_fixture.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/github_ops.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/github_throttle.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/goal.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/graph_health.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/__init__.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/aggregate.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/checks/__init__.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/checks/_ci_pin.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/checks/agent_install.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/checks/cargo_targets.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/checks/claude_binary.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/checks/config_drift.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/checks/coord_tui_ci_pin.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/checks/coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/checks/deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/checks/disk.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/checks/fleet_board.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/checks/fleet_deploy_lanes.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/checks/fleet_phantom.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/checks/fleet_unit_drift.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/checks/graph.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/checks/graphify_cli.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/checks/index_lock.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/checks/issues_sync_staleness.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/checks/plan_usage.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/checks/pr_churn.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/checks/release_cordon.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/checks/repo_state.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/checks/spawned_coord.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/checks/stalled_pipeline.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/checks/timer_active.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/checks/toolchain.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/checks/unit_drift.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/checks/unit_enablement.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/checks/wedged_drive_queue.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/checks/worktrees.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/cli.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/context.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/fleet_snapshot.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/models.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/pypi.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/registry.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/render.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/health/units.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/hooks.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/housekeeping.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/interactive.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/invariant_alarms.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/issue_store.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/issues_sync_status.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/liveness_auditor.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/machine_fault.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/machine_metrics.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/machine_onboard.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/machine_pause.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/machine_stats.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/merge_queue.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/milestone_chat.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/milestone_dispatch.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/milestone_gate.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/milestone_order.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/mock_author.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/models.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/network.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/new_issue_chat.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/notifier/__init__.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/notifier/baseline.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/notifier/cli.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/notifier/collect.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/notifier/digest.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/notifier/models.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/notifier/predicate.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/notifier/service.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/notifier/store.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/notifier/transport.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/openapi.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/overlap_fence.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/overlap_predict.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/parentage.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/parentage_github.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/pipeline.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/plan_parser.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/plans.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/platform_paths.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/portal_bridge.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/portal_store.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/portal_sync.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/pr_body_lint.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/prereqs.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/progress.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/providers/__init__.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/providers/base.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/providers/claude_pty.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/providers/opencode.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/queue_diagnose.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/reconcile.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/reconcile_tick.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/refine_chat.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/release_cordon.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/release_propagate.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/release_verify.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/release_window.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/repo_dormancy.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/repo_edit.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/repo_onboard.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/reports.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/rest_schema.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/restart_cmd.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/revalidate.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/review.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/scorecard.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/self_health.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/serve_app.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/skills/coord-dispatch-verbs/SKILL.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/skills/drive-queue-preflight/SKILL.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/skills/fleet-restart-safety/SKILL.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/skills/merge-stuck-triage/SKILL.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/skills/pipeline-limbo-triage/SKILL.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/skills/portal-followup/SKILL.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/skills/release-now/SKILL.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/skills/review-verdict-recovery/SKILL.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/skills/tui-quadraui-workflow/SKILL.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/skills/update-issue/SKILL.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/smoke.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/spend_ceiling.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/split_work.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/sql.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/stage_projection.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/state.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/store_migrate.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/store_parity.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/templates/deploy-cloudflare.node.yml +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/test_author.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/test_chat.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/test_orchestrator.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/test_report.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/tui_release.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/uat_checks.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/usage.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/usage_limits.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/usage_rollup.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coord/worker_events.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/coordinator.example.yml +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/deploy/coord-backup.service +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/deploy/coord-backup.timer +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/deploy/coord-dr-verify.service +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/deploy/coord-dr-verify.timer +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/deploy/coord-failure-notify.service +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/deploy/coord-failure-notify.sh +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/deploy/coord-fleet-watchdog.service +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/deploy/coord-fleet-watchdog.timer +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/deploy/coord-web-dist-build.sh +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/deploy/coord-web-rollback.sh +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/deploy/node-shim.sh +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/ADR_COORD_TUI_CI.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/ADR_COORD_WEB_ACCEPTANCE_SUITE.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/ADR_COORD_WEB_CI.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/ADR_COORD_WEB_DIST.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/ADR_PY_RUST_MIRRORS.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/AGENT_OPERATIONS.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/ARCH_SECURITY_GATES.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/COCKPIT.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/COST_DISCIPLINE.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/CROSS_PLATFORM.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/CUSTOMER_FACING_APPS.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/CUSTOMER_PORTAL.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/DATA_STORE_SELECTION.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/DISASTER_RECOVERY.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/DRIVE_QUEUE.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/EPHEMERAL_WORKERS.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/FORGE_MIGRATION.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/GRAPHIFY_SETUP.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/ISSUE_GUIDANCE.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/MAC_MINI.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/NOTIFIER.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/OPENCODE_VERIFICATION.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/OPERATING_GOTCHAS.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/ORACLE_LOOP.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/PHONE_WEBAPP.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/PIPELINE_V2.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/PLATFORM_EVOLUTION.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/SECOND_BACKEND.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/STORE_SERVICE.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/TEST_FIRST_BUG_LANE.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/WEB_CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/WSL_WINDOWS_WORKER.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/mocks/web/README.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/mocks/web/_tokens.css +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/mocks/web/issue-detail.html +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/mocks/web/pipeline-narrow.html +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/docs/mocks/web/pipeline-wide.html +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/graphify-out/.gitignore +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/install-agent.sh +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/pyproject.toml +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/audit_review_verdict_overrides.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/azure-workers/bootstrap-shared.sh +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/azure-workers/build-worker-image.sh +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/azure-workers/coordinator-machine.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/azure-workers/dr-down.sh +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/azure-workers/dr-up.sh +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/azure-workers/epic-down.sh +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/azure-workers/epic-up.sh +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/azure-workers/preflight.sh +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/azure-workers/provision-server.sh +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/azure-workers/provision-worker.sh +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/azure-workers/tailnet-acl.hujson +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/azure-workers/throwaway-vm.sh +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/azure-workers/verify-github-token.sh +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/check_gh_argv_containment.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/codegen.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/coord-test-runner.sh +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/coord-tui-scaffold/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/coord-tui-scaffold/.github/workflows/cargo-test.yml +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/coord-tui-scaffold/.github/workflows/codegen-drift.yml +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/coord-tui-scaffold/CLAUDE.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/coord-venv-rollback.sh +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/drive-batch.sh +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/extract-coord-tui.sh +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/fleet_watchdog.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/gen_board_fixture.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/gen_mock_index.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/lib/provision-core.sh +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/next_release_tag.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/provision-machine.sh +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/run_tests_in_populated_home.sh +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/run_tests_without_gh.sh +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/setup-macmini.sh +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/smoke_437_interactive.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/verify-provision-noble.sh +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/verify_878_review_capture.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/verify_release_published.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/scripts/verify_release_wheel.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/setup.cfg +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/SMOKE_SET.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/__init__.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/acceptance/ms-37/conftest.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/acceptance/ms-37/contract.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/acceptance/ms-37/manifest.yml +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/acceptance/ms-51/contract.md +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/acceptance/ms-51/manifest.yml +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/acceptance/ms-51/tsconfig.json +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/backends.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/conftest.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/fixtures/board-pipeline-basic.json +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/fixtures/opencode_run_sample.jsonl +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/fixtures/playwright/all_pass.json +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/fixtures/playwright/global_setup_crash.json +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/fixtures/playwright/mixed_fail.json +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/fixtures/playwright/retry_then_pass.json +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/fixtures/playwright/skip.json +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/fixtures/playwright/truncated.json +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_acceptance.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_acceptance_drivers.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_agent_api_error.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_agent_app.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_agent_branch_base.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_agent_branch_capture.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_agent_config_free_1712.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_agent_deploy_units_endpoint.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_agent_dirty_worktree.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_agent_drive_queue_reconcile_2373.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_agent_graph_self_heal.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_agent_health_h3.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_agent_idle_restart.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_agent_push_failure.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_agent_reap.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_agent_repos_and_pull.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_agent_restart_services_endpoint.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_agent_skills_self_heal.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_agent_startup_diagnostics.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_agent_update.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_agent_update_bluegreen.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_agent_usage_limit.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_agent_zero_commit.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_ambient_home_isolation.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_approve_capability_reroute_3241.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_approve_dependency_busy_2804.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_approve_reject_plan.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_approve_usage_gate.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_approved_work_2532.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_approved_work_2996.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_assignment_already_recorded_daemon.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_audit_log.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_audit_outcome.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_audit_query.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_auto_loop.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_auto_release_publish_2035.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_backend_selection.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_backup.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_base_checkout_restore.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_block_log.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_board_cap_762.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_board_fixture.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_board_read_path.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_board_schema.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_board_service.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_board_state.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_board_wire.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_brain.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_branch_model.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_bug_intake.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_build_worker_image_env_update.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cargo_cache.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_check_gh_argv_containment.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_ci_acceptance_gate_1950.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_ci_fix.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_ci_github.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_ci_gitlab.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_ci_parity_2091.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_ci_store.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_claim.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_claude_setup_token.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_acceptance.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_assign.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_assign_interactive_remote.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_assign_provider.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_assign_repo_drift_2219.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_audit.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_chat_continue.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_ci.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_codegen.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_decide.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_diagnose_capability_rules.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_diagnose_config_provenance.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_diagnose_forge_availability.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_diagnose_graph.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_diagnose_self.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_diagnose_test_coverage.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_doctor.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_doctor_config_free_1801.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_doctor_store_backend_3084.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_drive.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_drive_queue.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_escalate.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_fix_headless_review.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_gate_a.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_install_drift.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_install_skills.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_issue_comment.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_issue_create_label.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_issue_reopen.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_issue_view_list.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_merge.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_milestone_assign.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_milestone_capture.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_milestone_chat_add_child.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_milestone_gate_b.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_milestone_gate_c.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_milestone_order.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_milestone_ship.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_network.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_new_issue_chat.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_plans.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_portal.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_pr.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_pull_artifact.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_queue.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_reattach_sessions.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_refine_board.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_release_preflight.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_release_propagate.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_release_window.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_repo_2220.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_review_test_author_tracking_epic_2639.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_scorecard.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_serve_store_backend_3084.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_set_review_findings.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_status_advisory_terminal.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_status_contested_tag.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_status_invariant_alarms.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_status_machine_fault.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_status_merge_queue.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_status_provider.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_status_retried_3340.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_status_review_finalizing.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_status_supervisor_3366.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_status_test_failed_tag.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_status_usage_limit.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_sync_comments_873.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_test_plan.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_track.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_tui_update.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cli_wait.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_client.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_client_base_install.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_client_config_cache_atomic_3052.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_client_resource_migration_1946.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_commands_common.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_comments.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_completion_summary.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_config.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_config_acceptance.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_config_audit.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_config_drift_check.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_config_effective.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_config_pricing.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_config_usage_gate.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_confirm_test.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_conflict_fix.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_conflict_fix_semantic.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_coord_log_daemon_fallback_2547.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_coord_test.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_coord_test_runner_acceptance_toolchain_2936.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_coord_test_runner_baseline.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_coord_test_runner_populated_home.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_coord_test_runner_routing.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_coord_test_runner_toolchain.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_coord_uat.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_coord_web_sse_restart_live.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_coordinator_machine.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_cross_platform_imports.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_dao.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_dashboard.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_dashboard_api.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_dashboard_fixture.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_dashboard_server.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_dashboard_terminal.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_dashboard_terminal_live.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_db.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_dead_end.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_decomposition_chat.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_deploy_coord_db_backup.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_deploy_coord_web_dist.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_deploy_coord_web_rollback.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_deploy_db_backup_unit.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_deploy_drive_queue_unit.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_deploy_failure_notify_unit.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_deploy_manifest.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_deploy_notify_unit.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_deploy_units_lane.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_deploy_web_unit.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_deprecation_telemetry.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_deps.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_diagnose.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_dispatch.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_dispatch_liveness.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_dispatch_target_validation.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_dispatch_workers.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_dist_name.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_done_housekeeping.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_dr_azure_scripts.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_dr_promote.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_dr_verify.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_drive.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_drive_machine_fault.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_drive_queue.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_drive_queue_blocked_rendering.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_drive_queue_launch_argv.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_drive_queue_max_parallel_config.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_drive_queue_max_parallel_per_repo_config.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_drive_queue_roll_pending.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_drive_queue_self_cordon_escalation.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_drive_state.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_drive_tmux.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_epic_up_capability_detection.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_epic_up_image_provenance.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_errors.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_events.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_failure_class.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_failure_classifier.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_filelock.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_fix_escalation_classifier.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_fix_of_force_override.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_fleet_config_health.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_fleet_health_probes.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_fleet_health_snapshot.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_fleet_watchdog.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_forge_availability.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_freshness.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_gate_a.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_gate_b.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_gate_snapshot_staleness.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_gates.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_gather_fleet_tmux_sessions.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_gen_mock_index.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_generated_rust_fixture.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_generated_rust_requests.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_generated_types_fixture.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_github_ops.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_github_throttle.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_goal.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_graph_health.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_graph_selfheal_absent_2237.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_handoff.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_health_checks.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_health_cli.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_health_cli_graph.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_health_config.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_health_context.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_health_coord_tui_ci_pin.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_health_coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_health_deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_health_fix.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_health_incident_regression.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_health_issues_sync_staleness.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_health_pr_churn.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_health_pypi.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_health_registry.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_health_release_cordon_probe.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_health_timer_active.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_health_toolchain.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_health_unit_drift.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_health_unit_enablement.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_health_wedged_drive_queue.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_hooks.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_housekeeping.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_human_attended_437.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_init.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_install_agent_venv_2911.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_integration.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_interactive_briefing_echo.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_interactive_pane_log_2541.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_interactive_prefill_state.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_interactive_session_relaunch.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_interactive_test_verdict_backstop.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_interactive_token_attribution.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_interactive_worktree.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_invariant_alarms.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_issue_store_seam.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_issues_sync_status.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_liveness_auditor.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_liveness_notify.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_lock_contention_ratchet.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_machine_fault.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_machine_metrics.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_machine_onboard.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_machine_pause.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_machine_stats.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_merge_queue.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_merge_verify.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_milestone_chat.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_milestone_gate.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_milestone_order.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_milestone_seam.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_mock_author.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_model_tiering.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_models.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_models_config_labels.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_needs_attention.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_network.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_new_issue_chat.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_next_release_tag.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_node_shim.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_notifier_baseline.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_notifier_cli.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_notifier_collect.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_notifier_config.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_notifier_drive_seam.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_notifier_isolation.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_notifier_predicate.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_notifier_quiet_hours.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_notifier_service.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_notify_drain.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_openapi.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_operational_defaults.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_overlap_fence.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_overlap_predict.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_packaged_deploy_units.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_parentage.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_paste_landed.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_phantom_heal_venv_independence_2570.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_pipeline.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_plan_followup_approve_plan_command.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_plan_followup_pr_command.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_plan_followup_review_command.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_plan_only.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_plan_parser.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_platform_paths.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_portal_bridge.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_portal_config.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_portal_store.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_portal_sync.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_pr_body_lint.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_prereqs.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_production_db_guard.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_progress.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_provider_seam.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_providers_config_labels.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_providers_pty.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_provision_core.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_provision_machine.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_py_rust_mirror_inventory.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_quiet_hours.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_quiet_hours_store_2146.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_reap_merged_sessions.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_reap_stale_interactive_tick.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_reconcile.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_reconcile_branch.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_reconcile_completions.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_reconcile_late_agent_reports_2547.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_reconcile_merges.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_reconcile_no_agent_record.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_reconcile_tick.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_reconcile_usage_limit_done.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_refine_chat.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_release_cordon_2101.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_release_cordon_deadlock_2240.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_release_cordon_drain_stall_3336.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_release_cordon_stuck_2490.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_release_propagate.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_release_propagate_threshold.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_release_roll_between_legs_2854.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_release_roll_window_handoff.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_release_unified_1242.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_release_verify.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_release_window.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_remote_auto_prune.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_remote_interactive_reaper.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_repo_add.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_repo_dormancy.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_repo_edit_2220.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_repo_graph_fleet_2237.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_repo_onboard_2220.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_report_result_push.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_reports.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_restart_cmd.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_retry.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_retry_advisory_1606.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_retry_escalation_classify_3360.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_retry_type_1636.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_revalidate.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_review.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_review_end_review_without_verdict.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_review_parse_failure_diagnostic.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_review_reaffirm.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_review_state.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_review_verdict_backstop.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_review_verdict_override_audit.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_review_verdict_relay.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_review_zero_commits.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_scoped_review_wiring.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_scorecard.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_self_health.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_serve.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_serve_app.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_serve_app_board_trim.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_serve_rest_routes.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_session.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_slice_issue_attribution.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_smoke.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_smoke_fanout_manifest_3333.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_smoke_live_checkout_restore.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_smoke_workflow.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_spend_ceiling.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_spend_ceiling_coordinator.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_split.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_split_work.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_sql_dialect.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_sqlite_connect_ratchet.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_stage_projection.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_stale_busy_reviewer_697.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_stalled_pipeline.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_state.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_state_review_findings_daemon.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_status_fleet_footer.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_stop_1567.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_store_contract.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_store_migrate.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_stuck.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_stuck_test_state_watchdog_2803.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_terminal_command.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_test_author.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_test_chat.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_test_orchestrator.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_test_report.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_test_verdict_parsing.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_test_verdict_transcript_floor.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_text_io_encoding_audit.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_thin_client_board_audit.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_thin_client_config_load_1080.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_thin_client_daemon_routing_906.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_throwaway_vm.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_tmux_host.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_tmux_session.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_transcript_floor.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_uat_checks.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_usage.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_usage_limits.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_usage_rollup.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_venv_live_install_2121.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_version_single_source.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_watch.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_worker_env_venv_isolation.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_worker_events.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_worker_image_pin_sync.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_worker_safety.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_worker_test_scoping.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_worktree.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_worktree_rmtree_chokepoint.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/tests/test_write_parity.py +0 -0
- {code_coordinator-0.5.506 → code_coordinator-0.5.508}/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).
|
|
@@ -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
|
|
@@ -2477,6 +2477,114 @@ def _confirmed_pass_verdict(
|
|
|
2477
2477
|
)
|
|
2478
2478
|
|
|
2479
2479
|
|
|
2480
|
+
def _mechanical_mute_verdict(
|
|
2481
|
+
transition: Transition, entry: dict, parent_id: str,
|
|
2482
|
+
) -> tuple[str, str, str] | None:
|
|
2483
|
+
"""#3415: for a MUTE Test-stage leg (no `SMOKE:` marker at all, clean
|
|
2484
|
+
session exit), attempt the same out-of-band mechanical re-run #2464 uses
|
|
2485
|
+
to double-check a *claimed* pass — except here there is no claim to
|
|
2486
|
+
confirm, so a decisive result becomes the verdict directly.
|
|
2487
|
+
|
|
2488
|
+
Why this exists: sampling every #3376 "reached done with no verdict"
|
|
2489
|
+
alarm found the identical shape 7 times out of 7 — a headless Test-stage
|
|
2490
|
+
worker backgrounds a suite that exceeds the Bash ceiling, correctly
|
|
2491
|
+
states the rule ("I'll poll with bounded waits"), and then ends its turn
|
|
2492
|
+
anyway. That is not a coord bug to patch around with a sterner prompt;
|
|
2493
|
+
ending a one-shot `claude -p` turn ends the session permanently, so no
|
|
2494
|
+
notification the backgrounded suite eventually produces can ever reach
|
|
2495
|
+
it. The prompt already spends two capitalized bullets on this (#2272,
|
|
2496
|
+
#2301) and the observed compliance rate is 0/7 — more emphasis cannot
|
|
2497
|
+
raise a structural non-starter to a rate the Test gate can depend on.
|
|
2498
|
+
|
|
2499
|
+
`coord.confirm_test.confirm_branch` needs no LLM and no waiting: it
|
|
2500
|
+
re-runs the repo's own build/test command in a throwaway worktree and
|
|
2501
|
+
reads the real exit code. Reusing it here — instead of only as the
|
|
2502
|
+
pass-claim backstop — deletes the mute leg's reason to exist for every
|
|
2503
|
+
repo whose suite this machine can actually run, rather than bounding it
|
|
2504
|
+
with a bigger retry budget.
|
|
2505
|
+
|
|
2506
|
+
Returns ``None`` when the run is inconclusive or unavailable (disabled,
|
|
2507
|
+
no local checkout, no test_command, a timeout, ...) — the existing
|
|
2508
|
+
mute-leg tally (count the leg, clear for one retry, then park at the
|
|
2509
|
+
budget) is exactly the right fallback for "still no answer either way",
|
|
2510
|
+
and this never invents one it doesn't have.
|
|
2511
|
+
"""
|
|
2512
|
+
from coord.confirm_test import ( # noqa: PLC0415
|
|
2513
|
+
BASELINE_RED_REASON_PREFIX,
|
|
2514
|
+
TEST_CONFIRMATION_BASELINE_RED,
|
|
2515
|
+
TEST_CONFIRMATION_CONFIRMED,
|
|
2516
|
+
TEST_CONFIRMATION_REFUTED,
|
|
2517
|
+
write_confirmation_output,
|
|
2518
|
+
)
|
|
2519
|
+
from coord.state import load_assignment_review_verdict # noqa: PLC0415
|
|
2520
|
+
|
|
2521
|
+
result = _run_pass_confirmation(transition, entry)
|
|
2522
|
+
if result is None or result.inconclusive:
|
|
2523
|
+
return None # no decisive answer — fall back to the mute-leg tally
|
|
2524
|
+
|
|
2525
|
+
try:
|
|
2526
|
+
write_confirmation_output(parent_id, result)
|
|
2527
|
+
except Exception as exc: # noqa: BLE001
|
|
2528
|
+
log.warning(
|
|
2529
|
+
"smoke %s: could not persist mechanical confirmation output for "
|
|
2530
|
+
"parent %s (%s) — a later fix briefing will fall back to the "
|
|
2531
|
+
"one-line reason (#2563/#3415).",
|
|
2532
|
+
transition.assignment_id, parent_id, exc,
|
|
2533
|
+
)
|
|
2534
|
+
|
|
2535
|
+
if result.refuted:
|
|
2536
|
+
log.warning(
|
|
2537
|
+
"smoke %s: mute Test-stage leg for %s — the mechanical fallback "
|
|
2538
|
+
"re-run (#3415) says FAILED: %s\n%s",
|
|
2539
|
+
transition.assignment_id, transition.repo_name, result.reason,
|
|
2540
|
+
result.output,
|
|
2541
|
+
)
|
|
2542
|
+
# #2579: same race as `_confirmed_pass_verdict` — a review can
|
|
2543
|
+
# approve before this out-of-band run lands (review dispatch gates
|
|
2544
|
+
# on `test_state`, not on confirmation). Plain "failed" would then
|
|
2545
|
+
# be indistinguishable from an ordinary Test-stage failure and
|
|
2546
|
+
# silently bounce an already-approved branch to a fix worker.
|
|
2547
|
+
_review_state, _review_verdict = load_assignment_review_verdict(parent_id)
|
|
2548
|
+
if _review_verdict == "approve":
|
|
2549
|
+
return (
|
|
2550
|
+
TEST_STATE_CONTESTED,
|
|
2551
|
+
f"CONTESTED (#2579/#3415): the Test-stage worker "
|
|
2552
|
+
f"{transition.assignment_id} ended mute (no verdict marker "
|
|
2553
|
+
"line), and the mechanical fallback re-run REFUTED the "
|
|
2554
|
+
f"branch AFTER its review had already approved it "
|
|
2555
|
+
f"(review_state={_review_state!r}) — {result.reason}. The "
|
|
2556
|
+
"merge gate stays shut, but no fix round is auto-dispatched "
|
|
2557
|
+
f"— recover with `coord fix --force --guidance <what's "
|
|
2558
|
+
f"broken> {parent_id}` or re-dispatch the Test stage by "
|
|
2559
|
+
"hand.",
|
|
2560
|
+
TEST_CONFIRMATION_REFUTED,
|
|
2561
|
+
)
|
|
2562
|
+
return (
|
|
2563
|
+
"failed",
|
|
2564
|
+
"headless smoke ended mute (no verdict marker line) — the "
|
|
2565
|
+
f"mechanical fallback re-run (#3415) ran the real suite and it "
|
|
2566
|
+
f"FAILED: {result.reason}",
|
|
2567
|
+
TEST_CONFIRMATION_REFUTED,
|
|
2568
|
+
)
|
|
2569
|
+
|
|
2570
|
+
if result.baseline_red:
|
|
2571
|
+
return (
|
|
2572
|
+
"skipped",
|
|
2573
|
+
f"{BASELINE_RED_REASON_PREFIX}, found by the mechanical fallback "
|
|
2574
|
+
f"re-run after a mute Test-stage leg (#3415): {result.reason}",
|
|
2575
|
+
TEST_CONFIRMATION_BASELINE_RED,
|
|
2576
|
+
)
|
|
2577
|
+
|
|
2578
|
+
# result.confirmed
|
|
2579
|
+
return (
|
|
2580
|
+
"passed",
|
|
2581
|
+
"headless smoke ended mute (no verdict marker line), but the "
|
|
2582
|
+
f"mechanical fallback re-run (#3415) independently ran the real "
|
|
2583
|
+
f"suite and it passed: {result.reason}",
|
|
2584
|
+
TEST_CONFIRMATION_CONFIRMED,
|
|
2585
|
+
)
|
|
2586
|
+
|
|
2587
|
+
|
|
2480
2588
|
def _record_smoke_verdict(
|
|
2481
2589
|
transition: Transition, entry: dict, parent_id: str,
|
|
2482
2590
|
) -> None:
|
|
@@ -2658,6 +2766,29 @@ def _record_smoke_verdict(
|
|
|
2658
2766
|
|
|
2659
2767
|
# No verdict line, clean session exit. NOT a pass.
|
|
2660
2768
|
#
|
|
2769
|
+
# #3415: before treating this as "no answer, retry", ask the mechanical
|
|
2770
|
+
# fallback (`coord.confirm_test.confirm_branch`, no LLM, no waiting) for
|
|
2771
|
+
# a real one. 7/7 sampled mute legs backgrounded the suite, correctly
|
|
2772
|
+
# stated the polling rule, and ended their turn anyway — that is a
|
|
2773
|
+
# structural property of a one-shot session, not something a bigger
|
|
2774
|
+
# retry budget fixes. A decisive mechanical result is recorded straight
|
|
2775
|
+
# away, with no leg spent and no tally incremented.
|
|
2776
|
+
mechanical = _mechanical_mute_verdict(transition, entry, parent_id)
|
|
2777
|
+
if mechanical is not None:
|
|
2778
|
+
state, reason, confirmation = mechanical
|
|
2779
|
+
record_test_verdict(
|
|
2780
|
+
assignment_id=parent_id,
|
|
2781
|
+
test_state=state,
|
|
2782
|
+
test_reason=reason,
|
|
2783
|
+
test_confirmation=confirmation,
|
|
2784
|
+
)
|
|
2785
|
+
log.info(
|
|
2786
|
+
"smoke %s: mute Test-stage leg — the #3415 mechanical fallback "
|
|
2787
|
+
"reached a decisive verdict %r with no retry needed.",
|
|
2788
|
+
transition.assignment_id, state,
|
|
2789
|
+
)
|
|
2790
|
+
return
|
|
2791
|
+
|
|
2661
2792
|
# #2272: count the legs, don't just test for the marker's presence. The
|
|
2662
2793
|
# tally lives at the FRONT of `test_reason` so a bounded `/board` preview
|
|
2663
2794
|
# still carries it, and `dispatch_smoke` re-states it across the `running`
|
|
@@ -2,10 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
Parity requirement: ``ClaudeProvider().build_command(spec)`` produces the
|
|
4
4
|
**same argv** as ``coord.agent.default_worker_command(spec)`` for the same
|
|
5
|
-
inputs. The
|
|
6
|
-
|
|
7
|
-
``
|
|
8
|
-
``tests/test_providers.py`` enforce this
|
|
5
|
+
inputs. The ``spec.type`` → prompt/allowed-tools branches are a direct
|
|
6
|
+
transcription of that function's body with the ``resolved_model`` /
|
|
7
|
+
``system_prompt`` / ``allowed_tools`` / ``permission_mode`` kwargs spliced
|
|
8
|
+
in; the parity tests in ``tests/test_providers.py`` enforce this
|
|
9
|
+
mechanically. The ``--disallowedTools`` stack is **not** transcribed —
|
|
10
|
+
both builders call the shared ``coord.agent.worker_disallowed_tools``, so
|
|
11
|
+
a new deny layer lands in both without a sync step (#3420).
|
|
9
12
|
|
|
10
13
|
Imports from ``coord.agent`` are **deferred** (inside method bodies) to keep
|
|
11
14
|
the import cycle latent until the wiring issue lands. At that point
|
|
@@ -119,10 +122,9 @@ class ClaudeProvider(Provider):
|
|
|
119
122
|
TEST_CHAT_SYSTEM_PROMPT,
|
|
120
123
|
WORKER_PLAN_PROMPT,
|
|
121
124
|
WORKER_SYSTEM_PROMPT,
|
|
122
|
-
_base_checkout_write_guard_tools,
|
|
123
125
|
_claude_md_system_prompt_suffix,
|
|
124
|
-
_sealed_write_guard_tools,
|
|
125
126
|
build_deny_prompt,
|
|
127
|
+
worker_disallowed_tools,
|
|
126
128
|
)
|
|
127
129
|
from coord.review import REVIEWER_SYSTEM_PROMPT # noqa: PLC0415
|
|
128
130
|
from coord.smoke import SMOKE_SYSTEM_PROMPT # noqa: PLC0415
|
|
@@ -285,20 +287,16 @@ class ClaudeProvider(Provider):
|
|
|
285
287
|
]
|
|
286
288
|
if effective_model:
|
|
287
289
|
argv.extend(["--model", effective_model])
|
|
288
|
-
# #1315 / #1642
|
|
289
|
-
# default_worker_command
|
|
290
|
-
#
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
#
|
|
297
|
-
|
|
298
|
-
if spec.type == "review":
|
|
299
|
-
for pattern in REVIEW_DENY_COMMANDS:
|
|
300
|
-
if pattern not in disallowed_tools:
|
|
301
|
-
disallowed_tools.append(pattern)
|
|
290
|
+
# #3420 / #1315 / #1642 / #2461: NOT transcribed from
|
|
291
|
+
# default_worker_command like the branches above — both builders call
|
|
292
|
+
# the one shared `worker_disallowed_tools`, so a new deny layer lands
|
|
293
|
+
# in both by construction. It previously WAS transcribed here, and
|
|
294
|
+
# #3420's unusable-tool-schema layer went into default_worker_command
|
|
295
|
+
# only; the parity suite caught the drift, but the shared call means
|
|
296
|
+
# there is nothing left to keep in sync. Pass this method's own
|
|
297
|
+
# `allowed_tools` (possibly a caller override) so the two flags stay
|
|
298
|
+
# consistent.
|
|
299
|
+
disallowed_tools = worker_disallowed_tools(spec, allowed_tools)
|
|
302
300
|
if disallowed_tools:
|
|
303
301
|
argv.extend(["--disallowedTools", ",".join(disallowed_tools)])
|
|
304
302
|
if spec.resume_session_id:
|
|
@@ -250,6 +250,21 @@ which is why it lives here rather than in the file every worker leg loads. The o
|
|
|
250
250
|
statements of these rules remain in `CLAUDE.md`'s "Key Design Decisions"; the reasoning is
|
|
251
251
|
here.
|
|
252
252
|
|
|
253
|
+
### How the review prompt is assembled
|
|
254
|
+
|
|
255
|
+
The reviewer gets a prompt built from:
|
|
256
|
+
1. **Repo's CLAUDE.md** — the project rules (source of truth, not duplicated)
|
|
257
|
+
2. **Generic checklist** — "did you add tests?", "did you stay in file scope?", "any security issues?"
|
|
258
|
+
3. **Repo overrides** — project-specific patterns from `coordinator.yml` `reviews.repo_overrides`
|
|
259
|
+
4. **The diff** — `gh pr diff` of the worker's branch vs base
|
|
260
|
+
5. **The issue** — title and body for intent verification
|
|
261
|
+
|
|
262
|
+
The reviewer reads the rules and enforces them against the diff. It does not have the worker's session context — genuinely independent.
|
|
263
|
+
|
|
264
|
+
Moved here from [`CLAUDE.md`](../CLAUDE.md) (#3422). The reviewer does not need a description
|
|
265
|
+
of how its own prompt was built, and neither does a worker — this is for someone editing
|
|
266
|
+
`coord/review.py`.
|
|
267
|
+
|
|
253
268
|
### Agent servers are dumb dispatchers
|
|
254
269
|
|
|
255
270
|
They spawn `claude -p` and track the subprocess. All intelligence is in the coordinator
|
|
@@ -19,6 +19,29 @@ in `docs/`.*
|
|
|
19
19
|
still manual. Epic #3117.
|
|
20
20
|
- [`DRIVE_QUEUE.md`](DRIVE_QUEUE.md) — the durable, board-backed driver (`coord drive-queue`, #1750). **Read the top section before queuing more than ~2 issues on one repo.**
|
|
21
21
|
|
|
22
|
+
## The core loop
|
|
23
|
+
|
|
24
|
+
Moved here from [`CLAUDE.md`](../CLAUDE.md) (#3422): a worker cannot run any of these —
|
|
25
|
+
the coordinator owns dispatch and GitHub — so it was pure operator surface being re-read
|
|
26
|
+
on every turn of every leg. `coord <cmd> --help` remains the authoritative reference.
|
|
27
|
+
|
|
28
|
+
`coord <cmd> --help` documents every command + flags. The core loop:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
coord plan # Brain proposes assignments for idle machines
|
|
32
|
+
coord approve 1,3 # Dispatch approved proposals (comma-separated IDs)
|
|
33
|
+
coord assign <machine> <repo> <issue> [--briefing TEXT | --briefing-file F] [--dry-run] # Direct dispatch
|
|
34
|
+
coord status [--freshness] # Machines, assignments, connectivity (+ repo freshness vs GitHub HEADs)
|
|
35
|
+
coord log <id> [-f] [--machine NAME] # claude -p output (remote logs need --machine)
|
|
36
|
+
coord notify # Poll agents, post completion/failure comments to GitHub
|
|
37
|
+
coord test --passed|--fail|--skipped <id> # Record the Test-gate verdict (bare `coord test <id>` builds+tests locally)
|
|
38
|
+
coord merge [--dry-run] [--repo NAME] [--method rebase|squash|merge] [--order IDs] [--force-merge]
|
|
39
|
+
coord reconcile-merges # Backfill missing branches + record out-of-band merges (#609/#611)
|
|
40
|
+
coord retry|stop|resume <id> # Recovery; `coord done` ends the session
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
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`.
|
|
44
|
+
|
|
22
45
|
## Reference
|
|
23
46
|
|
|
24
47
|
- [`ARCHITECTURE.md`](ARCHITECTURE.md) — how it all fits together, plus the settled design rationale. Two diagnostic entry points: [why a merge/review isn't happening](ARCHITECTURE.md#when-a-merge-isnt-happening) (**check here first when "Go does nothing"**) and [why an issue is in the Pipeline you never dispatched](ARCHITECTURE.md#when-an-issue-is-sitting-in-the-pipeline-you-never-dispatched).
|