code-coordinator 0.5.494__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.494 → code_coordinator-0.5.496}/.github/workflows/test.yml +17 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/PKG-INFO +1 -1
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/code_coordinator.egg-info/PKG-INFO +1 -1
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/code_coordinator.egg-info/SOURCES.txt +1 -0
- {code_coordinator-0.5.494 → 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.494 → code_coordinator-0.5.496}/coord/board_schema.py +11 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/board_wire.py +57 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/drive_queue.py +99 -20
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/config.py +29 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/db.py +21 -1
- {code_coordinator-0.5.494 → code_coordinator-0.5.496/coord}/deploy/coord-drive-queue.service +45 -33
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/drive_queue.py +93 -1
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/drive_state.py +8 -1
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/github_ops.py +8 -1
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/state.py +11 -3
- {code_coordinator-0.5.494/coord → code_coordinator-0.5.496}/deploy/coord-drive-queue.service +45 -33
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_board_wire.py +169 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_drive_queue.py +8 -1
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_db.py +4 -1
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_drive_queue.py +93 -2
- code_coordinator-0.5.496/tests/test_drive_queue_max_parallel_config.py +371 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_github_ops.py +12 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_state.py +63 -0
- code_coordinator-0.5.494/code_coordinator.egg-info/scm_version.json +0 -8
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/.claude/commands/board.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/.claude/commands/complete-session.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/.claude/commands/coordinator.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/.githooks/_lib.sh +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/.githooks/post-checkout +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/.githooks/post-commit +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/.githooks/post-merge +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/.github/workflows/auto-release.yml +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/.github/workflows/publish.yml +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/.gitignore +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/CLAUDE.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/GOAL.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/LICENSE +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/MANIFEST.in +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/README.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/code_coordinator.egg-info/dependency_links.txt +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/code_coordinator.egg-info/entry_points.txt +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/code_coordinator.egg-info/requires.txt +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/code_coordinator.egg-info/top_level.txt +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/__init__.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/_board_mapping.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/acceptance.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/acceptance_drivers.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/agent.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/agent_app.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/agent_update.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/agents/opencode/.gitignore +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/agents/opencode/agents/work.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/agents/opencode/routing.jsonc +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/approved_work.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/audit.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/auto_loop.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/backup.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/block_log.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/board_service.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/brain.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/branch_model.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/bug_intake.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/cargo_cache.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/ci_fix.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/ci_github.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/ci_gitlab.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/ci_store.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/claim.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/claude_setup_token.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/cli.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/client.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/codegen.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/__init__.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/_common.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/acceptance.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/agent_ops.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/audit.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/backup.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/chat.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/codegen.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/dispatch.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/dispatch_workers.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/dr.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/drive.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/gate_a.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/gates.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/issues.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/lifecycle.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/machine.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/merge.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/milestone.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/plan_followup.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/plans.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/portal.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/pr.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/release.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/repo.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/report.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/review.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/scorecard.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/sessions.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/setup.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/status.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/store_migrate.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/terminal.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/test_gate.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/commands/tui.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/comments.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/config_reload.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/confirm_test.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/conflict_fix.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/dao.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/dashboard/__init__.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/dashboard/fixture.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/dashboard/index.html +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/dashboard/server.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/dashboard/terminal.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/dead_end.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/decomposition_chat.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/deploy/README.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/deploy/coord-backup.service +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/deploy/coord-backup.timer +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/deploy/coord-dr-verify.service +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/deploy/coord-dr-verify.timer +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/deploy/coord-failure-notify.service +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/deploy/coord-fleet-watchdog.service +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/deploy/coord-fleet-watchdog.timer +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/deploy_manifest.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/deploy_units.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/deprecation_telemetry.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/deps.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/diagnose.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/dispatch.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/dispatch_liveness.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/dist_name.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/dr_promote.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/dr_verify.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/drive.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/events.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/failure_class.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/failure_classifier.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/filelock.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/fleet_config_health.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/forge_availability.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/freshness.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/gate_a.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/gate_b.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/gate_snapshot.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/gates.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/gen_board_fixture.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/github_throttle.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/goal.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/graph_health.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/__init__.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/aggregate.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/checks/__init__.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/checks/_ci_pin.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/checks/agent_install.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/checks/cargo_targets.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/checks/claude_binary.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/checks/config_drift.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/checks/coord_tui_ci_pin.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/checks/coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/checks/deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/checks/disk.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/checks/fleet_board.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/checks/fleet_deploy_lanes.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/checks/fleet_phantom.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/checks/fleet_unit_drift.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/checks/graph.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/checks/graphify_cli.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/checks/index_lock.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/checks/issues_sync_staleness.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/checks/plan_usage.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/checks/pr_churn.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/checks/release_cordon.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/checks/repo_state.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/checks/spawned_coord.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/checks/stalled_pipeline.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/checks/timer_active.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/checks/toolchain.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/checks/unit_drift.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/checks/unit_enablement.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/checks/wedged_drive_queue.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/checks/worktrees.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/cli.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/context.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/fleet_snapshot.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/models.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/pypi.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/registry.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/render.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/health/units.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/hooks.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/housekeeping.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/interactive.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/invariant_alarms.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/issue_store.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/issues_sync_status.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/liveness_auditor.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/machine_fault.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/machine_metrics.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/machine_onboard.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/machine_pause.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/machine_stats.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/merge_queue.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/milestone_chat.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/milestone_dispatch.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/milestone_gate.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/milestone_order.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/mock_author.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/models.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/network.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/new_issue_chat.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/notifier/__init__.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/notifier/baseline.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/notifier/cli.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/notifier/collect.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/notifier/digest.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/notifier/models.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/notifier/predicate.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/notifier/service.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/notifier/store.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/notifier/transport.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/notify.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/openapi.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/overlap_fence.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/overlap_predict.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/parentage.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/parentage_github.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/pipeline.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/plan_parser.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/plans.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/platform_paths.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/portal_bridge.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/portal_store.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/portal_sync.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/pr_body_lint.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/prereqs.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/progress.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/providers/__init__.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/providers/base.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/providers/claude.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/providers/claude_pty.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/providers/opencode.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/queue_diagnose.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/reconcile.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/reconcile_tick.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/refine_chat.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/release_cordon.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/release_propagate.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/release_verify.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/release_window.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/repo_dormancy.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/repo_edit.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/repo_onboard.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/reports.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/rest_schema.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/revalidate.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/review.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/scorecard.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/self_health.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/serve_app.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/skills/coord-dispatch-verbs/SKILL.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/skills/drive-queue-preflight/SKILL.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/skills/fleet-restart-safety/SKILL.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/skills/merge-stuck-triage/SKILL.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/skills/pipeline-limbo-triage/SKILL.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/skills/portal-followup/SKILL.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/skills/release-now/SKILL.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/skills/review-verdict-recovery/SKILL.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/skills/tui-quadraui-workflow/SKILL.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/skills/update-issue/SKILL.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/smoke.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/spend_ceiling.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/split_work.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/sql.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/stage_projection.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/store_migrate.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/store_parity.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/templates/deploy-cloudflare.node.yml +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/test_author.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/test_chat.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/test_orchestrator.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/test_report.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/tui_release.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/uat_checks.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/usage.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/usage_limits.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/usage_rollup.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coord/worker_events.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/coordinator.example.yml +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/deploy/coord-backup.service +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/deploy/coord-backup.timer +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/deploy/coord-dr-verify.service +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/deploy/coord-dr-verify.timer +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/deploy/coord-failure-notify.service +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/deploy/coord-failure-notify.sh +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/deploy/coord-fleet-watchdog.service +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/deploy/coord-fleet-watchdog.timer +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/deploy/coord-web-dist-build.sh +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/deploy/coord-web-rollback.sh +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/deploy/node-shim.sh +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/ADR_COORD_TUI_CI.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/ADR_COORD_WEB_ACCEPTANCE_SUITE.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/ADR_COORD_WEB_CI.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/ADR_COORD_WEB_DIST.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/ADR_PY_RUST_MIRRORS.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/AGENT_OPERATIONS.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/ARCHITECTURE.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/ARCH_SECURITY_GATES.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/COCKPIT.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/COST_DISCIPLINE.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/CROSS_PLATFORM.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/CUSTOMER_FACING_APPS.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/CUSTOMER_PORTAL.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/DATA_STORE_SELECTION.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/DISASTER_RECOVERY.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/DRIVE_QUEUE.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/EPHEMERAL_WORKERS.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/FORGE_MIGRATION.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/GRAPHIFY_SETUP.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/ISSUE_GUIDANCE.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/MAC_MINI.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/NOTIFIER.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/OPENCODE_VERIFICATION.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/OPERATING_GOTCHAS.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/OPERATOR_GUIDES.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/ORACLE_LOOP.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/PHONE_WEBAPP.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/PIPELINE_V2.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/PLATFORM_EVOLUTION.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/SECOND_BACKEND.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/STORE_SERVICE.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/TEST_FIRST_BUG_LANE.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/WEB_CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/WSL_WINDOWS_WORKER.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/mocks/web/README.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/mocks/web/_tokens.css +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/mocks/web/issue-detail.html +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/mocks/web/pipeline-narrow.html +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/docs/mocks/web/pipeline-wide.html +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/graphify-out/.gitignore +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/install-agent.sh +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/pyproject.toml +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/audit_review_verdict_overrides.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/azure-workers/bootstrap-shared.sh +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/azure-workers/build-worker-image.sh +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/azure-workers/coordinator-machine.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/azure-workers/dr-down.sh +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/azure-workers/dr-up.sh +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/azure-workers/epic-down.sh +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/azure-workers/epic-up.sh +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/azure-workers/preflight.sh +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/azure-workers/provision-server.sh +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/azure-workers/provision-worker.sh +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/azure-workers/tailnet-acl.hujson +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/azure-workers/throwaway-vm.sh +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/azure-workers/verify-github-token.sh +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/check_gh_argv_containment.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/codegen.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/coord-test-runner.sh +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/coord-tui-scaffold/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/coord-tui-scaffold/.github/workflows/cargo-test.yml +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/coord-tui-scaffold/.github/workflows/codegen-drift.yml +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/coord-tui-scaffold/CLAUDE.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/coord-venv-rollback.sh +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/drive-batch.sh +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/extract-coord-tui.sh +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/fleet_watchdog.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/gen_board_fixture.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/gen_mock_index.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/lib/provision-core.sh +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/next_release_tag.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/provision-machine.sh +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/run_tests_in_populated_home.sh +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/run_tests_without_gh.sh +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/setup-macmini.sh +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/smoke_437_interactive.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/verify-provision-noble.sh +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/verify_878_review_capture.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/verify_release_published.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/scripts/verify_release_wheel.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/setup.cfg +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/SMOKE_SET.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/__init__.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/acceptance/ms-37/conftest.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/acceptance/ms-37/contract.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/acceptance/ms-37/manifest.yml +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/acceptance/ms-51/contract.md +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/acceptance/ms-51/manifest.yml +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/acceptance/ms-51/tsconfig.json +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/backends.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/conftest.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/fixtures/board-pipeline-basic.json +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/fixtures/opencode_run_sample.jsonl +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/fixtures/playwright/all_pass.json +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/fixtures/playwright/global_setup_crash.json +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/fixtures/playwright/mixed_fail.json +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/fixtures/playwright/retry_then_pass.json +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/fixtures/playwright/skip.json +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/fixtures/playwright/truncated.json +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_acceptance.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_acceptance_drivers.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_agent.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_agent_api_error.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_agent_app.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_agent_branch_base.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_agent_branch_capture.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_agent_config_free_1712.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_agent_deploy_units_endpoint.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_agent_dirty_worktree.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_agent_drive_queue_reconcile_2373.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_agent_graph_self_heal.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_agent_health_h3.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_agent_idle_restart.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_agent_push_failure.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_agent_reap.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_agent_repos_and_pull.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_agent_restart_services_endpoint.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_agent_skills_self_heal.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_agent_startup_diagnostics.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_agent_update.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_agent_update_bluegreen.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_agent_usage_limit.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_agent_zero_commit.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_ambient_home_isolation.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_approve_capability_reroute_3241.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_approve_dependency_busy_2804.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_approve_reject_plan.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_approve_usage_gate.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_approved_work_2532.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_approved_work_2996.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_assignment_already_recorded_daemon.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_audit_log.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_audit_outcome.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_audit_query.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_auto_loop.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_auto_release_publish_2035.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_backend_selection.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_backup.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_base_checkout_restore.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_block_log.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_board_cap_762.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_board_fixture.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_board_read_path.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_board_schema.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_board_service.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_board_state.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_brain.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_branch_model.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_bug_intake.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_build_worker_image_env_update.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cargo_cache.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_check_gh_argv_containment.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_ci_acceptance_gate_1950.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_ci_fix.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_ci_github.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_ci_gitlab.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_ci_parity_2091.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_ci_store.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_claim.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_claude_md_budget.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_claude_setup_token.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_acceptance.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_assign.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_assign_interactive_remote.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_assign_provider.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_assign_repo_drift_2219.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_audit.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_chat_continue.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_codegen.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_decide.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_diagnose_capability_rules.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_diagnose_config_provenance.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_diagnose_forge_availability.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_diagnose_graph.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_diagnose_self.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_diagnose_test_coverage.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_doctor.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_doctor_config_free_1801.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_doctor_store_backend_3084.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_drive.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_escalate.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_fix_headless_review.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_gate_a.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_install_drift.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_install_skills.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_issue_comment.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_issue_create_label.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_issue_reopen.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_issue_view_list.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_merge.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_milestone_assign.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_milestone_capture.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_milestone_chat_add_child.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_milestone_gate_b.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_milestone_gate_c.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_milestone_order.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_milestone_ship.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_network.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_new_issue_chat.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_plans.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_portal.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_pr.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_pull_artifact.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_queue.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_reattach_sessions.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_refine_board.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_release_preflight.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_release_propagate.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_release_window.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_repo_2220.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_review_test_author_tracking_epic_2639.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_scorecard.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_serve_store_backend_3084.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_set_review_findings.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_status_advisory_terminal.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_status_contested_tag.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_status_invariant_alarms.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_status_machine_fault.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_status_merge_queue.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_status_provider.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_status_retried_3340.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_status_review_finalizing.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_status_test_failed_tag.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_status_usage_limit.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_sync_comments_873.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_test_plan.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_track.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_tui_update.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cli_wait.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_client.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_client_base_install.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_client_config_cache_atomic_3052.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_client_resource_migration_1946.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_commands_common.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_comments.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_completion_summary.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_config.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_config_acceptance.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_config_audit.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_config_drift_check.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_config_pricing.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_config_usage_gate.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_confirm_test.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_conflict_fix.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_conflict_fix_semantic.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_coord_log_daemon_fallback_2547.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_coord_test.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_coord_test_runner_acceptance_toolchain_2936.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_coord_test_runner_baseline.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_coord_test_runner_populated_home.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_coord_test_runner_routing.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_coord_test_runner_toolchain.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_coord_uat.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_coord_web_sse_restart_live.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_coordinator_machine.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_cross_platform_imports.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_dao.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_dashboard.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_dashboard_api.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_dashboard_fixture.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_dashboard_server.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_dashboard_terminal.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_dashboard_terminal_live.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_dead_end.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_decomposition_chat.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_deploy_coord_db_backup.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_deploy_coord_web_dist.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_deploy_coord_web_rollback.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_deploy_db_backup_unit.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_deploy_drive_queue_unit.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_deploy_failure_notify_unit.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_deploy_manifest.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_deploy_notify_unit.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_deploy_units_lane.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_deploy_web_unit.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_deprecation_telemetry.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_deps.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_diagnose.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_dispatch.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_dispatch_liveness.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_dispatch_target_validation.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_dispatch_workers.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_dist_name.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_done_housekeeping.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_dr_azure_scripts.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_dr_promote.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_dr_verify.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_drive.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_drive_machine_fault.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_drive_queue_blocked_rendering.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_drive_queue_launch_argv.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_drive_queue_max_parallel_per_repo_config.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_drive_queue_roll_pending.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_drive_queue_self_cordon_escalation.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_drive_state.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_drive_tmux.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_epic_up_capability_detection.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_epic_up_image_provenance.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_errors.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_events.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_failure_class.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_failure_classifier.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_filelock.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_fix_escalation_classifier.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_fix_of_force_override.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_fleet_config_health.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_fleet_health_probes.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_fleet_health_snapshot.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_fleet_watchdog.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_forge_availability.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_freshness.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_gate_a.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_gate_b.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_gate_snapshot_staleness.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_gates.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_gather_fleet_tmux_sessions.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_gen_mock_index.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_generated_rust_fixture.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_generated_rust_requests.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_generated_types_fixture.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_github_throttle.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_goal.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_graph_health.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_graph_selfheal_absent_2237.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_handoff.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_health_checks.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_health_cli.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_health_cli_graph.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_health_config.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_health_context.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_health_coord_tui_ci_pin.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_health_coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_health_deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_health_fix.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_health_incident_regression.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_health_issues_sync_staleness.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_health_pr_churn.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_health_pypi.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_health_registry.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_health_release_cordon_probe.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_health_timer_active.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_health_toolchain.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_health_unit_drift.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_health_unit_enablement.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_health_wedged_drive_queue.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_hooks.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_housekeeping.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_human_attended_437.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_init.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_install_agent_venv_2911.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_integration.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_interactive_briefing_echo.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_interactive_pane_log_2541.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_interactive_prefill_state.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_interactive_session_relaunch.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_interactive_test_verdict_backstop.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_interactive_token_attribution.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_interactive_worktree.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_invariant_alarms.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_issue_store_seam.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_issues_sync_status.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_liveness_auditor.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_liveness_notify.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_lock_contention_ratchet.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_machine_fault.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_machine_metrics.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_machine_onboard.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_machine_pause.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_machine_stats.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_merge_queue.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_merge_verify.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_milestone_chat.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_milestone_gate.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_milestone_order.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_milestone_seam.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_mock_author.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_model_tiering.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_models.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_models_config_labels.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_needs_attention.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_network.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_new_issue_chat.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_next_release_tag.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_node_shim.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_notifier_baseline.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_notifier_cli.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_notifier_collect.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_notifier_config.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_notifier_drive_seam.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_notifier_isolation.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_notifier_predicate.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_notifier_quiet_hours.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_notifier_service.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_notify.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_notify_drain.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_openapi.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_operational_defaults.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_overlap_fence.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_overlap_predict.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_packaged_deploy_units.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_parentage.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_paste_landed.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_phantom_heal_venv_independence_2570.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_pipeline.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_plan_followup_approve_plan_command.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_plan_followup_pr_command.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_plan_followup_review_command.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_plan_only.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_plan_parser.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_platform_paths.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_portal_bridge.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_portal_config.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_portal_store.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_portal_sync.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_pr_body_lint.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_prereqs.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_production_db_guard.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_progress.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_provider_seam.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_providers.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_providers_config_labels.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_providers_pty.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_provision_core.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_provision_machine.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_py_rust_mirror_inventory.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_quiet_hours.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_quiet_hours_store_2146.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_reap_merged_sessions.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_reap_stale_interactive_tick.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_reconcile.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_reconcile_branch.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_reconcile_completions.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_reconcile_late_agent_reports_2547.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_reconcile_merges.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_reconcile_no_agent_record.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_reconcile_tick.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_reconcile_usage_limit_done.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_refine_chat.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_release_cordon_2101.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_release_cordon_deadlock_2240.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_release_cordon_drain_stall_3336.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_release_cordon_stuck_2490.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_release_propagate.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_release_propagate_threshold.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_release_roll_between_legs_2854.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_release_roll_window_handoff.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_release_unified_1242.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_release_verify.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_release_window.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_remote_auto_prune.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_remote_interactive_reaper.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_repo_add.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_repo_dormancy.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_repo_edit_2220.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_repo_graph_fleet_2237.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_repo_onboard_2220.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_report_result_push.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_reports.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_retry.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_retry_advisory_1606.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_retry_escalation_classify_3360.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_retry_type_1636.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_revalidate.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_review.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_review_end_review_without_verdict.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_review_parse_failure_diagnostic.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_review_reaffirm.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_review_state.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_review_verdict_backstop.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_review_verdict_override_audit.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_review_verdict_relay.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_review_zero_commits.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_scoped_review_wiring.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_scorecard.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_self_health.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_serve.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_serve_app.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_serve_app_board_trim.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_serve_rest_routes.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_session.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_slice_issue_attribution.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_smoke.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_smoke_fanout_manifest_3333.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_smoke_live_checkout_restore.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_smoke_workflow.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_spend_ceiling.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_spend_ceiling_coordinator.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_split.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_split_work.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_sql_dialect.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_sqlite_connect_ratchet.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_stage_projection.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_stale_busy_reviewer_697.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_stalled_pipeline.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_state_review_findings_daemon.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_status_fleet_footer.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_stop_1567.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_store_contract.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_store_migrate.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_stuck.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_stuck_test_state_watchdog_2803.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_terminal_command.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_test_author.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_test_chat.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_test_orchestrator.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_test_report.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_test_verdict_parsing.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_test_verdict_transcript_floor.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_text_io_encoding_audit.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_thin_client_board_audit.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_thin_client_config_load_1080.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_thin_client_daemon_routing_906.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_throwaway_vm.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_tmux_host.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_tmux_session.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_transcript_floor.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_uat_checks.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_usage.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_usage_limits.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_usage_rollup.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_venv_live_install_2121.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_version_single_source.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_watch.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_worker_env_venv_isolation.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_worker_events.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_worker_image_pin_sync.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_worker_safety.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_worker_test_scoping.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_worktree.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_worktree_rmtree_chokepoint.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/test_write_parity.py +0 -0
- {code_coordinator-0.5.494 → code_coordinator-0.5.496}/tests/write_parity.py +0 -0
|
@@ -5,6 +5,8 @@ on:
|
|
|
5
5
|
branches: [main]
|
|
6
6
|
pull_request:
|
|
7
7
|
branches: [main]
|
|
8
|
+
# #3392: the `postgres` job below is opt-in and runs ONLY from here.
|
|
9
|
+
workflow_dispatch:
|
|
8
10
|
|
|
9
11
|
jobs:
|
|
10
12
|
test:
|
|
@@ -371,6 +373,21 @@ jobs:
|
|
|
371
373
|
# what every other job's `pip install -e ".[dev]"` pulls in.
|
|
372
374
|
postgres:
|
|
373
375
|
runs-on: ubuntu-latest
|
|
376
|
+
# #3392, 2026-09-18: taken out of automatic CI by operator decision -- the
|
|
377
|
+
# Postgres migration is not current work, and until it is this job is pure
|
|
378
|
+
# noise. It gates nothing (`continue-on-error: true` below, and it is not a
|
|
379
|
+
# required check in branch protection), emits ~3700
|
|
380
|
+
# ProductionDatabaseGuardError that dominate every `--log-failed` read of
|
|
381
|
+
# this workflow, and costs 65-70 min of runner time per push to main. It
|
|
382
|
+
# misdirected #3378 item 1, #3380 and #3385 -- all three were scoped as
|
|
383
|
+
# "make main green" against a job that cannot redden main.
|
|
384
|
+
#
|
|
385
|
+
# RESTORE by deleting this one `if:` line when the migration becomes active
|
|
386
|
+
# work. Everything below is unchanged and still correct. Sequence then is:
|
|
387
|
+
# remove the `if:`, work the failure list down, THEN remove
|
|
388
|
+
# `continue-on-error` -- that last step is what turns this into a real gate
|
|
389
|
+
# and it is the deliberate END of that work, not the start.
|
|
390
|
+
if: github.event_name == 'workflow_dispatch'
|
|
374
391
|
continue-on-error: true
|
|
375
392
|
services:
|
|
376
393
|
postgres:
|
|
@@ -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.494 → 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",
|
|
@@ -245,6 +245,17 @@ class BoardIssue:
|
|
|
245
245
|
synced_at: float | None = None
|
|
246
246
|
milestone_number: int | None = None
|
|
247
247
|
milestone_title: str | None = None
|
|
248
|
+
# #3384: GitHub's own `stateReason` — `"reopened"` when a human explicitly
|
|
249
|
+
# reopened this issue via `gh issue reopen`, `""` for an issue that has
|
|
250
|
+
# never been closed. See `coord.drive_queue.IssueFacts.reopened`.
|
|
251
|
+
#
|
|
252
|
+
# ABSENT, not `""`, on the wire when it is the empty default: it would
|
|
253
|
+
# otherwise cost ~20 bytes on every issue row of every poll to say nothing
|
|
254
|
+
# (`coord.board_wire._drop_default_state_reason`, which is also why it is
|
|
255
|
+
# not in this DTO's `required` list — it has a default). Read it as
|
|
256
|
+
# `row.get("state_reason") or ""`; the Rust side gets `#[serde(default)]`
|
|
257
|
+
# from `coord.codegen`.
|
|
258
|
+
state_reason: str = ""
|
|
248
259
|
|
|
249
260
|
|
|
250
261
|
@dataclasses.dataclass(kw_only=True)
|
|
@@ -65,6 +65,19 @@ Rust call site of ``OpenIssue.body`` / ``PipelineIssue.body`` first. So the
|
|
|
65
65
|
body now leaves the collection wire for open issues too, and
|
|
66
66
|
:func:`bound_issue_row` keeps only the machine-parsed *residue* a client
|
|
67
67
|
cannot re-fetch in time — see :data:`ALLOWED_GLOB_MARKER`.
|
|
68
|
+
|
|
69
|
+
**#3384: a defaulted flag costs its bytes on EVERY row.** The reopen witness
|
|
70
|
+
``issues.state_reason`` carries a value on the handful of rows GitHub
|
|
71
|
+
actually set one on, and the empty default on every other issue on the
|
|
72
|
+
board — and an empty-but-present key is ~20 bytes of wire per row per poll,
|
|
73
|
+
which on the #1791 guard's 3000-row seed is ~57 KB and pushed the payload
|
|
74
|
+
straight through :data:`BOARD_PAYLOAD_BYTE_BUDGET`. So the default is
|
|
75
|
+
dropped from the wire entirely (:func:`_drop_default_state_reason`) and the
|
|
76
|
+
key is present only when it says something. This is the same additive-only
|
|
77
|
+
convention the ``<field>_truncated`` flags already follow, and it is the
|
|
78
|
+
rule to apply to the NEXT defaulted field somebody adds to
|
|
79
|
+
``coord/board_schema.py``: an always-present default is a per-row tax on a
|
|
80
|
+
payload that is polled every few seconds and whose ETag never matches.
|
|
68
81
|
"""
|
|
69
82
|
|
|
70
83
|
from __future__ import annotations
|
|
@@ -253,9 +266,52 @@ def _machine_readable_residue(body: str) -> str:
|
|
|
253
266
|
)
|
|
254
267
|
|
|
255
268
|
|
|
269
|
+
def _drop_default_state_reason(row: dict) -> None:
|
|
270
|
+
"""#3384: drop ``state_reason`` from the wire when it is the empty default.
|
|
271
|
+
|
|
272
|
+
``issues.state_reason`` is GitHub's own ``stateReason``: ``"reopened"``
|
|
273
|
+
on an issue a human explicitly reopened, and ``''`` on every issue that
|
|
274
|
+
has never been closed — i.e. on essentially the whole board. Shipping
|
|
275
|
+
the empty default costs ~20 bytes on EVERY issue row of EVERY poll (~57 KB
|
|
276
|
+
on the #1791 guard's 3000-row seed, enough on its own to breach
|
|
277
|
+
:data:`BOARD_PAYLOAD_BYTE_BUDGET`) to tell a client something it already
|
|
278
|
+
assumes.
|
|
279
|
+
|
|
280
|
+
Safe because absent and empty are the SAME answer to every consumer, by
|
|
281
|
+
construction rather than by luck:
|
|
282
|
+
|
|
283
|
+
* ``coord.drive_queue.build_board_view`` reads it as
|
|
284
|
+
``str(row.get("state_reason") or "").lower() == "reopened"`` — the one
|
|
285
|
+
question anything asks of this field — so a missing key and an empty
|
|
286
|
+
one both yield ``IssueFacts.reopened is False``. That is also what
|
|
287
|
+
keeps this wire cut from splitting the answer in two: the daemon-host
|
|
288
|
+
local path (``coord.drive_state._local_issue_rows``, which never runs
|
|
289
|
+
through this module) still carries ``''``, and both paths land on the
|
|
290
|
+
identical fact.
|
|
291
|
+
* The Rust ``OpenIssue.state_reason`` is generated with
|
|
292
|
+
``#[serde(default)]`` (``coord.codegen._rust_auto_field``), so an
|
|
293
|
+
absent key deserializes to ``String::new()``.
|
|
294
|
+
* ``state_reason`` is not in ``BoardIssue``'s ``required`` list in
|
|
295
|
+
``/openapi.json`` (it has a dataclass default), so omitting it stays
|
|
296
|
+
inside the published contract.
|
|
297
|
+
|
|
298
|
+
A NON-empty value is always kept — this drops the default, it does not
|
|
299
|
+
filter for ``"reopened"`` specifically, so a value GitHub starts sending
|
|
300
|
+
that we do not yet interpret still reaches clients intact.
|
|
301
|
+
"""
|
|
302
|
+
if not row.get("state_reason"):
|
|
303
|
+
row.pop("state_reason", None)
|
|
304
|
+
|
|
305
|
+
|
|
256
306
|
def bound_issue_row(row: dict) -> None:
|
|
257
307
|
"""Apply the wire policy to one ``/board`` issue row (mutates).
|
|
258
308
|
|
|
309
|
+
**The empty ``state_reason`` default is dropped from every issue row**
|
|
310
|
+
(#3384), tracking issues included — see
|
|
311
|
+
:func:`_drop_default_state_reason`. Deliberately above the epic
|
|
312
|
+
early-return below, so the wire shape of that field does not depend on
|
|
313
|
+
which kind of issue a row happens to be.
|
|
314
|
+
|
|
259
315
|
**Tracking (epic) issues are exempt from the body cap.** The TUI's
|
|
260
316
|
Milestone DAG parses ``## Work order`` out of the tracking issue's body
|
|
261
317
|
*client-side* (`milestone_dag.rs::milestones_with_work_orders` — it does
|
|
@@ -282,6 +338,7 @@ def bound_issue_row(row: dict) -> None:
|
|
|
282
338
|
exactly as for a closed issue, which is what arms that hydration
|
|
283
339
|
(``pipeline.rs::issue_body_fetch_target``).
|
|
284
340
|
"""
|
|
341
|
+
_drop_default_state_reason(row)
|
|
285
342
|
if _is_tracking_issue(row):
|
|
286
343
|
return
|
|
287
344
|
if _is_closed_issue(row):
|
|
@@ -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,
|
|
@@ -2815,13 +2817,21 @@ def _local_issue_rows() -> list[dict]:
|
|
|
2815
2817
|
|
|
2816
2818
|
Fail-soft: an unreadable/absent table degrades to ``[]``, which puts the
|
|
2817
2819
|
daemon host back on the assignment-only signals rather than aborting.
|
|
2820
|
+
|
|
2821
|
+
#3384: ``state_reason`` selected alongside ``state`` — this IS the
|
|
2822
|
+
``coord drive-queue tick`` daemon-host path, so without it
|
|
2823
|
+
``coord.drive_queue.IssueFacts.reopened`` would never populate on the
|
|
2824
|
+
one host that actually ticks the queue, and a reopened issue's stale
|
|
2825
|
+
``merged`` witness would keep short-circuiting entries straight to
|
|
2826
|
+
``done`` there regardless of the fix in ``build_board_view``.
|
|
2818
2827
|
"""
|
|
2819
2828
|
from coord import sql # noqa: PLC0415
|
|
2820
2829
|
from coord.db import get_connection # noqa: PLC0415
|
|
2821
2830
|
|
|
2822
2831
|
try:
|
|
2823
2832
|
rows = sql.execute(
|
|
2824
|
-
get_connection(),
|
|
2833
|
+
get_connection(),
|
|
2834
|
+
"SELECT repo_name, number, state, state_reason FROM issues",
|
|
2825
2835
|
).fetchall()
|
|
2826
2836
|
except Exception: # noqa: BLE001 — see the fail-soft note above
|
|
2827
2837
|
return []
|
|
@@ -5240,12 +5250,25 @@ def _blocked_escalation_command(entry: QueueEntry | None, key: str, reason: str)
|
|
|
5240
5250
|
@click.option(
|
|
5241
5251
|
"--max-parallel",
|
|
5242
5252
|
type=int,
|
|
5243
|
-
default=
|
|
5244
|
-
show_default=True,
|
|
5253
|
+
default=None,
|
|
5245
5254
|
help=(
|
|
5246
|
-
"
|
|
5247
|
-
"session count, so a drive whose observer hit its
|
|
5248
|
-
"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."
|
|
5249
5272
|
),
|
|
5250
5273
|
)
|
|
5251
5274
|
@click.option(
|
|
@@ -5293,7 +5316,7 @@ def _blocked_escalation_command(entry: QueueEntry | None, key: str, reason: str)
|
|
|
5293
5316
|
)
|
|
5294
5317
|
@_CONFIG_OPTION
|
|
5295
5318
|
def drive_queue_tick(
|
|
5296
|
-
max_parallel: int,
|
|
5319
|
+
max_parallel: int | None,
|
|
5297
5320
|
max_parallel_per_repo: int | None,
|
|
5298
5321
|
dry_run: bool,
|
|
5299
5322
|
reconcile_only: bool,
|
|
@@ -5330,6 +5353,20 @@ def drive_queue_tick(
|
|
|
5330
5353
|
reverted #2314's pinned-venv `ExecStart=` right back to a
|
|
5331
5354
|
worker-overwritable path as an unnoticed side effect).
|
|
5332
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
|
+
|
|
5333
5370
|
`--max-parallel 0` (or `--reconcile-only`, the readable spelling of the
|
|
5334
5371
|
same thing — #2110) reconciles every `running` entry against the board and
|
|
5335
5372
|
then stops: no capacity walk, no deferrals, no queue-level alert, no
|
|
@@ -5361,24 +5398,37 @@ def drive_queue_tick(
|
|
|
5361
5398
|
from coord.filelock import FileLock, LockBusy, drive_queue_lock_path # noqa: PLC0415
|
|
5362
5399
|
from coord.state import list_drive_queue, update_drive_queue_entry # noqa: PLC0415
|
|
5363
5400
|
|
|
5364
|
-
|
|
5365
|
-
|
|
5366
|
-
|
|
5367
|
-
|
|
5368
|
-
|
|
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
|
|
5369
5421
|
|
|
5370
5422
|
# #2573: an explicit `--max-parallel-per-repo` always wins; otherwise
|
|
5371
5423
|
# fall back to the fleet-wide `pipeline.max_parallel_per_repo` in
|
|
5372
5424
|
# coordinator.yml, and only then to the hardcoded default. Resolved
|
|
5373
|
-
# BEFORE
|
|
5374
|
-
#
|
|
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.
|
|
5375
5429
|
if max_parallel_per_repo is None:
|
|
5376
|
-
|
|
5377
|
-
|
|
5378
|
-
|
|
5379
|
-
config_default = _load_config(config_path).pipeline.max_parallel_per_repo
|
|
5380
|
-
except Exception: # noqa: BLE001 — an unreadable config must not abort the tick
|
|
5381
|
-
config_default = None
|
|
5430
|
+
_cfg = _config_for_defaults()
|
|
5431
|
+
config_default = None if _cfg is None else _cfg.pipeline.max_parallel_per_repo
|
|
5382
5432
|
max_parallel_per_repo = (
|
|
5383
5433
|
DEFAULT_MAX_PARALLEL_PER_REPO if config_default is None else config_default
|
|
5384
5434
|
)
|
|
@@ -5388,6 +5438,35 @@ def drive_queue_tick(
|
|
|
5388
5438
|
"--max-parallel-per-repo must be 0 (no per-repo ceiling) or more"
|
|
5389
5439
|
)
|
|
5390
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
|
+
|
|
5391
5470
|
# #2110: `--reconcile-only` and `--max-parallel 0` are the same request —
|
|
5392
5471
|
# one flag is a mnemonic for the other rather than a second code path, so
|
|
5393
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):
|
|
@@ -1049,7 +1049,16 @@ def retry_on_locked(
|
|
|
1049
1049
|
# ("confirmed"/"unconfirmed"/"refuted"/"baseline_red") for a `test_state`
|
|
1050
1050
|
# write, alongside `coord.state._record_test_verdict_local`. See
|
|
1051
1051
|
# coord.models.Assignment.test_confirmation.
|
|
1052
|
-
|
|
1052
|
+
#
|
|
1053
|
+
# #3384: bumped 18 -> 19 for the new `issues.state_reason` column appended
|
|
1054
|
+
# to `_migrate_add_columns` below — carries GitHub's own `stateReason`
|
|
1055
|
+
# (`"reopened"` when a human explicitly reopened a closed issue) so
|
|
1056
|
+
# `coord.drive_queue.IssueFacts.reopened`/`.landed` can tell "this issue was
|
|
1057
|
+
# reopened for incomplete work" apart from "this issue never closed in the
|
|
1058
|
+
# first place" (a quadraui-style merge into a non-default branch) — both
|
|
1059
|
+
# read identically as `merged=True, issue_state="open"` otherwise. See
|
|
1060
|
+
# `coord.drive_queue.IssueFacts.landed`'s docstring.
|
|
1061
|
+
_DB_SCHEMA_VERSION = 19
|
|
1053
1062
|
|
|
1054
1063
|
|
|
1055
1064
|
def _read_schema_version(conn: sqlite3.Connection) -> int:
|
|
@@ -2490,6 +2499,17 @@ _MIGRATE_ADD_COLUMNS: list[str] = [
|
|
|
2490
2499
|
# See coord.models.Assignment.test_confirmation and
|
|
2491
2500
|
# coord.confirm_test.TEST_CONFIRMATION_VALUES for the exhaustive set.
|
|
2492
2501
|
"ALTER TABLE assignments ADD COLUMN test_confirmation TEXT",
|
|
2502
|
+
# #3384: GitHub's own `stateReason` for this issue — `''`/NULL for every
|
|
2503
|
+
# row predating this migration and for an issue that has never closed,
|
|
2504
|
+
# `"reopened"` (lowercased on write — see
|
|
2505
|
+
# `coord.state._upsert_open_issues_local`) when a human explicitly
|
|
2506
|
+
# reopened a previously-closed issue via `gh issue reopen`. This is the
|
|
2507
|
+
# ONLY witness that lets `coord.drive_queue.IssueFacts.landed` tell a
|
|
2508
|
+
# genuine reopen (the work is NOT done, no matter what an earlier PR
|
|
2509
|
+
# merge recorded) apart from a quadraui-style repo whose merged PRs never
|
|
2510
|
+
# auto-close the linked issue at all — both look identical as
|
|
2511
|
+
# `merged=True, issue_state="open"` without it.
|
|
2512
|
+
"ALTER TABLE issues ADD COLUMN state_reason TEXT NOT NULL DEFAULT ''",
|
|
2493
2513
|
]
|
|
2494
2514
|
|
|
2495
2515
|
|
{code_coordinator-0.5.494 → 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
|