code-coordinator 0.5.495__tar.gz → 0.5.496__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.495 → code_coordinator-0.5.496}/PKG-INFO +1 -1
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/code_coordinator.egg-info/PKG-INFO +1 -1
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/code_coordinator.egg-info/SOURCES.txt +1 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/code_coordinator.egg-info/scm_file_list.json +1 -0
- code_coordinator-0.5.496/code_coordinator.egg-info/scm_version.json +8 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/drive_queue.py +90 -19
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/config.py +29 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496/coord}/deploy/coord-drive-queue.service +45 -33
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/drive_queue.py +58 -0
- {code_coordinator-0.5.495/coord → code_coordinator-0.5.496}/deploy/coord-drive-queue.service +45 -33
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_drive_queue.py +8 -1
- code_coordinator-0.5.496/tests/test_drive_queue_max_parallel_config.py +371 -0
- code_coordinator-0.5.495/code_coordinator.egg-info/scm_version.json +0 -8
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/.claude/commands/board.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/.claude/commands/complete-session.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/.claude/commands/coordinator.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/.githooks/_lib.sh +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/.githooks/post-checkout +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/.githooks/post-commit +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/.githooks/post-merge +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/.github/workflows/auto-release.yml +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/.github/workflows/publish.yml +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/.github/workflows/test.yml +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/.gitignore +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/CLAUDE.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/GOAL.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/LICENSE +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/MANIFEST.in +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/README.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/code_coordinator.egg-info/dependency_links.txt +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/code_coordinator.egg-info/entry_points.txt +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/code_coordinator.egg-info/requires.txt +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/code_coordinator.egg-info/top_level.txt +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/__init__.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/_board_mapping.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/acceptance.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/acceptance_drivers.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/agent.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/agent_app.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/agent_update.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/agents/opencode/.gitignore +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/agents/opencode/agents/work.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/agents/opencode/routing.jsonc +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/approved_work.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/audit.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/auto_loop.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/backup.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/block_log.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/board_schema.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/board_service.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/board_wire.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/brain.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/branch_model.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/bug_intake.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/cargo_cache.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/ci_fix.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/ci_github.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/ci_gitlab.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/ci_store.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/claim.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/claude_setup_token.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/cli.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/client.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/codegen.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/__init__.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/_common.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/acceptance.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/agent_ops.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/audit.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/backup.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/chat.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/codegen.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/dispatch.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/dispatch_workers.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/dr.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/drive.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/gate_a.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/gates.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/issues.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/lifecycle.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/machine.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/merge.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/milestone.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/plan_followup.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/plans.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/portal.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/pr.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/release.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/repo.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/report.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/review.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/scorecard.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/sessions.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/setup.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/status.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/store_migrate.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/terminal.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/test_gate.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/commands/tui.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/comments.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/config_reload.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/confirm_test.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/conflict_fix.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/dao.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/dashboard/__init__.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/dashboard/fixture.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/dashboard/index.html +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/dashboard/server.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/dashboard/terminal.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/db.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/dead_end.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/decomposition_chat.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/deploy/README.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/deploy/coord-backup.service +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/deploy/coord-backup.timer +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/deploy/coord-dr-verify.service +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/deploy/coord-dr-verify.timer +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/deploy/coord-failure-notify.service +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/deploy/coord-fleet-watchdog.service +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/deploy/coord-fleet-watchdog.timer +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/deploy_manifest.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/deploy_units.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/deprecation_telemetry.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/deps.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/diagnose.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/dispatch.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/dispatch_liveness.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/dist_name.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/dr_promote.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/dr_verify.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/drive.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/drive_state.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/events.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/failure_class.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/failure_classifier.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/filelock.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/fleet_config_health.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/forge_availability.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/freshness.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/gate_a.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/gate_b.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/gate_snapshot.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/gates.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/gen_board_fixture.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/github_ops.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/github_throttle.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/goal.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/graph_health.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/__init__.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/aggregate.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/checks/__init__.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/checks/_ci_pin.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/checks/agent_install.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/checks/cargo_targets.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/checks/claude_binary.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/checks/config_drift.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/checks/coord_tui_ci_pin.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/checks/coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/checks/deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/checks/disk.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/checks/fleet_board.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/checks/fleet_deploy_lanes.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/checks/fleet_phantom.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/checks/fleet_unit_drift.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/checks/graph.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/checks/graphify_cli.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/checks/index_lock.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/checks/issues_sync_staleness.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/checks/plan_usage.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/checks/pr_churn.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/checks/release_cordon.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/checks/repo_state.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/checks/spawned_coord.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/checks/stalled_pipeline.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/checks/timer_active.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/checks/toolchain.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/checks/unit_drift.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/checks/unit_enablement.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/checks/wedged_drive_queue.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/checks/worktrees.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/cli.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/context.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/fleet_snapshot.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/models.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/pypi.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/registry.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/render.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/health/units.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/hooks.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/housekeeping.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/interactive.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/invariant_alarms.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/issue_store.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/issues_sync_status.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/liveness_auditor.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/machine_fault.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/machine_metrics.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/machine_onboard.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/machine_pause.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/machine_stats.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/merge_queue.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/milestone_chat.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/milestone_dispatch.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/milestone_gate.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/milestone_order.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/mock_author.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/models.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/network.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/new_issue_chat.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/notifier/__init__.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/notifier/baseline.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/notifier/cli.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/notifier/collect.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/notifier/digest.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/notifier/models.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/notifier/predicate.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/notifier/service.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/notifier/store.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/notifier/transport.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/notify.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/openapi.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/overlap_fence.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/overlap_predict.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/parentage.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/parentage_github.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/pipeline.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/plan_parser.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/plans.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/platform_paths.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/portal_bridge.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/portal_store.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/portal_sync.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/pr_body_lint.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/prereqs.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/progress.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/providers/__init__.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/providers/base.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/providers/claude.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/providers/claude_pty.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/providers/opencode.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/queue_diagnose.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/reconcile.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/reconcile_tick.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/refine_chat.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/release_cordon.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/release_propagate.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/release_verify.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/release_window.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/repo_dormancy.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/repo_edit.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/repo_onboard.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/reports.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/rest_schema.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/revalidate.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/review.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/scorecard.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/self_health.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/serve_app.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/skills/coord-dispatch-verbs/SKILL.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/skills/drive-queue-preflight/SKILL.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/skills/fleet-restart-safety/SKILL.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/skills/merge-stuck-triage/SKILL.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/skills/pipeline-limbo-triage/SKILL.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/skills/portal-followup/SKILL.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/skills/release-now/SKILL.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/skills/review-verdict-recovery/SKILL.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/skills/tui-quadraui-workflow/SKILL.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/skills/update-issue/SKILL.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/smoke.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/spend_ceiling.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/split_work.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/sql.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/stage_projection.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/state.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/store_migrate.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/store_parity.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/templates/deploy-cloudflare.node.yml +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/test_author.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/test_chat.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/test_orchestrator.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/test_report.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/tui_release.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/uat_checks.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/usage.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/usage_limits.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/usage_rollup.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coord/worker_events.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/coordinator.example.yml +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/deploy/coord-backup.service +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/deploy/coord-backup.timer +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/deploy/coord-dr-verify.service +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/deploy/coord-dr-verify.timer +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/deploy/coord-failure-notify.service +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/deploy/coord-failure-notify.sh +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/deploy/coord-fleet-watchdog.service +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/deploy/coord-fleet-watchdog.timer +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/deploy/coord-web-dist-build.sh +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/deploy/coord-web-rollback.sh +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/deploy/node-shim.sh +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/ADR_COORD_TUI_CI.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/ADR_COORD_WEB_ACCEPTANCE_SUITE.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/ADR_COORD_WEB_CI.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/ADR_COORD_WEB_DIST.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/ADR_PY_RUST_MIRRORS.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/AGENT_OPERATIONS.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/ARCHITECTURE.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/ARCH_SECURITY_GATES.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/COCKPIT.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/COST_DISCIPLINE.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/CROSS_PLATFORM.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/CUSTOMER_FACING_APPS.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/CUSTOMER_PORTAL.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/DATA_STORE_SELECTION.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/DISASTER_RECOVERY.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/DRIVE_QUEUE.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/EPHEMERAL_WORKERS.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/FORGE_MIGRATION.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/GRAPHIFY_SETUP.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/ISSUE_GUIDANCE.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/MAC_MINI.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/NOTIFIER.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/OPENCODE_VERIFICATION.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/OPERATING_GOTCHAS.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/OPERATOR_GUIDES.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/ORACLE_LOOP.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/PHONE_WEBAPP.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/PIPELINE_V2.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/PLATFORM_EVOLUTION.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/SECOND_BACKEND.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/STORE_SERVICE.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/TEST_FIRST_BUG_LANE.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/WEB_CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/WSL_WINDOWS_WORKER.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/mocks/web/README.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/mocks/web/_tokens.css +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/mocks/web/issue-detail.html +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/mocks/web/pipeline-narrow.html +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/docs/mocks/web/pipeline-wide.html +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/graphify-out/.gitignore +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/install-agent.sh +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/pyproject.toml +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/audit_review_verdict_overrides.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/azure-workers/bootstrap-shared.sh +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/azure-workers/build-worker-image.sh +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/azure-workers/coordinator-machine.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/azure-workers/dr-down.sh +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/azure-workers/dr-up.sh +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/azure-workers/epic-down.sh +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/azure-workers/epic-up.sh +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/azure-workers/preflight.sh +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/azure-workers/provision-server.sh +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/azure-workers/provision-worker.sh +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/azure-workers/tailnet-acl.hujson +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/azure-workers/throwaway-vm.sh +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/azure-workers/verify-github-token.sh +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/check_gh_argv_containment.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/codegen.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/coord-test-runner.sh +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/coord-tui-scaffold/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/coord-tui-scaffold/.github/workflows/cargo-test.yml +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/coord-tui-scaffold/.github/workflows/codegen-drift.yml +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/coord-tui-scaffold/CLAUDE.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/coord-venv-rollback.sh +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/drive-batch.sh +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/extract-coord-tui.sh +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/fleet_watchdog.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/gen_board_fixture.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/gen_mock_index.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/lib/provision-core.sh +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/next_release_tag.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/provision-machine.sh +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/run_tests_in_populated_home.sh +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/run_tests_without_gh.sh +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/setup-macmini.sh +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/smoke_437_interactive.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/verify-provision-noble.sh +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/verify_878_review_capture.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/verify_release_published.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/scripts/verify_release_wheel.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/setup.cfg +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/SMOKE_SET.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/__init__.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/acceptance/ms-37/conftest.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/acceptance/ms-37/contract.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/acceptance/ms-37/manifest.yml +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/acceptance/ms-51/contract.md +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/acceptance/ms-51/manifest.yml +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/acceptance/ms-51/tsconfig.json +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/backends.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/conftest.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/fixtures/board-pipeline-basic.json +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/fixtures/opencode_run_sample.jsonl +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/fixtures/playwright/all_pass.json +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/fixtures/playwright/global_setup_crash.json +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/fixtures/playwright/mixed_fail.json +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/fixtures/playwright/retry_then_pass.json +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/fixtures/playwright/skip.json +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/fixtures/playwright/truncated.json +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_acceptance.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_acceptance_drivers.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_agent.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_agent_api_error.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_agent_app.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_agent_branch_base.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_agent_branch_capture.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_agent_config_free_1712.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_agent_deploy_units_endpoint.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_agent_dirty_worktree.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_agent_drive_queue_reconcile_2373.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_agent_graph_self_heal.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_agent_health_h3.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_agent_idle_restart.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_agent_push_failure.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_agent_reap.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_agent_repos_and_pull.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_agent_restart_services_endpoint.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_agent_skills_self_heal.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_agent_startup_diagnostics.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_agent_update.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_agent_update_bluegreen.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_agent_usage_limit.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_agent_zero_commit.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_ambient_home_isolation.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_approve_capability_reroute_3241.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_approve_dependency_busy_2804.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_approve_reject_plan.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_approve_usage_gate.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_approved_work_2532.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_approved_work_2996.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_assignment_already_recorded_daemon.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_audit_log.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_audit_outcome.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_audit_query.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_auto_loop.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_auto_release_publish_2035.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_backend_selection.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_backup.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_base_checkout_restore.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_block_log.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_board_cap_762.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_board_fixture.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_board_read_path.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_board_schema.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_board_service.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_board_state.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_board_wire.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_brain.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_branch_model.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_bug_intake.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_build_worker_image_env_update.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cargo_cache.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_check_gh_argv_containment.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_ci_acceptance_gate_1950.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_ci_fix.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_ci_github.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_ci_gitlab.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_ci_parity_2091.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_ci_store.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_claim.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_claude_md_budget.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_claude_setup_token.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_acceptance.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_assign.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_assign_interactive_remote.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_assign_provider.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_assign_repo_drift_2219.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_audit.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_chat_continue.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_codegen.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_decide.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_diagnose_capability_rules.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_diagnose_config_provenance.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_diagnose_forge_availability.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_diagnose_graph.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_diagnose_self.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_diagnose_test_coverage.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_doctor.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_doctor_config_free_1801.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_doctor_store_backend_3084.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_drive.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_escalate.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_fix_headless_review.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_gate_a.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_install_drift.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_install_skills.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_issue_comment.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_issue_create_label.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_issue_reopen.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_issue_view_list.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_merge.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_milestone_assign.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_milestone_capture.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_milestone_chat_add_child.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_milestone_gate_b.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_milestone_gate_c.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_milestone_order.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_milestone_ship.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_network.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_new_issue_chat.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_plans.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_portal.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_pr.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_pull_artifact.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_queue.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_reattach_sessions.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_refine_board.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_release_preflight.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_release_propagate.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_release_window.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_repo_2220.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_review_test_author_tracking_epic_2639.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_scorecard.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_serve_store_backend_3084.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_set_review_findings.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_status_advisory_terminal.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_status_contested_tag.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_status_invariant_alarms.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_status_machine_fault.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_status_merge_queue.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_status_provider.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_status_retried_3340.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_status_review_finalizing.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_status_test_failed_tag.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_status_usage_limit.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_sync_comments_873.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_test_plan.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_track.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_tui_update.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cli_wait.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_client.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_client_base_install.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_client_config_cache_atomic_3052.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_client_resource_migration_1946.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_commands_common.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_comments.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_completion_summary.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_config.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_config_acceptance.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_config_audit.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_config_drift_check.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_config_pricing.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_config_usage_gate.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_confirm_test.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_conflict_fix.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_conflict_fix_semantic.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_coord_log_daemon_fallback_2547.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_coord_test.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_coord_test_runner_acceptance_toolchain_2936.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_coord_test_runner_baseline.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_coord_test_runner_populated_home.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_coord_test_runner_routing.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_coord_test_runner_toolchain.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_coord_uat.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_coord_web_sse_restart_live.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_coordinator_machine.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_cross_platform_imports.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_dao.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_dashboard.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_dashboard_api.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_dashboard_fixture.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_dashboard_server.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_dashboard_terminal.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_dashboard_terminal_live.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_db.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_dead_end.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_decomposition_chat.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_deploy_coord_db_backup.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_deploy_coord_web_dist.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_deploy_coord_web_rollback.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_deploy_db_backup_unit.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_deploy_drive_queue_unit.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_deploy_failure_notify_unit.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_deploy_manifest.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_deploy_notify_unit.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_deploy_units_lane.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_deploy_web_unit.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_deprecation_telemetry.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_deps.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_diagnose.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_dispatch.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_dispatch_liveness.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_dispatch_target_validation.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_dispatch_workers.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_dist_name.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_done_housekeeping.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_dr_azure_scripts.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_dr_promote.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_dr_verify.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_drive.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_drive_machine_fault.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_drive_queue.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_drive_queue_blocked_rendering.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_drive_queue_launch_argv.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_drive_queue_max_parallel_per_repo_config.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_drive_queue_roll_pending.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_drive_queue_self_cordon_escalation.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_drive_state.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_drive_tmux.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_epic_up_capability_detection.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_epic_up_image_provenance.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_errors.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_events.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_failure_class.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_failure_classifier.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_filelock.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_fix_escalation_classifier.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_fix_of_force_override.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_fleet_config_health.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_fleet_health_probes.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_fleet_health_snapshot.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_fleet_watchdog.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_forge_availability.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_freshness.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_gate_a.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_gate_b.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_gate_snapshot_staleness.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_gates.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_gather_fleet_tmux_sessions.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_gen_mock_index.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_generated_rust_fixture.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_generated_rust_requests.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_generated_types_fixture.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_github_ops.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_github_throttle.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_goal.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_graph_health.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_graph_selfheal_absent_2237.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_handoff.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_health_checks.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_health_cli.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_health_cli_graph.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_health_config.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_health_context.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_health_coord_tui_ci_pin.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_health_coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_health_deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_health_fix.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_health_incident_regression.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_health_issues_sync_staleness.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_health_pr_churn.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_health_pypi.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_health_registry.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_health_release_cordon_probe.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_health_timer_active.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_health_toolchain.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_health_unit_drift.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_health_unit_enablement.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_health_wedged_drive_queue.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_hooks.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_housekeeping.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_human_attended_437.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_init.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_install_agent_venv_2911.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_integration.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_interactive_briefing_echo.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_interactive_pane_log_2541.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_interactive_prefill_state.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_interactive_session_relaunch.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_interactive_test_verdict_backstop.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_interactive_token_attribution.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_interactive_worktree.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_invariant_alarms.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_issue_store_seam.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_issues_sync_status.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_liveness_auditor.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_liveness_notify.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_lock_contention_ratchet.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_machine_fault.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_machine_metrics.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_machine_onboard.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_machine_pause.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_machine_stats.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_merge_queue.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_merge_verify.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_milestone_chat.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_milestone_gate.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_milestone_order.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_milestone_seam.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_mock_author.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_model_tiering.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_models.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_models_config_labels.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_needs_attention.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_network.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_new_issue_chat.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_next_release_tag.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_node_shim.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_notifier_baseline.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_notifier_cli.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_notifier_collect.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_notifier_config.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_notifier_drive_seam.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_notifier_isolation.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_notifier_predicate.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_notifier_quiet_hours.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_notifier_service.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_notify.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_notify_drain.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_openapi.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_operational_defaults.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_overlap_fence.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_overlap_predict.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_packaged_deploy_units.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_parentage.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_paste_landed.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_phantom_heal_venv_independence_2570.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_pipeline.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_plan_followup_approve_plan_command.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_plan_followup_pr_command.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_plan_followup_review_command.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_plan_only.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_plan_parser.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_platform_paths.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_portal_bridge.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_portal_config.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_portal_store.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_portal_sync.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_pr_body_lint.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_prereqs.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_production_db_guard.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_progress.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_provider_seam.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_providers.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_providers_config_labels.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_providers_pty.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_provision_core.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_provision_machine.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_py_rust_mirror_inventory.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_quiet_hours.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_quiet_hours_store_2146.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_reap_merged_sessions.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_reap_stale_interactive_tick.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_reconcile.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_reconcile_branch.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_reconcile_completions.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_reconcile_late_agent_reports_2547.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_reconcile_merges.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_reconcile_no_agent_record.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_reconcile_tick.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_reconcile_usage_limit_done.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_refine_chat.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_release_cordon_2101.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_release_cordon_deadlock_2240.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_release_cordon_drain_stall_3336.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_release_cordon_stuck_2490.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_release_propagate.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_release_propagate_threshold.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_release_roll_between_legs_2854.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_release_roll_window_handoff.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_release_unified_1242.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_release_verify.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_release_window.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_remote_auto_prune.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_remote_interactive_reaper.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_repo_add.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_repo_dormancy.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_repo_edit_2220.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_repo_graph_fleet_2237.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_repo_onboard_2220.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_report_result_push.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_reports.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_retry.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_retry_advisory_1606.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_retry_escalation_classify_3360.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_retry_type_1636.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_revalidate.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_review.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_review_end_review_without_verdict.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_review_parse_failure_diagnostic.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_review_reaffirm.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_review_state.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_review_verdict_backstop.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_review_verdict_override_audit.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_review_verdict_relay.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_review_zero_commits.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_scoped_review_wiring.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_scorecard.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_self_health.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_serve.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_serve_app.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_serve_app_board_trim.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_serve_rest_routes.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_session.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_slice_issue_attribution.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_smoke.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_smoke_fanout_manifest_3333.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_smoke_live_checkout_restore.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_smoke_workflow.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_spend_ceiling.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_spend_ceiling_coordinator.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_split.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_split_work.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_sql_dialect.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_sqlite_connect_ratchet.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_stage_projection.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_stale_busy_reviewer_697.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_stalled_pipeline.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_state.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_state_review_findings_daemon.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_status_fleet_footer.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_stop_1567.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_store_contract.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_store_migrate.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_stuck.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_stuck_test_state_watchdog_2803.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_terminal_command.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_test_author.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_test_chat.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_test_orchestrator.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_test_report.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_test_verdict_parsing.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_test_verdict_transcript_floor.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_text_io_encoding_audit.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_thin_client_board_audit.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_thin_client_config_load_1080.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_thin_client_daemon_routing_906.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_throwaway_vm.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_tmux_host.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_tmux_session.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_transcript_floor.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_uat_checks.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_usage.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_usage_limits.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_usage_rollup.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_venv_live_install_2121.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_version_single_source.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_watch.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_worker_env_venv_isolation.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_worker_events.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_worker_image_pin_sync.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_worker_safety.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_worker_test_scoping.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_worktree.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_worktree_rmtree_chokepoint.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/test_write_parity.py +0 -0
- {code_coordinator-0.5.495 → code_coordinator-0.5.496}/tests/write_parity.py +0 -0
|
@@ -613,6 +613,7 @@ tests/test_drive_machine_fault.py
|
|
|
613
613
|
tests/test_drive_queue.py
|
|
614
614
|
tests/test_drive_queue_blocked_rendering.py
|
|
615
615
|
tests/test_drive_queue_launch_argv.py
|
|
616
|
+
tests/test_drive_queue_max_parallel_config.py
|
|
616
617
|
tests/test_drive_queue_max_parallel_per_repo_config.py
|
|
617
618
|
tests/test_drive_queue_roll_pending.py
|
|
618
619
|
tests/test_drive_queue_self_cordon_escalation.py
|
{code_coordinator-0.5.495 → code_coordinator-0.5.496}/code_coordinator.egg-info/scm_file_list.json
RENAMED
|
@@ -639,6 +639,7 @@
|
|
|
639
639
|
"tests/test_drive_queue.py",
|
|
640
640
|
"tests/test_drive_queue_blocked_rendering.py",
|
|
641
641
|
"tests/test_drive_queue_launch_argv.py",
|
|
642
|
+
"tests/test_drive_queue_max_parallel_config.py",
|
|
642
643
|
"tests/test_drive_queue_max_parallel_per_repo_config.py",
|
|
643
644
|
"tests/test_drive_queue_roll_pending.py",
|
|
644
645
|
"tests/test_drive_queue_self_cordon_escalation.py",
|
|
@@ -46,6 +46,7 @@ from coord.drive_queue import (
|
|
|
46
46
|
APPLY_APPLIED,
|
|
47
47
|
APPLY_FAILED,
|
|
48
48
|
DEFAULT_MAX_ATTEMPTS,
|
|
49
|
+
DEFAULT_MAX_PARALLEL,
|
|
49
50
|
DEFAULT_MAX_PARALLEL_PER_REPO,
|
|
50
51
|
HOLD_FIRED,
|
|
51
52
|
HOLD_RELEASED,
|
|
@@ -77,6 +78,7 @@ from coord.drive_queue import (
|
|
|
77
78
|
add_preflight_notice,
|
|
78
79
|
apply_gate_status,
|
|
79
80
|
build_board_view,
|
|
81
|
+
default_max_parallel,
|
|
80
82
|
detect_unreachable_waits,
|
|
81
83
|
diagnose_blocked_after,
|
|
82
84
|
effective_max_fix_rounds,
|
|
@@ -5248,12 +5250,25 @@ def _blocked_escalation_command(entry: QueueEntry | None, key: str, reason: str)
|
|
|
5248
5250
|
@click.option(
|
|
5249
5251
|
"--max-parallel",
|
|
5250
5252
|
type=int,
|
|
5251
|
-
default=
|
|
5252
|
-
show_default=True,
|
|
5253
|
+
default=None,
|
|
5253
5254
|
help=(
|
|
5254
|
-
"
|
|
5255
|
-
"session count, so a drive whose observer hit its
|
|
5256
|
-
"still occupies a slot."
|
|
5255
|
+
"Global concurrency ceiling. Capacity is counted from BOARD state, "
|
|
5256
|
+
"not from a session count, so a drive whose observer hit its "
|
|
5257
|
+
"deadline (#1660) still occupies a slot. Omit this flag to use "
|
|
5258
|
+
"pipeline.max_parallel from coordinator.yml (or, absent that, a "
|
|
5259
|
+
"derivation from the fleet's own shape — repo count times the "
|
|
5260
|
+
"resolved --max-parallel-per-repo, clamped to "
|
|
5261
|
+
"concurrency.max_workers, see coord.drive_queue."
|
|
5262
|
+
"default_max_parallel; falling back further, if the config itself "
|
|
5263
|
+
f"can't be read, to {DEFAULT_MAX_PARALLEL}, #3388) — passing it "
|
|
5264
|
+
"explicitly always wins over both. #3388: a hardcoded constant here "
|
|
5265
|
+
"(coord-drive-queue.service used to pin --max-parallel 4) silently "
|
|
5266
|
+
"starves every repo but the first couple once "
|
|
5267
|
+
"--max-parallel-per-repo can exceed 1 — prefer the config setting "
|
|
5268
|
+
"over a systemd drop-in for the same reason #2573 gives for "
|
|
5269
|
+
"--max-parallel-per-repo: a drop-in has to restate the packaged "
|
|
5270
|
+
"unit's whole ExecStart= to change just this flag, and that copy "
|
|
5271
|
+
"silently drifts from the packaged unit's other flags over time."
|
|
5257
5272
|
),
|
|
5258
5273
|
)
|
|
5259
5274
|
@click.option(
|
|
@@ -5301,7 +5316,7 @@ def _blocked_escalation_command(entry: QueueEntry | None, key: str, reason: str)
|
|
|
5301
5316
|
)
|
|
5302
5317
|
@_CONFIG_OPTION
|
|
5303
5318
|
def drive_queue_tick(
|
|
5304
|
-
max_parallel: int,
|
|
5319
|
+
max_parallel: int | None,
|
|
5305
5320
|
max_parallel_per_repo: int | None,
|
|
5306
5321
|
dry_run: bool,
|
|
5307
5322
|
reconcile_only: bool,
|
|
@@ -5338,6 +5353,20 @@ def drive_queue_tick(
|
|
|
5338
5353
|
reverted #2314's pinned-venv `ExecStart=` right back to a
|
|
5339
5354
|
worker-overwritable path as an unnoticed side effect).
|
|
5340
5355
|
|
|
5356
|
+
#3388: `--max-parallel` resolves the SAME way, one level up — the flag on
|
|
5357
|
+
THIS invocation, when given; else `pipeline.max_parallel` from
|
|
5358
|
+
`coordinator.yml`; else `coord.drive_queue.default_max_parallel`'s
|
|
5359
|
+
derivation from the fleet's own shape (repo count times the
|
|
5360
|
+
ALREADY-RESOLVED `--max-parallel-per-repo` above, clamped to
|
|
5361
|
+
`concurrency.max_workers`); else, only if the config itself could not be
|
|
5362
|
+
read at all, `coord.drive_queue.DEFAULT_MAX_PARALLEL` (1). A hardcoded
|
|
5363
|
+
`--max-parallel` on the deployed systemd unit is exactly the failure mode
|
|
5364
|
+
this closes: #2012 set it to the repo count when `--max-parallel-per-repo`
|
|
5365
|
+
always defaulted to 1, #2057 raised it once by hand for a fifth repo, and
|
|
5366
|
+
neither update survived #2573 letting the per-repo ceiling exceed 1 — two
|
|
5367
|
+
repos alone then reach a stale global ceiling and starve every other repo
|
|
5368
|
+
in the fleet, forever, however deep their own queues are.
|
|
5369
|
+
|
|
5341
5370
|
`--max-parallel 0` (or `--reconcile-only`, the readable spelling of the
|
|
5342
5371
|
same thing — #2110) reconciles every `running` entry against the board and
|
|
5343
5372
|
then stops: no capacity walk, no deferrals, no queue-level alert, no
|
|
@@ -5369,24 +5398,37 @@ def drive_queue_tick(
|
|
|
5369
5398
|
from coord.filelock import FileLock, LockBusy, drive_queue_lock_path # noqa: PLC0415
|
|
5370
5399
|
from coord.state import list_drive_queue, update_drive_queue_entry # noqa: PLC0415
|
|
5371
5400
|
|
|
5372
|
-
|
|
5373
|
-
|
|
5374
|
-
|
|
5375
|
-
|
|
5376
|
-
|
|
5401
|
+
# Loaded at most once, shared by both ceilings' config-default resolution
|
|
5402
|
+
# below (#3388's `max_parallel` derivation needs the same config
|
|
5403
|
+
# `max_parallel_per_repo` already reads, plus `repos`/`concurrency`) —
|
|
5404
|
+
# `None` on the documented fail-open path, same posture as every other
|
|
5405
|
+
# best-effort config read on this path (an unreadable config must never
|
|
5406
|
+
# abort the tick).
|
|
5407
|
+
_resolved_config: Config | None = None
|
|
5408
|
+
_config_load_attempted = False
|
|
5409
|
+
|
|
5410
|
+
def _config_for_defaults() -> Config | None:
|
|
5411
|
+
nonlocal _resolved_config, _config_load_attempted
|
|
5412
|
+
if not _config_load_attempted:
|
|
5413
|
+
_config_load_attempted = True
|
|
5414
|
+
try:
|
|
5415
|
+
from coord.commands._common import _load_config # noqa: PLC0415
|
|
5416
|
+
|
|
5417
|
+
_resolved_config = _load_config(config_path)
|
|
5418
|
+
except Exception: # noqa: BLE001 — an unreadable config must not abort the tick
|
|
5419
|
+
_resolved_config = None
|
|
5420
|
+
return _resolved_config
|
|
5377
5421
|
|
|
5378
5422
|
# #2573: an explicit `--max-parallel-per-repo` always wins; otherwise
|
|
5379
5423
|
# fall back to the fleet-wide `pipeline.max_parallel_per_repo` in
|
|
5380
5424
|
# coordinator.yml, and only then to the hardcoded default. Resolved
|
|
5381
|
-
# BEFORE
|
|
5382
|
-
#
|
|
5425
|
+
# BEFORE `--max-parallel` (#3388's derivation multiplies BY this
|
|
5426
|
+
# already-resolved value) and before validation below, so a bad value
|
|
5427
|
+
# from either source is caught the same way regardless of which one
|
|
5428
|
+
# supplied it.
|
|
5383
5429
|
if max_parallel_per_repo is None:
|
|
5384
|
-
|
|
5385
|
-
|
|
5386
|
-
|
|
5387
|
-
config_default = _load_config(config_path).pipeline.max_parallel_per_repo
|
|
5388
|
-
except Exception: # noqa: BLE001 — an unreadable config must not abort the tick
|
|
5389
|
-
config_default = None
|
|
5430
|
+
_cfg = _config_for_defaults()
|
|
5431
|
+
config_default = None if _cfg is None else _cfg.pipeline.max_parallel_per_repo
|
|
5390
5432
|
max_parallel_per_repo = (
|
|
5391
5433
|
DEFAULT_MAX_PARALLEL_PER_REPO if config_default is None else config_default
|
|
5392
5434
|
)
|
|
@@ -5396,6 +5438,35 @@ def drive_queue_tick(
|
|
|
5396
5438
|
"--max-parallel-per-repo must be 0 (no per-repo ceiling) or more"
|
|
5397
5439
|
)
|
|
5398
5440
|
|
|
5441
|
+
# #3388: an explicit `--max-parallel` always wins; otherwise
|
|
5442
|
+
# `pipeline.max_parallel` from coordinator.yml; otherwise derive it from
|
|
5443
|
+
# the fleet's own shape (repo count * the per-repo ceiling just resolved
|
|
5444
|
+
# above, clamped to the fleet's real worker capacity) rather than fall
|
|
5445
|
+
# back to a hand-maintained constant that goes stale the moment either
|
|
5446
|
+
# side changes — see `coord.drive_queue.default_max_parallel`. Only when
|
|
5447
|
+
# the config itself could not be read at all (so neither the fleet
|
|
5448
|
+
# default nor the fleet shape is known) does this fall back to the
|
|
5449
|
+
# hardcoded `DEFAULT_MAX_PARALLEL`.
|
|
5450
|
+
if max_parallel is None:
|
|
5451
|
+
_cfg = _config_for_defaults()
|
|
5452
|
+
config_max_parallel = None if _cfg is None else _cfg.pipeline.max_parallel
|
|
5453
|
+
if config_max_parallel is not None:
|
|
5454
|
+
max_parallel = config_max_parallel
|
|
5455
|
+
elif _cfg is not None:
|
|
5456
|
+
max_parallel = default_max_parallel(
|
|
5457
|
+
repo_count=len(_cfg.repos),
|
|
5458
|
+
max_parallel_per_repo=max_parallel_per_repo,
|
|
5459
|
+
max_workers_cap=_cfg.concurrency.max_workers,
|
|
5460
|
+
)
|
|
5461
|
+
else:
|
|
5462
|
+
max_parallel = DEFAULT_MAX_PARALLEL
|
|
5463
|
+
|
|
5464
|
+
if max_parallel < 0:
|
|
5465
|
+
raise click.ClickException(
|
|
5466
|
+
"--max-parallel must be at least 0 (0 = reconcile-only, launch "
|
|
5467
|
+
"nothing this run — see --reconcile-only)"
|
|
5468
|
+
)
|
|
5469
|
+
|
|
5399
5470
|
# #2110: `--reconcile-only` and `--max-parallel 0` are the same request —
|
|
5400
5471
|
# one flag is a mnemonic for the other rather than a second code path, so
|
|
5401
5472
|
# there is exactly one way this behaves, not two that could drift apart.
|
|
@@ -1232,6 +1232,21 @@ class PipelineConfig:
|
|
|
1232
1232
|
:data:`_DEFAULT_STALL_THRESHOLDS` for the shape and the evidence behind
|
|
1233
1233
|
its two seeded entries, and :meth:`stall_threshold_secs` for how a type
|
|
1234
1234
|
absent from the table falls back to the drive's flat ``--stall`` value.
|
|
1235
|
+
|
|
1236
|
+
``max_parallel`` (#3388) is the fleet-wide default for ``coord
|
|
1237
|
+
drive-queue tick``'s GLOBAL concurrency ceiling (``--max-parallel``) —
|
|
1238
|
+
the sibling of ``max_parallel_per_repo`` above, added for the same
|
|
1239
|
+
reason: a systemd unit's hardcoded ``--max-parallel 4`` encoded a fact
|
|
1240
|
+
about the fleet (repo count times per-repo ceiling) that nobody revisited
|
|
1241
|
+
when either side changed, and two repos alone starved the other twelve
|
|
1242
|
+
once ``max_parallel_per_repo`` could exceed 1 (#2012, #2057, #2573).
|
|
1243
|
+
``None`` (the default) leaves the ceiling at
|
|
1244
|
+
``coord.drive_queue.default_max_parallel``'s derivation — ``repo_count *
|
|
1245
|
+
max_parallel_per_repo``, clamped to ``concurrency.max_workers`` — rather
|
|
1246
|
+
than a hand-maintained constant. An explicit ``coord drive-queue tick
|
|
1247
|
+
--max-parallel N`` on the command line always wins over this, exactly
|
|
1248
|
+
mirroring ``max_parallel_per_repo``'s own resolution order — see
|
|
1249
|
+
``coord.commands.drive_queue.drive_queue_tick``.
|
|
1235
1250
|
"""
|
|
1236
1251
|
|
|
1237
1252
|
default_gates: list[str] = field(default_factory=lambda: ["test", "review", "merge"])
|
|
@@ -1267,6 +1282,9 @@ class PipelineConfig:
|
|
|
1267
1282
|
stall_thresholds: dict[str, float] = field(
|
|
1268
1283
|
default_factory=lambda: dict(_DEFAULT_STALL_THRESHOLDS)
|
|
1269
1284
|
)
|
|
1285
|
+
# #3388 — None means "derive from the fleet shape", see
|
|
1286
|
+
# coord.drive_queue.default_max_parallel. See the class docstring.
|
|
1287
|
+
max_parallel: int | None = None
|
|
1270
1288
|
|
|
1271
1289
|
def attention_threshold_for(
|
|
1272
1290
|
self,
|
|
@@ -3641,6 +3659,17 @@ def _parse_pipeline(raw: Any) -> PipelineConfig:
|
|
|
3641
3659
|
)
|
|
3642
3660
|
cfg.max_parallel_per_repo = value
|
|
3643
3661
|
|
|
3662
|
+
if "max_parallel" in raw:
|
|
3663
|
+
value = raw["max_parallel"]
|
|
3664
|
+
if value is not None and (
|
|
3665
|
+
not isinstance(value, int) or isinstance(value, bool) or value < 0
|
|
3666
|
+
):
|
|
3667
|
+
raise ConfigError(
|
|
3668
|
+
"pipeline.max_parallel must be a non-negative integer or "
|
|
3669
|
+
"null (0 = reconcile-only, launch nothing)"
|
|
3670
|
+
)
|
|
3671
|
+
cfg.max_parallel = value
|
|
3672
|
+
|
|
3644
3673
|
if "stall_thresholds" in raw:
|
|
3645
3674
|
value = raw["stall_thresholds"]
|
|
3646
3675
|
if not isinstance(value, dict):
|
{code_coordinator-0.5.495 → code_coordinator-0.5.496/coord}/deploy/coord-drive-queue.service
RENAMED
|
@@ -165,46 +165,58 @@ KillMode=process
|
|
|
165
165
|
# stays so nobody re-derives the (wrong) theory that narrowing THIS PATH
|
|
166
166
|
# would have prevented it.
|
|
167
167
|
Environment=PATH=%h/.coord-venv/bin:%h/.cargo/bin:%h/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
|
|
168
|
-
# --max-parallel
|
|
169
|
-
#
|
|
170
|
-
#
|
|
171
|
-
#
|
|
172
|
-
#
|
|
173
|
-
#
|
|
174
|
-
#
|
|
175
|
-
#
|
|
176
|
-
#
|
|
177
|
-
#
|
|
178
|
-
#
|
|
179
|
-
#
|
|
180
|
-
#
|
|
181
|
-
#
|
|
182
|
-
#
|
|
183
|
-
#
|
|
184
|
-
#
|
|
185
|
-
#
|
|
186
|
-
#
|
|
187
|
-
#
|
|
188
|
-
#
|
|
168
|
+
# --max-parallel USED TO be hardcoded here (#2012 set it to 3 — the repo
|
|
169
|
+
# count at the time, one slot per repo; #2057 raised it to 4 when a fourth
|
|
170
|
+
# repo joined and it was never revisited again). #3388: that invariant
|
|
171
|
+
# (global == repo count) only held while --max-parallel-per-repo always
|
|
172
|
+
# defaulted to 1. Once #2573 gave the per-repo ceiling its own
|
|
173
|
+
# coordinator.yml knob and an operator raised it past 1, the real invariant
|
|
174
|
+
# became `global >= repo_count * max_parallel_per_repo` — and at 14 repos
|
|
175
|
+
# with max_parallel_per_repo=2 against a global ceiling still stuck at 4,
|
|
176
|
+
# TWO repos alone reached the global ceiling and every other repo in the
|
|
177
|
+
# fleet was starved, permanently, no matter what was queued (2026-09-18).
|
|
178
|
+
#
|
|
179
|
+
# So --max-parallel is deliberately ABSENT below, the same way
|
|
180
|
+
# --max-parallel-per-repo already is (#2573's rationale, restated below
|
|
181
|
+
# applies verbatim here). Omitting it lets `coord drive-queue tick` resolve
|
|
182
|
+
# it itself, in this order: an explicit --max-parallel on this ExecStart=
|
|
183
|
+
# (none is set here on purpose) > `pipeline.max_parallel` in
|
|
184
|
+
# ~/.coord/coordinator.yml, if an operator wants to pin a fleet-wide value >
|
|
185
|
+
# `coord.drive_queue.default_max_parallel`'s DERIVATION from the fleet's own
|
|
186
|
+
# shape — repo count times the (already-resolved) per-repo ceiling, clamped
|
|
187
|
+
# to `concurrency.max_workers` — which is self-maintaining across repo
|
|
188
|
+
# additions instead of a constant nobody remembers to revisit. See
|
|
189
|
+
# `coord.commands.drive_queue.drive_queue_tick` for the exact order and
|
|
190
|
+
# `coord.config.PipelineConfig.max_parallel` for the field.
|
|
191
|
+
#
|
|
192
|
+
# #1972's SECOND ceiling, --max-parallel-per-repo, is what keeps two drives
|
|
193
|
+
# off the same repo once the global ceiling admits more than one launch at
|
|
194
|
+
# once; the derived global ceiling above only ever multiplies BY whatever
|
|
195
|
+
# that ceiling resolves to, so raising --max-parallel-per-repo in
|
|
196
|
+
# coordinator.yml raises this fleet's derived global ceiling right along
|
|
197
|
+
# with it — no separate edit needed here.
|
|
198
|
+
#
|
|
199
|
+
# Raise pipeline.max_parallel_per_repo (or let it stay derived) ONLY on a
|
|
200
|
+
# fleet whose coord actually enforces the per-repo ceiling (>= the release
|
|
201
|
+
# carrying #1972). A higher global ceiling on an older coord launches two
|
|
202
|
+
# same-repo drives, which stale each other's Test verdicts (#1479) — the
|
|
203
|
+
# exact collision #1972 exists to prevent.
|
|
189
204
|
#
|
|
190
205
|
# #2573: the per-repo ceiling deliberately does NOT appear as a
|
|
191
|
-
# --max-parallel-per-repo flag below
|
|
192
|
-
# `pipeline.max_parallel_per_repo` in ~/.coord/coordinator.yml instead of
|
|
193
|
-
# `systemctl --user edit` drop-in. A drop-in has to restate this entire
|
|
206
|
+
# --max-parallel-per-repo flag below either, for the identical reason: set it
|
|
207
|
+
# as `pipeline.max_parallel_per_repo` in ~/.coord/coordinator.yml instead of
|
|
208
|
+
# a `systemctl --user edit` drop-in. A drop-in has to restate this entire
|
|
194
209
|
# ExecStart= line to change one flag on it, and that restated copy silently
|
|
195
210
|
# drifts from THIS file forever after — dellserver's live drop-in, built
|
|
196
211
|
# solely to carry --max-parallel-per-repo 2, was found resetting ExecStart=
|
|
197
212
|
# back to %h/.local/bin/coord, silently reverting #2314's pinned-venv path
|
|
198
213
|
# above as an unnoticed side effect (see docs/DRIVE_QUEUE.md §9 and #2573).
|
|
199
|
-
# coordinator.yml has no such coupling — it is read fresh by
|
|
200
|
-
# resolution
|
|
201
|
-
#
|
|
202
|
-
#
|
|
203
|
-
#
|
|
204
|
-
|
|
205
|
-
# to carry --max-parallel-per-repo, move that value into coordinator.yml and
|
|
206
|
-
# delete the drop-in — an empty override directory cannot drift.
|
|
207
|
-
ExecStart=%h/.coord-venv/bin/coord drive-queue tick --max-parallel 4 --config %h/.coord/coordinator.yml
|
|
214
|
+
# coordinator.yml has no such coupling — it is read fresh by each flag's own
|
|
215
|
+
# resolution. If a `coord-drive-queue.service.d/override.conf` still exists
|
|
216
|
+
# on a host purely to carry --max-parallel/--max-parallel-per-repo, move
|
|
217
|
+
# that value into coordinator.yml and delete the drop-in — an empty
|
|
218
|
+
# override directory cannot drift.
|
|
219
|
+
ExecStart=%h/.coord-venv/bin/coord drive-queue tick --config %h/.coord/coordinator.yml
|
|
208
220
|
# Generous relative to the tick's own ~120s launch-subprocess timeout
|
|
209
221
|
# (_LAUNCH_TIMEOUT_SECONDS in coord/commands/drive_queue.py), but well below
|
|
210
222
|
# the timer's 15-minute cadence (coord-drive-queue.timer) so a genuinely
|
|
@@ -538,6 +538,64 @@ DISPATCH_FAILURE_MIN_BACKOFF_SECONDS = 660.0
|
|
|
538
538
|
# why `render_plan` prints the per-repo breakdown and says where it came from.
|
|
539
539
|
DEFAULT_MAX_PARALLEL_PER_REPO = 1
|
|
540
540
|
|
|
541
|
+
# ── the global ceiling's own fleet-shape default (#3388) ────────────────────
|
|
542
|
+
#
|
|
543
|
+
# `--max-parallel` (the OTHER ceiling, applied before the per-repo one above)
|
|
544
|
+
# used to be a constant an operator hand-set in `coord-drive-queue.service` —
|
|
545
|
+
# #2012 set it to 3 (the repo count at the time), #2057 raised it to 4 when a
|
|
546
|
+
# fourth repo joined and was never touched again. That was tolerable only
|
|
547
|
+
# because `--max-parallel-per-repo` defaulted to 1: with one slot per repo,
|
|
548
|
+
# `global == repo_count` was the whole invariant, and it was self-evidently
|
|
549
|
+
# wrong the moment a repo count changed (a quick `git log` question).
|
|
550
|
+
#
|
|
551
|
+
# #2573 gave the per-repo ceiling its own `coordinator.yml` knob, which can
|
|
552
|
+
# now be raised past 1 — and the invariant silently became
|
|
553
|
+
# `global >= repo_count * max_parallel_per_repo` without any constant
|
|
554
|
+
# anywhere saying so. At 14 repos and `max_parallel_per_repo=2` against a
|
|
555
|
+
# `--max-parallel` still stuck at 4, two repos alone reach the global
|
|
556
|
+
# ceiling and every other repo in the fleet is starved, permanently,
|
|
557
|
+
# regardless of what is queued (the exact fleet state observed 2026-09-18).
|
|
558
|
+
#
|
|
559
|
+
# `default_max_parallel` below is that invariant computed fresh every tick
|
|
560
|
+
# instead of remembered by a human: enough global room for every repo to
|
|
561
|
+
# reach its OWN per-repo ceiling at once. See
|
|
562
|
+
# `coord.commands.drive_queue.drive_queue_tick` for where this feeds into
|
|
563
|
+
# the flag's actual resolution order (explicit flag > `coordinator.yml`
|
|
564
|
+
# `pipeline.max_parallel` > this derivation > `DEFAULT_MAX_PARALLEL` as a
|
|
565
|
+
# last-resort fallback when the config itself can't be read).
|
|
566
|
+
DEFAULT_MAX_PARALLEL = 1
|
|
567
|
+
|
|
568
|
+
|
|
569
|
+
def default_max_parallel(
|
|
570
|
+
*, repo_count: int, max_parallel_per_repo: int, max_workers_cap: int
|
|
571
|
+
) -> int:
|
|
572
|
+
"""Derive the drive-queue tick's global ceiling from the fleet's shape.
|
|
573
|
+
|
|
574
|
+
``repo_count * max_parallel_per_repo`` is the smallest global ceiling
|
|
575
|
+
that lets every repo reach its own per-repo ceiling at the same time —
|
|
576
|
+
the invariant #2012/#2057 tried to maintain by hand and lost each time
|
|
577
|
+
either the fleet or the per-repo ceiling changed (see the module-level
|
|
578
|
+
comment above this function for the incident, #3388).
|
|
579
|
+
|
|
580
|
+
``max_parallel_per_repo <= 0`` means the per-repo ceiling is itself
|
|
581
|
+
disabled (one global counter, pre-#1972 behaviour) — there is no
|
|
582
|
+
per-repo figure to multiply by, so this falls back to *max_workers_cap*
|
|
583
|
+
alone. Either way the result is clamped to *max_workers_cap*
|
|
584
|
+
(``concurrency.max_workers``, the fleet's actual worker capacity across
|
|
585
|
+
every stage, not just drive-queue launches) so a large fleet gets a
|
|
586
|
+
saner DEFAULT, not a promise the machines behind it can't keep — a
|
|
587
|
+
``max_workers_cap`` of 0 or less is "no cap known" and is not applied.
|
|
588
|
+
Always at least 1: a derivation must never produce a ceiling that
|
|
589
|
+
admits nothing.
|
|
590
|
+
"""
|
|
591
|
+
if max_parallel_per_repo > 0 and repo_count > 0:
|
|
592
|
+
derived = repo_count * max_parallel_per_repo
|
|
593
|
+
else:
|
|
594
|
+
derived = max_workers_cap
|
|
595
|
+
if max_workers_cap > 0:
|
|
596
|
+
derived = min(derived, max_workers_cap)
|
|
597
|
+
return max(1, derived)
|
|
598
|
+
|
|
541
599
|
# ── the startup grace window (#1794) ─────────────────────────────────────────
|
|
542
600
|
#
|
|
543
601
|
# A drive is NOT established the instant `coord drive --tmux` exits 0. #1606's
|
{code_coordinator-0.5.495/coord → code_coordinator-0.5.496}/deploy/coord-drive-queue.service
RENAMED
|
@@ -165,46 +165,58 @@ KillMode=process
|
|
|
165
165
|
# stays so nobody re-derives the (wrong) theory that narrowing THIS PATH
|
|
166
166
|
# would have prevented it.
|
|
167
167
|
Environment=PATH=%h/.coord-venv/bin:%h/.cargo/bin:%h/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
|
|
168
|
-
# --max-parallel
|
|
169
|
-
#
|
|
170
|
-
#
|
|
171
|
-
#
|
|
172
|
-
#
|
|
173
|
-
#
|
|
174
|
-
#
|
|
175
|
-
#
|
|
176
|
-
#
|
|
177
|
-
#
|
|
178
|
-
#
|
|
179
|
-
#
|
|
180
|
-
#
|
|
181
|
-
#
|
|
182
|
-
#
|
|
183
|
-
#
|
|
184
|
-
#
|
|
185
|
-
#
|
|
186
|
-
#
|
|
187
|
-
#
|
|
188
|
-
#
|
|
168
|
+
# --max-parallel USED TO be hardcoded here (#2012 set it to 3 — the repo
|
|
169
|
+
# count at the time, one slot per repo; #2057 raised it to 4 when a fourth
|
|
170
|
+
# repo joined and it was never revisited again). #3388: that invariant
|
|
171
|
+
# (global == repo count) only held while --max-parallel-per-repo always
|
|
172
|
+
# defaulted to 1. Once #2573 gave the per-repo ceiling its own
|
|
173
|
+
# coordinator.yml knob and an operator raised it past 1, the real invariant
|
|
174
|
+
# became `global >= repo_count * max_parallel_per_repo` — and at 14 repos
|
|
175
|
+
# with max_parallel_per_repo=2 against a global ceiling still stuck at 4,
|
|
176
|
+
# TWO repos alone reached the global ceiling and every other repo in the
|
|
177
|
+
# fleet was starved, permanently, no matter what was queued (2026-09-18).
|
|
178
|
+
#
|
|
179
|
+
# So --max-parallel is deliberately ABSENT below, the same way
|
|
180
|
+
# --max-parallel-per-repo already is (#2573's rationale, restated below
|
|
181
|
+
# applies verbatim here). Omitting it lets `coord drive-queue tick` resolve
|
|
182
|
+
# it itself, in this order: an explicit --max-parallel on this ExecStart=
|
|
183
|
+
# (none is set here on purpose) > `pipeline.max_parallel` in
|
|
184
|
+
# ~/.coord/coordinator.yml, if an operator wants to pin a fleet-wide value >
|
|
185
|
+
# `coord.drive_queue.default_max_parallel`'s DERIVATION from the fleet's own
|
|
186
|
+
# shape — repo count times the (already-resolved) per-repo ceiling, clamped
|
|
187
|
+
# to `concurrency.max_workers` — which is self-maintaining across repo
|
|
188
|
+
# additions instead of a constant nobody remembers to revisit. See
|
|
189
|
+
# `coord.commands.drive_queue.drive_queue_tick` for the exact order and
|
|
190
|
+
# `coord.config.PipelineConfig.max_parallel` for the field.
|
|
191
|
+
#
|
|
192
|
+
# #1972's SECOND ceiling, --max-parallel-per-repo, is what keeps two drives
|
|
193
|
+
# off the same repo once the global ceiling admits more than one launch at
|
|
194
|
+
# once; the derived global ceiling above only ever multiplies BY whatever
|
|
195
|
+
# that ceiling resolves to, so raising --max-parallel-per-repo in
|
|
196
|
+
# coordinator.yml raises this fleet's derived global ceiling right along
|
|
197
|
+
# with it — no separate edit needed here.
|
|
198
|
+
#
|
|
199
|
+
# Raise pipeline.max_parallel_per_repo (or let it stay derived) ONLY on a
|
|
200
|
+
# fleet whose coord actually enforces the per-repo ceiling (>= the release
|
|
201
|
+
# carrying #1972). A higher global ceiling on an older coord launches two
|
|
202
|
+
# same-repo drives, which stale each other's Test verdicts (#1479) — the
|
|
203
|
+
# exact collision #1972 exists to prevent.
|
|
189
204
|
#
|
|
190
205
|
# #2573: the per-repo ceiling deliberately does NOT appear as a
|
|
191
|
-
# --max-parallel-per-repo flag below
|
|
192
|
-
# `pipeline.max_parallel_per_repo` in ~/.coord/coordinator.yml instead of
|
|
193
|
-
# `systemctl --user edit` drop-in. A drop-in has to restate this entire
|
|
206
|
+
# --max-parallel-per-repo flag below either, for the identical reason: set it
|
|
207
|
+
# as `pipeline.max_parallel_per_repo` in ~/.coord/coordinator.yml instead of
|
|
208
|
+
# a `systemctl --user edit` drop-in. A drop-in has to restate this entire
|
|
194
209
|
# ExecStart= line to change one flag on it, and that restated copy silently
|
|
195
210
|
# drifts from THIS file forever after — dellserver's live drop-in, built
|
|
196
211
|
# solely to carry --max-parallel-per-repo 2, was found resetting ExecStart=
|
|
197
212
|
# back to %h/.local/bin/coord, silently reverting #2314's pinned-venv path
|
|
198
213
|
# above as an unnoticed side effect (see docs/DRIVE_QUEUE.md §9 and #2573).
|
|
199
|
-
# coordinator.yml has no such coupling — it is read fresh by
|
|
200
|
-
# resolution
|
|
201
|
-
#
|
|
202
|
-
#
|
|
203
|
-
#
|
|
204
|
-
|
|
205
|
-
# to carry --max-parallel-per-repo, move that value into coordinator.yml and
|
|
206
|
-
# delete the drop-in — an empty override directory cannot drift.
|
|
207
|
-
ExecStart=%h/.coord-venv/bin/coord drive-queue tick --max-parallel 4 --config %h/.coord/coordinator.yml
|
|
214
|
+
# coordinator.yml has no such coupling — it is read fresh by each flag's own
|
|
215
|
+
# resolution. If a `coord-drive-queue.service.d/override.conf` still exists
|
|
216
|
+
# on a host purely to carry --max-parallel/--max-parallel-per-repo, move
|
|
217
|
+
# that value into coordinator.yml and delete the drop-in — an empty
|
|
218
|
+
# override directory cannot drift.
|
|
219
|
+
ExecStart=%h/.coord-venv/bin/coord drive-queue tick --config %h/.coord/coordinator.yml
|
|
208
220
|
# Generous relative to the tick's own ~120s launch-subprocess timeout
|
|
209
221
|
# (_LAUNCH_TIMEOUT_SECONDS in coord/commands/drive_queue.py), but well below
|
|
210
222
|
# the timer's 15-minute cadence (coord-drive-queue.timer) so a genuinely
|
|
@@ -2331,7 +2331,14 @@ def test_back_to_back_ticks_launch_exactly_one_drive(cli, seed, launches):
|
|
|
2331
2331
|
assert "died without landing the work" not in second.output
|
|
2332
2332
|
assert "retry" not in second.output
|
|
2333
2333
|
assert "starting" in second.output
|
|
2334
|
-
|
|
2334
|
+
# #3388: no `--max-parallel` given, so the global ceiling is derived from
|
|
2335
|
+
# this config's fleet shape — 2 repos * the default 1/repo ceiling,
|
|
2336
|
+
# clamped to `concurrency.max_workers` (2) — rather than the old
|
|
2337
|
+
# hardcoded 1. One entry occupying a slot out of that derived capacity
|
|
2338
|
+
# of 2 is exactly what "exactly one drive, and the ceiling did not
|
|
2339
|
+
# collapse to 1 just because only one repo has anything queued" looks
|
|
2340
|
+
# like; see coord.drive_queue.default_max_parallel.
|
|
2341
|
+
assert "1/2 occupied" in second.output
|
|
2335
2342
|
|
|
2336
2343
|
|
|
2337
2344
|
def test_a_still_starting_drive_is_reported_not_escalated(cli, seed, launches):
|