code-coordinator 0.5.511__tar.gz → 0.5.513__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.511 → code_coordinator-0.5.513}/PKG-INFO +1 -1
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/code_coordinator.egg-info/PKG-INFO +1 -1
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/code_coordinator.egg-info/SOURCES.txt +3 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/code_coordinator.egg-info/scm_file_list.json +3 -0
- code_coordinator-0.5.513/code_coordinator.egg-info/scm_version.json +8 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/board_schema.py +235 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/issues.py +63 -1
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/milestone.py +52 -38
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/drive_queue.py +103 -0
- code_coordinator-0.5.513/coord/drive_sessions_snapshot.py +177 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/serve_app.py +226 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_board_read_path.py +22 -7
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_board_schema.py +122 -0
- code_coordinator-0.5.513/tests/test_cli_issues.py +274 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_config_effective.py +96 -0
- code_coordinator-0.5.513/tests/test_drive_sessions_snapshot.py +120 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_serve.py +390 -0
- code_coordinator-0.5.511/code_coordinator.egg-info/scm_version.json +0 -8
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/.claude/commands/board.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/.claude/commands/complete-session.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/.claude/commands/coordinator.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/.githooks/_lib.sh +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/.githooks/post-checkout +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/.githooks/post-commit +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/.githooks/post-merge +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/.github/workflows/auto-release.yml +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/.github/workflows/publish.yml +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/.github/workflows/test.yml +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/.gitignore +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/CLAUDE.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/GOAL.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/LICENSE +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/MANIFEST.in +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/README.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/code_coordinator.egg-info/dependency_links.txt +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/code_coordinator.egg-info/entry_points.txt +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/code_coordinator.egg-info/requires.txt +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/code_coordinator.egg-info/top_level.txt +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/__init__.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/_board_mapping.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/acceptance.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/acceptance_drivers.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/agent.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/agent_app.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/agent_update.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/agents/opencode/.gitignore +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/agents/opencode/agents/work.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/agents/opencode/routing.jsonc +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/approved_work.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/audit.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/auto_loop.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/backup.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/block_log.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/board_service.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/board_wire.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/brain.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/branch_model.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/bug_intake.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/cargo_cache.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/ci_fix.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/ci_github.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/ci_gitlab.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/ci_store.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/claim.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/claude_setup_token.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/cli.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/client.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/codegen.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/__init__.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/_common.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/acceptance.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/agent_ops.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/audit.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/backup.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/chat.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/ci.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/codegen.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/dispatch.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/dispatch_workers.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/dr.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/drive.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/drive_queue.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/gate_a.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/gates.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/lifecycle.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/machine.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/merge.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/plan_followup.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/plans.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/portal.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/pr.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/release.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/repo.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/report.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/review.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/scorecard.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/sessions.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/setup.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/status.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/store_migrate.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/terminal.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/test_gate.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/commands/tui.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/comments.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/config.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/config_reload.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/confirm_test.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/conflict_fix.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/dao.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/dashboard/__init__.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/dashboard/fixture.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/dashboard/index.html +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/dashboard/server.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/dashboard/terminal.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/db.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/dead_end.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/decomposition_chat.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/README.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-backup.service +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-backup.timer +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-dr-verify.service +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-dr-verify.timer +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-failure-notify.service +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-fleet-watchdog.service +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-fleet-watchdog.timer +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy_manifest.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deploy_units.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deprecation_telemetry.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/deps.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/diagnose.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/dispatch.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/dispatch_liveness.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/dist_name.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/dr_promote.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/dr_verify.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/drive.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/drive_state.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/events.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/failure_class.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/failure_classifier.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/filelock.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/fleet_config_health.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/forge_availability.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/freshness.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/gate_a.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/gate_b.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/gate_snapshot.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/gates.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/gen_board_fixture.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/github_ops.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/github_throttle.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/goal.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/graph_health.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/__init__.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/aggregate.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/__init__.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/_ci_pin.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/agent_install.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/cargo_targets.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/claude_binary.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/config_drift.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/coord_tui_ci_pin.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/disk.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/fleet_board.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/fleet_deploy_lanes.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/fleet_phantom.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/fleet_unit_drift.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/graph.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/graphify_cli.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/index_lock.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/issues_sync_staleness.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/plan_usage.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/pr_churn.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/release_cordon.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/repo_state.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/spawned_coord.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/stalled_pipeline.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/timer_active.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/toolchain.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/unit_drift.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/unit_enablement.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/wedged_drive_queue.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/checks/worktrees.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/cli.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/context.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/fleet_snapshot.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/models.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/pypi.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/registry.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/render.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/health/units.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/hooks.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/housekeeping.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/interactive.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/invariant_alarms.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/issue_store.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/issues_sync_status.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/liveness_auditor.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/machine_fault.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/machine_metrics.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/machine_onboard.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/machine_pause.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/machine_stats.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/merge_queue.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/milestone_chat.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/milestone_dispatch.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/milestone_gate.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/milestone_order.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/mock_author.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/models.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/network.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/new_issue_chat.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/notifier/__init__.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/notifier/baseline.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/notifier/cli.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/notifier/collect.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/notifier/digest.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/notifier/models.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/notifier/predicate.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/notifier/service.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/notifier/store.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/notifier/transport.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/notify.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/openapi.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/overlap_fence.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/overlap_predict.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/parentage.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/parentage_github.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/pipeline.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/plan_parser.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/plans.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/platform_paths.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/portal_bridge.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/portal_store.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/portal_sync.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/pr_body_lint.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/prereqs.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/progress.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/providers/__init__.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/providers/base.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/providers/claude.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/providers/claude_pty.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/providers/opencode.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/queue_diagnose.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/reconcile.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/reconcile_tick.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/refine_chat.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/release_cordon.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/release_propagate.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/release_verify.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/release_window.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/repo_dormancy.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/repo_edit.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/repo_onboard.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/reports.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/rest_schema.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/restart_cmd.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/revalidate.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/review.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/scorecard.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/self_health.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/skills/coord-dispatch-verbs/SKILL.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/skills/drive-queue-preflight/SKILL.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/skills/fleet-restart-safety/SKILL.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/skills/merge-stuck-triage/SKILL.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/skills/pipeline-limbo-triage/SKILL.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/skills/portal-followup/SKILL.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/skills/release-now/SKILL.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/skills/review-verdict-recovery/SKILL.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/skills/tui-quadraui-workflow/SKILL.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/skills/update-issue/SKILL.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/smoke.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/spend_ceiling.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/split_work.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/sql.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/stage_projection.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/state.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/store_migrate.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/store_parity.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/templates/deploy-cloudflare.node.yml +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/test_author.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/test_chat.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/test_orchestrator.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/test_report.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/tui_release.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/uat_checks.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/usage.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/usage_limits.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/usage_rollup.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coord/worker_events.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/coordinator.example.yml +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-backup.service +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-backup.timer +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-dr-verify.service +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-dr-verify.timer +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-failure-notify.service +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-failure-notify.sh +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-fleet-watchdog.service +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-fleet-watchdog.timer +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-web-dist-build.sh +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-web-rollback.sh +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/deploy/node-shim.sh +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/ADR_COORD_TUI_CI.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/ADR_COORD_WEB_ACCEPTANCE_SUITE.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/ADR_COORD_WEB_CI.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/ADR_COORD_WEB_DIST.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/ADR_PY_RUST_MIRRORS.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/AGENT_OPERATIONS.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/ARCHITECTURE.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/ARCH_SECURITY_GATES.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/COCKPIT.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/COST_DISCIPLINE.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/CROSS_PLATFORM.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/CUSTOMER_FACING_APPS.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/CUSTOMER_PORTAL.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/DATA_STORE_SELECTION.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/DISASTER_RECOVERY.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/DRIVE_QUEUE.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/EPHEMERAL_WORKERS.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/FORGE_MIGRATION.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/GRAPHIFY_SETUP.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/ISSUE_GUIDANCE.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/MAC_MINI.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/NOTIFIER.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/OPENCODE_VERIFICATION.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/OPERATING_GOTCHAS.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/OPERATOR_GUIDES.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/ORACLE_LOOP.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/PHONE_WEBAPP.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/PIPELINE_V2.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/PLATFORM_EVOLUTION.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/SECOND_BACKEND.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/STORE_SERVICE.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/TEST_FIRST_BUG_LANE.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/WEB_CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/WSL_WINDOWS_WORKER.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/mocks/web/README.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/mocks/web/_tokens.css +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/mocks/web/issue-detail.html +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/mocks/web/pipeline-narrow.html +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/docs/mocks/web/pipeline-wide.html +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/graphify-out/.gitignore +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/install-agent.sh +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/pyproject.toml +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/audit_review_verdict_overrides.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/azure-workers/bootstrap-shared.sh +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/azure-workers/build-worker-image.sh +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/azure-workers/coordinator-machine.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/azure-workers/dr-down.sh +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/azure-workers/dr-up.sh +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/azure-workers/epic-down.sh +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/azure-workers/epic-up.sh +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/azure-workers/preflight.sh +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/azure-workers/provision-server.sh +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/azure-workers/provision-worker.sh +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/azure-workers/tailnet-acl.hujson +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/azure-workers/throwaway-vm.sh +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/azure-workers/verify-github-token.sh +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/check_gh_argv_containment.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/codegen.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/coord-test-runner.sh +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/coord-tui-scaffold/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/coord-tui-scaffold/.github/workflows/cargo-test.yml +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/coord-tui-scaffold/.github/workflows/codegen-drift.yml +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/coord-tui-scaffold/CLAUDE.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/coord-venv-rollback.sh +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/drive-batch.sh +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/extract-coord-tui.sh +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/fleet_watchdog.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/gen_board_fixture.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/gen_mock_index.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/lib/provision-core.sh +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/next_release_tag.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/provision-machine.sh +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/run_tests_in_populated_home.sh +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/run_tests_without_gh.sh +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/setup-macmini.sh +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/smoke_437_interactive.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/verify-provision-noble.sh +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/verify_878_review_capture.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/verify_release_published.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/scripts/verify_release_wheel.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/setup.cfg +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/SMOKE_SET.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/__init__.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/acceptance/ms-37/conftest.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/acceptance/ms-37/contract.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/acceptance/ms-37/manifest.yml +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/acceptance/ms-51/contract.md +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/acceptance/ms-51/manifest.yml +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/acceptance/ms-51/tsconfig.json +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/backends.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/conftest.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/board-pipeline-basic.json +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/opencode_run_sample.jsonl +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/playwright/all_pass.json +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/playwright/global_setup_crash.json +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/playwright/mixed_fail.json +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/playwright/retry_then_pass.json +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/playwright/skip.json +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/playwright/truncated.json +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_acceptance.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_acceptance_drivers.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_api_error.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_app.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_branch_base.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_branch_capture.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_config_free_1712.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_deploy_units_endpoint.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_dirty_worktree.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_drive_queue_reconcile_2373.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_graph_self_heal.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_health_h3.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_idle_restart.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_push_failure.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_reap.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_repos_and_pull.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_restart_services_endpoint.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_skills_self_heal.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_startup_diagnostics.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_update.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_update_bluegreen.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_usage_limit.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_agent_zero_commit.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_ambient_home_isolation.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_approve_capability_reroute_3241.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_approve_dependency_busy_2804.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_approve_reject_plan.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_approve_usage_gate.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_approved_work_2532.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_approved_work_2996.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_assignment_already_recorded_daemon.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_audit_log.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_audit_outcome.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_audit_query.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_auto_loop.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_auto_release_publish_2035.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_backend_selection.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_backup.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_base_checkout_restore.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_block_log.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_board_cap_762.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_board_fixture.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_board_service.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_board_state.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_board_wire.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_brain.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_branch_model.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_bug_intake.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_build_worker_image_env_update.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cargo_cache.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_check_gh_argv_containment.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_ci_acceptance_gate_1950.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_ci_fix.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_ci_github.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_ci_gitlab.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_ci_parity_2091.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_ci_store.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_claim.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_claude_md_budget.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_claude_setup_token.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_acceptance.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_assign.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_assign_interactive_remote.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_assign_provider.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_assign_repo_drift_2219.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_audit.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_chat_continue.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_ci.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_codegen.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_decide.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_diagnose_capability_rules.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_diagnose_config_provenance.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_diagnose_forge_availability.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_diagnose_graph.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_diagnose_self.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_diagnose_test_coverage.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_doctor.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_doctor_config_free_1801.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_doctor_store_backend_3084.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_drive.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_drive_queue.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_escalate.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_fix_headless_review.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_gate_a.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_install_drift.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_install_skills.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_issue_comment.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_issue_create_label.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_issue_reopen.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_issue_view_list.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_merge.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_milestone_assign.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_milestone_capture.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_milestone_chat_add_child.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_milestone_gate_b.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_milestone_gate_c.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_milestone_order.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_milestone_ship.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_network.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_new_issue_chat.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_plans.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_portal.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_pr.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_pull_artifact.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_queue.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_reattach_sessions.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_refine_board.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_release_preflight.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_release_propagate.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_release_window.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_repo_2220.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_review_test_author_tracking_epic_2639.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_scorecard.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_serve_store_backend_3084.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_set_review_findings.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_status_advisory_terminal.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_status_contested_tag.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_status_invariant_alarms.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_status_machine_fault.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_status_merge_queue.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_status_provider.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_status_retried_3340.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_status_review_finalizing.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_status_supervisor_3366.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_status_test_failed_tag.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_status_usage_limit.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_sync_comments_873.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_test_plan.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_track.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_tui_update.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cli_wait.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_client.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_client_base_install.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_client_config_cache_atomic_3052.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_client_resource_migration_1946.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_commands_common.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_comments.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_completion_summary.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_config.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_config_acceptance.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_config_audit.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_config_drift_check.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_config_pricing.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_config_usage_gate.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_confirm_test.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_conflict_fix.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_conflict_fix_semantic.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_coord_log_daemon_fallback_2547.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_coord_test.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_coord_test_runner_acceptance_toolchain_2936.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_coord_test_runner_baseline.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_coord_test_runner_populated_home.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_coord_test_runner_routing.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_coord_test_runner_toolchain.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_coord_uat.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_coord_web_sse_restart_live.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_coordinator_machine.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_cross_platform_imports.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_dao.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_dashboard.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_dashboard_api.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_dashboard_fixture.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_dashboard_server.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_dashboard_terminal.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_dashboard_terminal_live.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_db.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_dead_end.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_decomposition_chat.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_deploy_coord_db_backup.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_deploy_coord_web_dist.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_deploy_coord_web_rollback.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_deploy_db_backup_unit.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_deploy_drive_queue_unit.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_deploy_failure_notify_unit.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_deploy_manifest.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_deploy_notify_unit.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_deploy_units_lane.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_deploy_web_unit.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_deprecation_telemetry.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_deps.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_diagnose.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_dispatch.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_dispatch_liveness.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_dispatch_target_validation.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_dispatch_workers.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_dist_name.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_done_housekeeping.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_dr_azure_scripts.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_dr_promote.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_dr_verify.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_drive.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_drive_machine_fault.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_drive_queue.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_drive_queue_blocked_rendering.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_drive_queue_launch_argv.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_drive_queue_max_parallel_config.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_drive_queue_max_parallel_per_repo_config.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_drive_queue_roll_pending.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_drive_queue_self_cordon_escalation.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_drive_state.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_drive_tmux.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_epic_up_capability_detection.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_epic_up_image_provenance.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_errors.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_events.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_failure_class.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_failure_classifier.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_filelock.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_fix_escalation_classifier.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_fix_of_force_override.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_fleet_config_health.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_fleet_health_probes.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_fleet_health_snapshot.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_fleet_watchdog.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_forge_availability.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_freshness.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_gate_a.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_gate_b.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_gate_snapshot_staleness.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_gates.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_gather_fleet_tmux_sessions.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_gen_mock_index.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_generated_rust_fixture.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_generated_rust_requests.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_generated_types_fixture.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_github_ops.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_github_throttle.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_goal.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_graph_health.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_graph_selfheal_absent_2237.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_handoff.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_checks.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_cli.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_cli_graph.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_config.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_context.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_coord_tui_ci_pin.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_fix.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_incident_regression.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_issues_sync_staleness.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_pr_churn.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_pypi.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_registry.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_release_cordon_probe.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_timer_active.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_toolchain.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_unit_drift.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_unit_enablement.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_health_wedged_drive_queue.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_hooks.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_housekeeping.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_human_attended_437.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_init.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_install_agent_venv_2911.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_integration.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_interactive_briefing_echo.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_interactive_pane_log_2541.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_interactive_prefill_state.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_interactive_session_relaunch.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_interactive_test_verdict_backstop.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_interactive_token_attribution.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_interactive_worktree.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_invariant_alarms.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_issue_store_seam.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_issues_sync_status.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_liveness_auditor.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_liveness_notify.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_lock_contention_ratchet.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_machine_fault.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_machine_metrics.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_machine_onboard.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_machine_pause.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_machine_stats.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_merge_queue.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_merge_verify.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_milestone_chat.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_milestone_gate.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_milestone_order.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_milestone_seam.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_mock_author.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_model_tiering.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_models.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_models_config_labels.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_needs_attention.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_network.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_new_issue_chat.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_next_release_tag.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_node_shim.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_notifier_baseline.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_notifier_cli.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_notifier_collect.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_notifier_config.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_notifier_drive_seam.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_notifier_isolation.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_notifier_predicate.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_notifier_quiet_hours.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_notifier_service.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_notify.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_notify_drain.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_openapi.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_operational_defaults.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_overlap_fence.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_overlap_predict.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_packaged_deploy_units.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_parentage.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_paste_landed.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_phantom_heal_venv_independence_2570.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_pipeline.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_plan_followup_approve_plan_command.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_plan_followup_pr_command.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_plan_followup_review_command.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_plan_only.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_plan_parser.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_platform_paths.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_portal_bridge.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_portal_config.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_portal_store.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_portal_sync.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_pr_body_lint.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_prereqs.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_production_db_guard.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_progress.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_provider_seam.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_providers.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_providers_config_labels.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_providers_pty.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_provision_core.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_provision_machine.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_py_rust_mirror_inventory.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_quiet_hours.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_quiet_hours_store_2146.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_reap_merged_sessions.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_reap_stale_interactive_tick.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_reconcile.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_reconcile_branch.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_reconcile_completions.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_reconcile_late_agent_reports_2547.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_reconcile_merges.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_reconcile_no_agent_record.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_reconcile_tick.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_reconcile_usage_limit_done.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_refine_chat.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_release_cordon_2101.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_release_cordon_deadlock_2240.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_release_cordon_drain_stall_3336.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_release_cordon_stuck_2490.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_release_propagate.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_release_propagate_threshold.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_release_roll_between_legs_2854.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_release_roll_window_handoff.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_release_unified_1242.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_release_verify.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_release_window.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_remote_auto_prune.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_remote_interactive_reaper.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_repo_add.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_repo_dormancy.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_repo_edit_2220.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_repo_graph_fleet_2237.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_repo_max_parallel_3423.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_repo_onboard_2220.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_report_result_push.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_reports.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_restart_cmd.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_retry.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_retry_advisory_1606.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_retry_escalation_classify_3360.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_retry_type_1636.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_revalidate.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_review.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_review_end_review_without_verdict.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_review_parse_failure_diagnostic.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_review_reaffirm.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_review_state.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_review_verdict_backstop.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_review_verdict_override_audit.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_review_verdict_relay.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_review_zero_commits.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_scoped_review_wiring.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_scorecard.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_self_health.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_serve_app.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_serve_app_board_trim.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_serve_rest_routes.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_session.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_slice_issue_attribution.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_smoke.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_smoke_fanout_manifest_3333.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_smoke_live_checkout_restore.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_smoke_workflow.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_spend_ceiling.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_spend_ceiling_coordinator.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_split.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_split_work.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_sql_dialect.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_sqlite_connect_ratchet.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_stage_projection.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_stale_busy_reviewer_697.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_stalled_pipeline.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_state.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_state_review_findings_daemon.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_status_fleet_footer.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_stop_1567.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_store_contract.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_store_migrate.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_stuck.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_stuck_test_state_watchdog_2803.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_terminal_command.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_test_author.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_test_chat.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_test_orchestrator.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_test_report.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_test_verdict_parsing.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_test_verdict_transcript_floor.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_text_io_encoding_audit.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_thin_client_board_audit.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_thin_client_config_load_1080.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_thin_client_daemon_routing_906.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_throwaway_vm.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_tmux_host.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_tmux_session.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_transcript_floor.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_uat_checks.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_usage.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_usage_limits.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_usage_rollup.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_venv_live_install_2121.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_version_single_source.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_watch.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_worker_env_venv_isolation.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_worker_events.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_worker_image_pin_sync.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_worker_safety.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_worker_test_scoping.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_worktree.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_worktree_rmtree_chokepoint.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/test_write_parity.py +0 -0
- {code_coordinator-0.5.511 → code_coordinator-0.5.513}/tests/write_parity.py +0 -0
|
@@ -76,6 +76,7 @@ coord/dr_promote.py
|
|
|
76
76
|
coord/dr_verify.py
|
|
77
77
|
coord/drive.py
|
|
78
78
|
coord/drive_queue.py
|
|
79
|
+
coord/drive_sessions_snapshot.py
|
|
79
80
|
coord/drive_state.py
|
|
80
81
|
coord/events.py
|
|
81
82
|
coord/failure_class.py
|
|
@@ -509,6 +510,7 @@ tests/test_cli_issue_comment.py
|
|
|
509
510
|
tests/test_cli_issue_create_label.py
|
|
510
511
|
tests/test_cli_issue_reopen.py
|
|
511
512
|
tests/test_cli_issue_view_list.py
|
|
513
|
+
tests/test_cli_issues.py
|
|
512
514
|
tests/test_cli_merge.py
|
|
513
515
|
tests/test_cli_milestone_assign.py
|
|
514
516
|
tests/test_cli_milestone_capture.py
|
|
@@ -622,6 +624,7 @@ tests/test_drive_queue_max_parallel_config.py
|
|
|
622
624
|
tests/test_drive_queue_max_parallel_per_repo_config.py
|
|
623
625
|
tests/test_drive_queue_roll_pending.py
|
|
624
626
|
tests/test_drive_queue_self_cordon_escalation.py
|
|
627
|
+
tests/test_drive_sessions_snapshot.py
|
|
625
628
|
tests/test_drive_state.py
|
|
626
629
|
tests/test_drive_tmux.py
|
|
627
630
|
tests/test_epic_up_capability_detection.py
|
{code_coordinator-0.5.511 → code_coordinator-0.5.513}/code_coordinator.egg-info/scm_file_list.json
RENAMED
|
@@ -136,6 +136,7 @@
|
|
|
136
136
|
"coord/dr_verify.py",
|
|
137
137
|
"coord/drive.py",
|
|
138
138
|
"coord/drive_queue.py",
|
|
139
|
+
"coord/drive_sessions_snapshot.py",
|
|
139
140
|
"coord/drive_state.py",
|
|
140
141
|
"coord/events.py",
|
|
141
142
|
"coord/failure_class.py",
|
|
@@ -535,6 +536,7 @@
|
|
|
535
536
|
"tests/test_cli_issue_create_label.py",
|
|
536
537
|
"tests/test_cli_issue_reopen.py",
|
|
537
538
|
"tests/test_cli_issue_view_list.py",
|
|
539
|
+
"tests/test_cli_issues.py",
|
|
538
540
|
"tests/test_cli_merge.py",
|
|
539
541
|
"tests/test_cli_milestone_assign.py",
|
|
540
542
|
"tests/test_cli_milestone_capture.py",
|
|
@@ -648,6 +650,7 @@
|
|
|
648
650
|
"tests/test_drive_queue_max_parallel_per_repo_config.py",
|
|
649
651
|
"tests/test_drive_queue_roll_pending.py",
|
|
650
652
|
"tests/test_drive_queue_self_cordon_escalation.py",
|
|
653
|
+
"tests/test_drive_sessions_snapshot.py",
|
|
651
654
|
"tests/test_drive_state.py",
|
|
652
655
|
"tests/test_drive_tmux.py",
|
|
653
656
|
"tests/test_epic_up_capability_detection.py",
|
|
@@ -62,6 +62,11 @@ import typing
|
|
|
62
62
|
from collections.abc import Mapping
|
|
63
63
|
from typing import Any, Union
|
|
64
64
|
|
|
65
|
+
# #3428: the `concurrency` block's `occupancy_state` value set — owned by the
|
|
66
|
+
# snapshot module that produces it (see `BoardConcurrency` below). Safe at
|
|
67
|
+
# module scope: that module imports nothing from `coord` at import time.
|
|
68
|
+
from coord.drive_sessions_snapshot import OCCUPANCY_UNOBSERVED
|
|
69
|
+
|
|
65
70
|
#: What the read path actually hands the projection. ``sqlite3.Row`` is *not*
|
|
66
71
|
#: a ``Mapping`` (see :func:`_as_dict`), so it has to be named explicitly.
|
|
67
72
|
RowLike = Union[Mapping[str, Any], sqlite3.Row]
|
|
@@ -310,6 +315,236 @@ class BoardDriveQueueEntry:
|
|
|
310
315
|
apply_verdict_at: float | None = None
|
|
311
316
|
|
|
312
317
|
|
|
318
|
+
# ── #3428 (#3408 item 3): concurrency ceilings + provenance + occupancy ──────
|
|
319
|
+
#
|
|
320
|
+
# The three dataclasses below are NOT a table projection — there is no
|
|
321
|
+
# `concurrency` table — so they are absent from `BOARD_PROJECTIONS` and
|
|
322
|
+
# `decode_row()` never touches them. They exist to give the *computed*
|
|
323
|
+
# `coord.drive_queue.CeilingResolution` (already resolved on the daemon host
|
|
324
|
+
# by `coord config --effective`'s own machinery — see that command's
|
|
325
|
+
# docstring) an explicit wire shape, the same way `BoardAssignment` etc. give
|
|
326
|
+
# one to a raw DB row. `coord/serve_app.py`'s `board()` handler builds a
|
|
327
|
+
# `BoardConcurrency` per request (never persisted) and adds it to the
|
|
328
|
+
# `/board` payload as the sibling key ``concurrency`` — same posture as
|
|
329
|
+
# ``roll_pending``/``goal_header``: additive, absent-tolerant, never required.
|
|
330
|
+
#
|
|
331
|
+
# Deliberately does NOT import `coord.drive_queue` at module scope:
|
|
332
|
+
# `coord.drive_queue` transitively imports THIS module (via
|
|
333
|
+
# `coord.merge_queue` -> `coord.state` -> `coord.board_schema`), so a
|
|
334
|
+
# top-level `from coord.drive_queue import CeilingResolution` here would be a
|
|
335
|
+
# real import cycle, not just an ugly one. `CeilingResolution` is referenced
|
|
336
|
+
# only for typing (`from __future__ import annotations` makes the annotation
|
|
337
|
+
# itself lazy) and duck-typed at runtime by :func:`board_ceiling_from_resolution`.
|
|
338
|
+
# (`coord.drive_sessions_snapshot`, which owns the `occupancy_state` value
|
|
339
|
+
# set `BoardConcurrency` below defaults to, is by contrast imported at the
|
|
340
|
+
# TOP of this file: it imports nothing from `coord` at module scope — its own
|
|
341
|
+
# tmux/queue imports are deferred into `refresh()` — so it cannot close a
|
|
342
|
+
# cycle back through here.)
|
|
343
|
+
if typing.TYPE_CHECKING: # pragma: no cover — typing only
|
|
344
|
+
from coord.drive_queue import CeilingResolution
|
|
345
|
+
|
|
346
|
+
|
|
347
|
+
#: `BoardCeiling.source_kind` / `BoardCeilingSource.source_kind`'s closed
|
|
348
|
+
#: value set (#3428) — a machine-readable classification of
|
|
349
|
+
#: `CeilingResolution.source`'s free-text prose (written for `coord config
|
|
350
|
+
#: --effective`'s human-readable output), so a client can style/filter a
|
|
351
|
+
#: ceiling's provenance without string-matching wording that is free to
|
|
352
|
+
#: change. See :func:`classify_ceiling_source` for the mapping.
|
|
353
|
+
CEILING_SOURCE_KIND_SYSTEMD_FLAG = "systemd_flag"
|
|
354
|
+
CEILING_SOURCE_KIND_CLI_FLAG = "cli_flag"
|
|
355
|
+
CEILING_SOURCE_KIND_COORDINATOR_YML_REPO = "coordinator_yml_repo"
|
|
356
|
+
CEILING_SOURCE_KIND_COORDINATOR_YML_PIPELINE = "coordinator_yml_pipeline"
|
|
357
|
+
CEILING_SOURCE_KIND_COORDINATOR_YML_CONCURRENCY = "coordinator_yml_concurrency"
|
|
358
|
+
CEILING_SOURCE_KIND_DERIVED = "derived"
|
|
359
|
+
CEILING_SOURCE_KIND_DEFAULT = "default"
|
|
360
|
+
#: A `CeilingResolution.source` this classifier doesn't recognise — should
|
|
361
|
+
#: never actually appear on a real `/board` payload (every source string
|
|
362
|
+
#: `coord.drive_queue`'s resolvers produce is covered below), but a client
|
|
363
|
+
#: must still be able to parse it rather than choke: unlike the DTOs above,
|
|
364
|
+
#: `source_kind` degrading to "unknown" is a display nit, not a #632-class
|
|
365
|
+
#: parse failure.
|
|
366
|
+
CEILING_SOURCE_KIND_UNKNOWN = "unknown"
|
|
367
|
+
|
|
368
|
+
CEILING_SOURCE_KINDS: frozenset[str] = frozenset(
|
|
369
|
+
{
|
|
370
|
+
CEILING_SOURCE_KIND_SYSTEMD_FLAG,
|
|
371
|
+
CEILING_SOURCE_KIND_CLI_FLAG,
|
|
372
|
+
CEILING_SOURCE_KIND_COORDINATOR_YML_REPO,
|
|
373
|
+
CEILING_SOURCE_KIND_COORDINATOR_YML_PIPELINE,
|
|
374
|
+
CEILING_SOURCE_KIND_COORDINATOR_YML_CONCURRENCY,
|
|
375
|
+
CEILING_SOURCE_KIND_DERIVED,
|
|
376
|
+
CEILING_SOURCE_KIND_DEFAULT,
|
|
377
|
+
CEILING_SOURCE_KIND_UNKNOWN,
|
|
378
|
+
}
|
|
379
|
+
)
|
|
380
|
+
|
|
381
|
+
|
|
382
|
+
def classify_ceiling_source(source: str) -> str:
|
|
383
|
+
"""Map one `CeilingResolution.source` (or one of its `losing` entries'
|
|
384
|
+
source names) prose string to a :data:`CEILING_SOURCE_KINDS` enum value.
|
|
385
|
+
|
|
386
|
+
Ordered by specificity, matching the exact strings
|
|
387
|
+
`coord.drive_queue`'s resolvers / `coord.commands.setup._print_effective_
|
|
388
|
+
concurrency` actually construct today:
|
|
389
|
+
|
|
390
|
+
* ``"systemd ExecStart --max-parallel..."`` (`read_systemd_max_parallel_
|
|
391
|
+
flags` via `coord.commands.setup`'s ``per_repo_source``/
|
|
392
|
+
``max_parallel_source``) -> ``systemd_flag`` — the #3408 incident
|
|
393
|
+
source: a machine-local flag a thin client can never see for itself.
|
|
394
|
+
* ``"--max-parallel[-per-repo] flag"`` (an explicit CLI override on
|
|
395
|
+
`coord drive-queue tick`'s own invocation) -> ``cli_flag``.
|
|
396
|
+
* ``"coordinator.yml repos[<name>].max_parallel"`` (#3423 per-repo
|
|
397
|
+
override) -> ``coordinator_yml_repo``.
|
|
398
|
+
* ``"coordinator.yml pipeline.max_parallel..."`` -> ``coordinator_yml_pipeline``.
|
|
399
|
+
* ``"coordinator.yml concurrency.max_workers"`` (this module's own
|
|
400
|
+
synthetic resolution for the fleet worker cap — see
|
|
401
|
+
:func:`board_ceiling_from_resolution`'s caller in `coord/serve_app.py`)
|
|
402
|
+
-> ``coordinator_yml_concurrency``.
|
|
403
|
+
* ``"derived (...)"`` (`default_max_parallel`'s repo-shape derivation)
|
|
404
|
+
-> ``derived``.
|
|
405
|
+
* ``"default (...)"`` (the hardcoded fallback, config unreadable) ->
|
|
406
|
+
``default``.
|
|
407
|
+
* anything else -> ``unknown`` (fail-soft; see that constant's docstring).
|
|
408
|
+
"""
|
|
409
|
+
if source.startswith("systemd ExecStart"):
|
|
410
|
+
return CEILING_SOURCE_KIND_SYSTEMD_FLAG
|
|
411
|
+
if source.startswith("coordinator.yml repos["):
|
|
412
|
+
return CEILING_SOURCE_KIND_COORDINATOR_YML_REPO
|
|
413
|
+
if source.startswith("coordinator.yml pipeline."):
|
|
414
|
+
return CEILING_SOURCE_KIND_COORDINATOR_YML_PIPELINE
|
|
415
|
+
if source.startswith("coordinator.yml concurrency."):
|
|
416
|
+
return CEILING_SOURCE_KIND_COORDINATOR_YML_CONCURRENCY
|
|
417
|
+
if source.startswith("derived"):
|
|
418
|
+
return CEILING_SOURCE_KIND_DERIVED
|
|
419
|
+
if source.startswith("default"):
|
|
420
|
+
return CEILING_SOURCE_KIND_DEFAULT
|
|
421
|
+
if source.startswith("--") and source.endswith("flag"):
|
|
422
|
+
return CEILING_SOURCE_KIND_CLI_FLAG
|
|
423
|
+
return CEILING_SOURCE_KIND_UNKNOWN
|
|
424
|
+
|
|
425
|
+
|
|
426
|
+
@dataclasses.dataclass(kw_only=True)
|
|
427
|
+
class BoardCeilingSource:
|
|
428
|
+
"""One LOSING source's own opinion for a :class:`BoardCeiling` (#3428) —
|
|
429
|
+
the wire twin of one ``(name, value)`` pair in a
|
|
430
|
+
`coord.drive_queue.CeilingResolution.losing` tuple. This is the whole
|
|
431
|
+
point of shipping provenance at all: it is what tells an operator that
|
|
432
|
+
editing ``coordinator.yml``/``coord-settings`` is futile while a
|
|
433
|
+
machine-local systemd flag outranks it (#3408's reported incident).
|
|
434
|
+
"""
|
|
435
|
+
|
|
436
|
+
source: str
|
|
437
|
+
source_kind: str
|
|
438
|
+
value: int
|
|
439
|
+
|
|
440
|
+
|
|
441
|
+
@dataclasses.dataclass(kw_only=True)
|
|
442
|
+
class BoardCeiling:
|
|
443
|
+
"""One resolved concurrency ceiling + provenance (#3428) — the `/board`
|
|
444
|
+
wire twin of `coord.drive_queue.CeilingResolution`, the exact resolution
|
|
445
|
+
`coord config --effective` and `coord drive-queue tick` itself already
|
|
446
|
+
use (#2085 "one question, one answer": this block is never a second,
|
|
447
|
+
independently-derived answer).
|
|
448
|
+
|
|
449
|
+
``source`` carries the same free-text `CeilingResolution.source` a human
|
|
450
|
+
reads in `coord config --effective`'s output; ``source_kind`` is the
|
|
451
|
+
machine-readable classification of it (:func:`classify_ceiling_source`)
|
|
452
|
+
a client should actually branch on. ``losing`` is ``None`` (not ``[]``)
|
|
453
|
+
when nothing else was configured, matching `CeilingResolution.losing`'s
|
|
454
|
+
own "empty means nobody else had an opinion" contract.
|
|
455
|
+
"""
|
|
456
|
+
|
|
457
|
+
name: str
|
|
458
|
+
value: int
|
|
459
|
+
source: str
|
|
460
|
+
source_kind: str
|
|
461
|
+
losing: list[BoardCeilingSource] | None = None
|
|
462
|
+
|
|
463
|
+
|
|
464
|
+
def board_ceiling_from_resolution(resolution: "CeilingResolution") -> BoardCeiling:
|
|
465
|
+
"""`coord.drive_queue.CeilingResolution` -> its `/board` wire shape.
|
|
466
|
+
|
|
467
|
+
Duck-typed on purpose (reads ``.name``/``.value``/``.source``/``.losing``
|
|
468
|
+
rather than importing the real class) — see the module note above this
|
|
469
|
+
section for why `coord.drive_queue` cannot be imported here at runtime.
|
|
470
|
+
"""
|
|
471
|
+
losing = [
|
|
472
|
+
BoardCeilingSource(
|
|
473
|
+
source=name, source_kind=classify_ceiling_source(name), value=value
|
|
474
|
+
)
|
|
475
|
+
for name, value in resolution.losing
|
|
476
|
+
] or None
|
|
477
|
+
return BoardCeiling(
|
|
478
|
+
name=resolution.name,
|
|
479
|
+
value=resolution.value,
|
|
480
|
+
source=resolution.source,
|
|
481
|
+
source_kind=classify_ceiling_source(resolution.source),
|
|
482
|
+
losing=losing,
|
|
483
|
+
)
|
|
484
|
+
|
|
485
|
+
|
|
486
|
+
@dataclasses.dataclass(kw_only=True)
|
|
487
|
+
class BoardConcurrency:
|
|
488
|
+
"""The `/board` payload's ``concurrency`` block (#3428, #3408 item 3):
|
|
489
|
+
every ceiling `coord drive-queue tick` actually enforces, resolved on
|
|
490
|
+
THIS (the daemon) host, plus current occupancy against each.
|
|
491
|
+
|
|
492
|
+
**Resolved server-side, always** — the systemd-flag source
|
|
493
|
+
(:data:`CEILING_SOURCE_KIND_SYSTEMD_FLAG`) is machine-local and invisible
|
|
494
|
+
to a thin client (a Rust TUI, a phone webapp) by construction; a client
|
|
495
|
+
deriving ceilings from its own cached ``coordinator.yml`` would
|
|
496
|
+
confidently print the config value while a host-local flag silently
|
|
497
|
+
outranked it — the exact #3408 failure this block exists to end.
|
|
498
|
+
|
|
499
|
+
``repo_overrides`` carries only the repos whose OWN ``repos[].max_parallel``
|
|
500
|
+
(#3423) actually differs from ``max_parallel_per_repo``'s fleet-wide
|
|
501
|
+
value — mirroring `coord.drive_queue.effective_repo_capacities`'s own
|
|
502
|
+
"only the repos that disagree" trim (see that function's docstring):
|
|
503
|
+
listing every repo would bury the ones that matter and make an
|
|
504
|
+
all-default fleet look like something was overridden everywhere.
|
|
505
|
+
|
|
506
|
+
``occupied``/``repo_occupied`` are `coord.drive_queue.
|
|
507
|
+
compute_running_occupancy`'s own output, verbatim — the SAME "is this
|
|
508
|
+
entry still occupying a slot" verdict `plan_tick` enforces, never a
|
|
509
|
+
second, independently-recounted number (#2085 "one question, one
|
|
510
|
+
answer").
|
|
511
|
+
|
|
512
|
+
**Occupancy is nullable, and says why (#2096).** That verdict's first
|
|
513
|
+
question about a `running` entry is "is its drive session live?", which
|
|
514
|
+
only a ``tmux list-sessions`` reading can answer — and that reading is a
|
|
515
|
+
SUBPROCESS, so it is taken on the daemon's tick cadence
|
|
516
|
+
(`coord.drive_sessions_snapshot`), never inline off this read path (the
|
|
517
|
+
`/board` invariant 1 that `tests/test_board_read_path.py` enforces). When
|
|
518
|
+
the daemon has not taken a reading yet, or its refresh loop has stalled
|
|
519
|
+
(#2862) and the last one is too old to be evidence about now,
|
|
520
|
+
``occupied``/``repo_occupied`` are ``None`` and ``occupancy_state`` says
|
|
521
|
+
which — never a confidently-wrong ``0`` that a client would render as
|
|
522
|
+
"all slots free". ``occupancy_observed_at`` is the wall-clock moment of
|
|
523
|
+
the reading behind the numbers (``None`` when there has never been one),
|
|
524
|
+
so a client can show — and age out — the numbers itself.
|
|
525
|
+
|
|
526
|
+
The CEILINGS are unaffected by any of that: they are resolved from
|
|
527
|
+
config + this host's systemd unit on every build, so they stay populated
|
|
528
|
+
even when occupancy is unknown.
|
|
529
|
+
|
|
530
|
+
Absent-tolerant in both directions (#3428 acceptance): an older daemon
|
|
531
|
+
simply omits the ``concurrency`` key entirely (never ships it as e.g. an
|
|
532
|
+
empty object), and a newer client must not require the key to parse an
|
|
533
|
+
otherwise-valid board.
|
|
534
|
+
"""
|
|
535
|
+
|
|
536
|
+
max_parallel: BoardCeiling
|
|
537
|
+
max_parallel_per_repo: BoardCeiling
|
|
538
|
+
max_workers: BoardCeiling
|
|
539
|
+
repo_overrides: dict[str, BoardCeiling]
|
|
540
|
+
#: ``None`` unless ``occupancy_state`` is
|
|
541
|
+
#: :data:`~coord.drive_sessions_snapshot.OCCUPANCY_OBSERVED`.
|
|
542
|
+
occupied: int | None = None
|
|
543
|
+
repo_occupied: dict[str, int] | None = None
|
|
544
|
+
#: One of :data:`~coord.drive_sessions_snapshot.OCCUPANCY_STATES`.
|
|
545
|
+
occupancy_state: str = OCCUPANCY_UNOBSERVED
|
|
546
|
+
occupancy_observed_at: float | None = None
|
|
547
|
+
|
|
313
548
|
|
|
314
549
|
#: ``table name`` → the DTO that defines its ``/board`` wire shape. These are
|
|
315
550
|
#: exactly the seven projections ``coord/serve_app.py`` publishes under
|
|
@@ -418,7 +418,13 @@ def issue_comment_cmd(
|
|
|
418
418
|
"instead of a single freeform paragraph, so a later contract.md "
|
|
419
419
|
"author (hand or agent) doesn't have to re-derive them from prose. "
|
|
420
420
|
"All four are required together, and mutually exclusive with "
|
|
421
|
-
"--body/--body-file
|
|
421
|
+
"--body/--body-file.\n\n"
|
|
422
|
+
"--milestone (number or title, resolved the same way as `coord "
|
|
423
|
+
"milestone assign`) attaches the new issue to a milestone in the "
|
|
424
|
+
"same step, routed through the same daemon seam "
|
|
425
|
+
"(`POST /issue-milestone`) so the local issues cache is updated "
|
|
426
|
+
"immediately. An unresolvable milestone is reported *before* the "
|
|
427
|
+
"issue is created (#3432)."
|
|
422
428
|
),
|
|
423
429
|
)
|
|
424
430
|
@click.argument("repo")
|
|
@@ -436,6 +442,16 @@ def issue_comment_cmd(
|
|
|
436
442
|
multiple=True,
|
|
437
443
|
help="Label to add (repeatable). The label must already exist in the repo.",
|
|
438
444
|
)
|
|
445
|
+
@click.option(
|
|
446
|
+
"--milestone",
|
|
447
|
+
default=None,
|
|
448
|
+
help=(
|
|
449
|
+
"Milestone number or title to attach the new issue to. Resolved "
|
|
450
|
+
"before the issue is created — an unresolvable milestone (bad "
|
|
451
|
+
"number, unmatched or ambiguous title) is an error and no issue is "
|
|
452
|
+
"created."
|
|
453
|
+
),
|
|
454
|
+
)
|
|
439
455
|
@click.option(
|
|
440
456
|
"--expected", default=None,
|
|
441
457
|
help="Bug-lane intake field: what should happen, in observable terms.",
|
|
@@ -462,6 +478,7 @@ def issue_create_cmd(
|
|
|
462
478
|
body: str | None,
|
|
463
479
|
body_file: Path | None,
|
|
464
480
|
labels: tuple[str, ...],
|
|
481
|
+
milestone: str | None,
|
|
465
482
|
expected: str | None,
|
|
466
483
|
actual: str | None,
|
|
467
484
|
repro: str | None,
|
|
@@ -496,6 +513,26 @@ def issue_create_cmd(
|
|
|
496
513
|
slug = _resolve_repo_slug(cfg, repo)
|
|
497
514
|
if body_file is not None:
|
|
498
515
|
body = sys.stdin.read() if str(body_file) == "-" else Path(body_file).read_text()
|
|
516
|
+
|
|
517
|
+
# Resolve --milestone *before* creating the issue (#3432) — creating the
|
|
518
|
+
# issue and then failing to attach it would silently reproduce the bug
|
|
519
|
+
# this closes (an issue that looks healthy but is unreachable from
|
|
520
|
+
# `coord.plans.aggregate_repo_plans`, which keys on milestone
|
|
521
|
+
# membership).
|
|
522
|
+
milestone_number: int | None = None
|
|
523
|
+
milestone_title: str | None = None
|
|
524
|
+
if milestone is not None:
|
|
525
|
+
from coord.commands.milestone import ( # noqa: PLC0415
|
|
526
|
+
MilestoneResolutionError,
|
|
527
|
+
resolve_milestone_ref,
|
|
528
|
+
)
|
|
529
|
+
|
|
530
|
+
try:
|
|
531
|
+
milestone_number, milestone_title = resolve_milestone_ref(slug, milestone)
|
|
532
|
+
except MilestoneResolutionError as e:
|
|
533
|
+
click.echo(f"error: {e}", err=True)
|
|
534
|
+
sys.exit(1)
|
|
535
|
+
|
|
499
536
|
from coord.state import create_issue as _create_issue # noqa: PLC0415
|
|
500
537
|
|
|
501
538
|
try:
|
|
@@ -509,6 +546,31 @@ def issue_create_cmd(
|
|
|
509
546
|
sys.exit(1)
|
|
510
547
|
click.echo(f"#{result['number']} ({slug}) created")
|
|
511
548
|
|
|
549
|
+
if milestone_number is not None:
|
|
550
|
+
from coord.state import assign_issue_milestone # noqa: PLC0415
|
|
551
|
+
|
|
552
|
+
try:
|
|
553
|
+
assign_issue_milestone(
|
|
554
|
+
repo,
|
|
555
|
+
result["number"],
|
|
556
|
+
milestone_number,
|
|
557
|
+
milestone_title=milestone_title,
|
|
558
|
+
repo_github=slug,
|
|
559
|
+
)
|
|
560
|
+
except Exception as e: # noqa: BLE001
|
|
561
|
+
click.echo(
|
|
562
|
+
f"error: issue #{result['number']} created but milestone "
|
|
563
|
+
f"assign failed: {e}",
|
|
564
|
+
err=True,
|
|
565
|
+
)
|
|
566
|
+
sys.exit(1)
|
|
567
|
+
ms_label = (
|
|
568
|
+
f"{milestone_title!r} (#{milestone_number})"
|
|
569
|
+
if milestone_title
|
|
570
|
+
else f"#{milestone_number}"
|
|
571
|
+
)
|
|
572
|
+
click.echo(f"#{result['number']} ({slug}) assigned to milestone {ms_label}")
|
|
573
|
+
|
|
512
574
|
|
|
513
575
|
@issue_group.command(
|
|
514
576
|
"label",
|
|
@@ -165,6 +165,52 @@ def milestone_edit_cmd(
|
|
|
165
165
|
click.echo(f"milestone #{number} updated ({repo_entry.github})")
|
|
166
166
|
|
|
167
167
|
|
|
168
|
+
class MilestoneResolutionError(Exception):
|
|
169
|
+
"""Raised by :func:`resolve_milestone_ref` when MILESTONE can't be
|
|
170
|
+
resolved to a number."""
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
def resolve_milestone_ref(repo_github: str, milestone: str) -> tuple[int, str | None]:
|
|
174
|
+
"""Resolve a milestone CLI argument (number or title) to ``(number,
|
|
175
|
+
title)`` against ``repo_github``'s open milestones.
|
|
176
|
+
|
|
177
|
+
Shared by `coord milestone assign` and `coord issue create --milestone`
|
|
178
|
+
(#3432) so there is exactly one place milestone-reference resolution
|
|
179
|
+
happens — raises :class:`MilestoneResolutionError` (never exits) on any
|
|
180
|
+
failure: an unfetchable numeric milestone, an unmatched title, or an
|
|
181
|
+
ambiguous title. Callers decide how to report/exit.
|
|
182
|
+
"""
|
|
183
|
+
from coord import github_ops # noqa: PLC0415
|
|
184
|
+
|
|
185
|
+
try:
|
|
186
|
+
milestone_number = int(milestone)
|
|
187
|
+
except ValueError:
|
|
188
|
+
try:
|
|
189
|
+
all_ms = github_ops.get_repo_milestones(repo_github)
|
|
190
|
+
except RuntimeError as e:
|
|
191
|
+
raise MilestoneResolutionError(f"could not list milestones: {e}") from e
|
|
192
|
+
matches = [m for m in all_ms if m.get("title") == milestone]
|
|
193
|
+
if not matches:
|
|
194
|
+
raise MilestoneResolutionError(
|
|
195
|
+
f"no open milestone with title {milestone!r} in {repo_github}"
|
|
196
|
+
)
|
|
197
|
+
if len(matches) > 1:
|
|
198
|
+
raise MilestoneResolutionError(
|
|
199
|
+
f"multiple open milestones match {milestone!r} — use the "
|
|
200
|
+
"milestone number instead"
|
|
201
|
+
)
|
|
202
|
+
return matches[0]["number"], matches[0].get("title")
|
|
203
|
+
|
|
204
|
+
# Resolve the title from the number so the cache can store it.
|
|
205
|
+
try:
|
|
206
|
+
ms_data = github_ops.get_milestone(repo_github, milestone_number)
|
|
207
|
+
except RuntimeError as e:
|
|
208
|
+
raise MilestoneResolutionError(
|
|
209
|
+
f"could not fetch milestone #{milestone_number}: {e}"
|
|
210
|
+
) from e
|
|
211
|
+
return milestone_number, ms_data.get("title")
|
|
212
|
+
|
|
213
|
+
|
|
168
214
|
@milestone_group.command(
|
|
169
215
|
"assign",
|
|
170
216
|
help=(
|
|
@@ -194,47 +240,15 @@ def milestone_assign_cmd(
|
|
|
194
240
|
click.echo(f"error: unknown repo {repo!r}", err=True)
|
|
195
241
|
sys.exit(2)
|
|
196
242
|
|
|
197
|
-
from coord import github_ops # noqa: PLC0415
|
|
198
243
|
from coord.state import assign_issue_milestone # noqa: PLC0415
|
|
199
244
|
|
|
200
|
-
# Resolve milestone argument: numeric → number, string → title lookup.
|
|
201
|
-
milestone_number: int
|
|
202
|
-
milestone_title: str | None
|
|
203
|
-
|
|
204
245
|
try:
|
|
205
|
-
milestone_number =
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
click.echo(
|
|
212
|
-
f"error: could not fetch milestone #{milestone_number}: {e}", err=True
|
|
213
|
-
)
|
|
214
|
-
sys.exit(1)
|
|
215
|
-
except ValueError:
|
|
216
|
-
# Treat the argument as a title and resolve to a number.
|
|
217
|
-
try:
|
|
218
|
-
all_ms = github_ops.get_repo_milestones(repo_entry.github)
|
|
219
|
-
except RuntimeError as e:
|
|
220
|
-
click.echo(f"error: could not list milestones: {e}", err=True)
|
|
221
|
-
sys.exit(1)
|
|
222
|
-
matches = [m for m in all_ms if m.get("title") == milestone]
|
|
223
|
-
if not matches:
|
|
224
|
-
click.echo(
|
|
225
|
-
f"error: no open milestone with title {milestone!r} in {repo_entry.github}",
|
|
226
|
-
err=True,
|
|
227
|
-
)
|
|
228
|
-
sys.exit(1)
|
|
229
|
-
if len(matches) > 1:
|
|
230
|
-
click.echo(
|
|
231
|
-
f"error: multiple open milestones match {milestone!r} — "
|
|
232
|
-
"use the milestone number instead",
|
|
233
|
-
err=True,
|
|
234
|
-
)
|
|
235
|
-
sys.exit(1)
|
|
236
|
-
milestone_number = matches[0]["number"]
|
|
237
|
-
milestone_title = matches[0].get("title")
|
|
246
|
+
milestone_number, milestone_title = resolve_milestone_ref(
|
|
247
|
+
repo_entry.github, milestone
|
|
248
|
+
)
|
|
249
|
+
except MilestoneResolutionError as e:
|
|
250
|
+
click.echo(f"error: {e}", err=True)
|
|
251
|
+
sys.exit(1)
|
|
238
252
|
|
|
239
253
|
try:
|
|
240
254
|
assign_issue_milestone(
|
|
@@ -988,6 +988,109 @@ def compute_running_occupancy(
|
|
|
988
988
|
return occupied, repo_occupied
|
|
989
989
|
|
|
990
990
|
|
|
991
|
+
@dataclass(frozen=True)
|
|
992
|
+
class ConcurrencyReport:
|
|
993
|
+
"""Every concurrency ceiling `coord drive-queue tick` enforces, resolved
|
|
994
|
+
together in the SAME order + SAME primitives ``coord config --effective``
|
|
995
|
+
(`coord.commands.setup._print_effective_concurrency`) already applies
|
|
996
|
+
(#3408), plus current occupancy against each — the one call a daemon-host
|
|
997
|
+
caller should make rather than re-deriving the wiring itself (#3428,
|
|
998
|
+
#2085 "one question, one answer").
|
|
999
|
+
|
|
1000
|
+
``repo_resolutions`` is EVERY repo's own :class:`CeilingResolution`
|
|
1001
|
+
(#3423), keyed by name — :func:`resolve_repo_ceilings`'s full table.
|
|
1002
|
+
``repo_overrides`` is the trimmed subset that actually differs from
|
|
1003
|
+
``max_parallel_per_repo``'s fleet-wide value —
|
|
1004
|
+
:func:`effective_repo_capacities`'s own shape, and also what
|
|
1005
|
+
``max_parallel``'s own resolution is computed against (a repo with no
|
|
1006
|
+
override contributes the fleet figure to that sum, not its own name).
|
|
1007
|
+
"""
|
|
1008
|
+
|
|
1009
|
+
max_parallel: CeilingResolution
|
|
1010
|
+
max_parallel_per_repo: CeilingResolution
|
|
1011
|
+
max_workers: CeilingResolution
|
|
1012
|
+
repo_resolutions: dict[str, CeilingResolution]
|
|
1013
|
+
repo_overrides: dict[str, int]
|
|
1014
|
+
occupied: int
|
|
1015
|
+
repo_occupied: dict[str, int]
|
|
1016
|
+
|
|
1017
|
+
|
|
1018
|
+
def resolve_concurrency_report(
|
|
1019
|
+
*,
|
|
1020
|
+
repo_overrides: Mapping[str, int | None],
|
|
1021
|
+
pipeline_max_parallel: int | None,
|
|
1022
|
+
pipeline_max_parallel_per_repo: int | None,
|
|
1023
|
+
max_workers_cap: int,
|
|
1024
|
+
systemd_flags: Mapping[str, int] | None = None,
|
|
1025
|
+
entries: Sequence["QueueEntry"] = (),
|
|
1026
|
+
board: "BoardView | None" = None,
|
|
1027
|
+
max_attempts: int = DEFAULT_MAX_ATTEMPTS,
|
|
1028
|
+
now: float | None = None,
|
|
1029
|
+
local_host: str | None = None,
|
|
1030
|
+
) -> ConcurrencyReport:
|
|
1031
|
+
"""Resolve every concurrency ceiling in one call (#3428).
|
|
1032
|
+
|
|
1033
|
+
*repo_overrides* is ``{repo_name: repos[].max_parallel or None}`` for
|
|
1034
|
+
EVERY repo in the fleet (not just the overridden ones — see
|
|
1035
|
+
:func:`resolve_repo_ceilings`). *systemd_flags* defaults to a fresh
|
|
1036
|
+
:func:`read_systemd_max_parallel_flags` read of THIS machine's own
|
|
1037
|
+
installed unit when not given (a caller with an already-read dict, e.g.
|
|
1038
|
+
a test, passes it explicitly rather than touching the filesystem).
|
|
1039
|
+
|
|
1040
|
+
*board*/*entries* are `compute_running_occupancy`'s own arguments;
|
|
1041
|
+
*board* left ``None`` (the default) skips occupancy entirely
|
|
1042
|
+
(``occupied=0``, ``repo_occupied={}``) rather than raising — a caller
|
|
1043
|
+
that only wants the ceilings (no live queue state) does not need to
|
|
1044
|
+
fabricate an empty :class:`BoardView`.
|
|
1045
|
+
"""
|
|
1046
|
+
flags = systemd_flags if systemd_flags is not None else read_systemd_max_parallel_flags()
|
|
1047
|
+
|
|
1048
|
+
per_repo_resolution = resolve_max_parallel_per_repo(
|
|
1049
|
+
override_value=flags.get("max_parallel_per_repo"),
|
|
1050
|
+
override_source="systemd ExecStart --max-parallel-per-repo",
|
|
1051
|
+
config_value=pipeline_max_parallel_per_repo,
|
|
1052
|
+
)
|
|
1053
|
+
repo_resolutions = resolve_repo_ceilings(repo_overrides, fleet=per_repo_resolution)
|
|
1054
|
+
effective_repo_overrides = effective_repo_capacities(
|
|
1055
|
+
repo_resolutions, fleet_value=per_repo_resolution.value
|
|
1056
|
+
)
|
|
1057
|
+
|
|
1058
|
+
global_resolution = resolve_max_parallel(
|
|
1059
|
+
override_value=flags.get("max_parallel"),
|
|
1060
|
+
override_source="systemd ExecStart --max-parallel",
|
|
1061
|
+
config_value=pipeline_max_parallel,
|
|
1062
|
+
repo_count=len(repo_overrides),
|
|
1063
|
+
max_parallel_per_repo=per_repo_resolution.value,
|
|
1064
|
+
max_workers_cap=max_workers_cap,
|
|
1065
|
+
repo_overrides=effective_repo_overrides,
|
|
1066
|
+
)
|
|
1067
|
+
# `concurrency.max_workers` has exactly one source today — nothing can
|
|
1068
|
+
# beat `coordinator.yml`'s own value — but the wire/report shape stays
|
|
1069
|
+
# uniform across all three ceilings (#3428's own contract), so it is
|
|
1070
|
+
# wrapped in the same `CeilingResolution` shape the other two use, with
|
|
1071
|
+
# an always-empty `losing`.
|
|
1072
|
+
max_workers_resolution = CeilingResolution(
|
|
1073
|
+
"max_workers", max_workers_cap, "coordinator.yml concurrency.max_workers"
|
|
1074
|
+
)
|
|
1075
|
+
|
|
1076
|
+
if board is not None:
|
|
1077
|
+
occupied, repo_occupied = compute_running_occupancy(
|
|
1078
|
+
entries, board, max_attempts, now=now, local_host=local_host
|
|
1079
|
+
)
|
|
1080
|
+
else:
|
|
1081
|
+
occupied, repo_occupied = 0, {}
|
|
1082
|
+
|
|
1083
|
+
return ConcurrencyReport(
|
|
1084
|
+
max_parallel=global_resolution,
|
|
1085
|
+
max_parallel_per_repo=per_repo_resolution,
|
|
1086
|
+
max_workers=max_workers_resolution,
|
|
1087
|
+
repo_resolutions=repo_resolutions,
|
|
1088
|
+
repo_overrides=effective_repo_overrides,
|
|
1089
|
+
occupied=occupied,
|
|
1090
|
+
repo_occupied=repo_occupied,
|
|
1091
|
+
)
|
|
1092
|
+
|
|
1093
|
+
|
|
991
1094
|
# ── the startup grace window (#1794) ─────────────────────────────────────────
|
|
992
1095
|
#
|
|
993
1096
|
# A drive is NOT established the instant `coord drive --tmux` exits 0. #1606's
|