code-coordinator 0.5.757__tar.gz → 0.5.759__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.757 → code_coordinator-0.5.759}/PKG-INFO +1 -1
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/code_coordinator.egg-info/PKG-INFO +1 -1
- code_coordinator-0.5.759/code_coordinator.egg-info/scm_version.json +8 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/agent.py +16 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/drive_queue.py +33 -15
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/decomposition_chat.py +106 -5
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/drive_queue.py +237 -31
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/checks/wedged_drive_queue.py +22 -13
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/notifier/collect.py +98 -3
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/notify.py +52 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_drive_queue.py +129 -1
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_decomposition_chat.py +149 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_drive_queue.py +176 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_notifier_collect.py +146 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_notify.py +94 -0
- code_coordinator-0.5.757/code_coordinator.egg-info/scm_version.json +0 -8
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/.claude/commands/board.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/.claude/commands/complete-session.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/.claude/commands/coordinator.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/.githooks/_lib.sh +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/.githooks/post-checkout +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/.githooks/post-commit +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/.githooks/post-merge +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/.github/workflows/auto-release.yml +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/.github/workflows/publish.yml +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/.github/workflows/test.yml +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/.gitignore +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/CLAUDE.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/GOAL.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/LICENSE +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/MANIFEST.in +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/README.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/code_coordinator.egg-info/SOURCES.txt +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/code_coordinator.egg-info/dependency_links.txt +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/code_coordinator.egg-info/entry_points.txt +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/code_coordinator.egg-info/requires.txt +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/code_coordinator.egg-info/scm_file_list.json +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/code_coordinator.egg-info/top_level.txt +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/__init__.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/_board_mapping.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/acceptance.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/acceptance_drivers.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/agent_app.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/agent_update.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/agents/opencode/.gitignore +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/agents/opencode/agents/work.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/agents/opencode/routing.jsonc +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/app_drive.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/app_drive_daemon.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/approved_work.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/audit.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/auto_loop.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/backup.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/block_log.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/board_doctor.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/board_doctor_followthrough.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/board_doctor_permissions.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/board_doctor_policy.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/board_schema.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/board_service.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/board_wire.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/brain.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/branch_model.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/briefing_lessons.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/bug_intake.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/bugbash.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/cargo_cache.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/ci_fix.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/ci_github.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/ci_gitlab.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/ci_store.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/claim.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/claude_setup_token.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/cli.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/client.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/codegen.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/__init__.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/_common.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/acceptance.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/agent_ops.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/app_drive.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/audit.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/backup.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/bugbash.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/chat.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/ci.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/codegen.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/dispatch.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/dispatch_workers.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/dr.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/drive.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/gate_a.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/gates.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/issues.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/lifecycle.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/machine.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/merge.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/milestone.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/plan_followup.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/plans.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/portal.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/pr.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/release.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/repo.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/report.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/review.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/scorecard.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/sessions.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/setup.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/smoke.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/status.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/store_migrate.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/terminal.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/test_gate.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/commands/tui.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/comments.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/config.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/config_reload.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/confirm_test.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/conflict_fix.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/dao.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/dashboard/__init__.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/dashboard/fixture.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/dashboard/index.html +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/dashboard/reports.html +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/dashboard/server.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/dashboard/terminal.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/db.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/dead_end.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/deploy/README.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/deploy/coord-backup.service +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/deploy/coord-backup.timer +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/deploy/coord-board-doctor.service +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/deploy/coord-board-doctor.timer +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/deploy/coord-dr-verify.service +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/deploy/coord-dr-verify.timer +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/deploy/coord-failure-notify.service +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/deploy/coord-fleet-watchdog.service +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/deploy/coord-fleet-watchdog.timer +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/deploy/coord-nightly-smoke.service +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/deploy/coord-nightly-smoke.timer +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/deploy_manifest.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/deploy_units.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/deprecation_telemetry.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/deps.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/diagnose.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/dirlink.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/dispatch.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/dispatch_liveness.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/dist_name.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/dr_promote.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/dr_verify.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/drive.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/drive_sessions_snapshot.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/drive_state.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/entry_truth.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/events.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/failure_class.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/failure_classifier.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/filelock.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/fleet_config_health.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/forge_availability.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/freshness.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/gate_a.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/gate_b.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/gate_snapshot.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/gates.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/gen_board_fixture.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/github_ops.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/github_throttle.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/goal.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/graph_health.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/gtk_native_driver.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/__init__.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/aggregate.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/checks/__init__.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/checks/_ci_pin.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/checks/agent_install.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/checks/cargo_targets.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/checks/claude_binary.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/checks/config_drift.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/checks/coord_tui_ci_pin.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/checks/coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/checks/deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/checks/disk.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/checks/fleet_board.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/checks/fleet_deploy_lanes.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/checks/fleet_phantom.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/checks/fleet_unit_drift.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/checks/graph.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/checks/graphify_cli.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/checks/gui_lane_preflight.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/checks/index_lock.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/checks/issues_sync_staleness.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/checks/local_machine_identity.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/checks/plan_usage.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/checks/pr_churn.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/checks/release_cordon.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/checks/repo_state.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/checks/spawned_coord.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/checks/stalled_pipeline.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/checks/sustained_cpu.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/checks/timer_active.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/checks/toolchain.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/checks/unit_drift.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/checks/unit_enablement.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/checks/worktrees.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/cli.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/context.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/fleet_snapshot.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/models.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/pypi.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/registry.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/render.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/health/units.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/hooks.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/housekeeping.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/interactive.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/invariant_alarms.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/issue_store.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/issues_sync_status.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/key_spec.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/liveness_auditor.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/mac_native_driver.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/machine_fault.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/machine_metrics.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/machine_onboard.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/machine_pause.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/machine_stats.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/merge_queue.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/milestone_chat.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/milestone_dispatch.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/milestone_gate.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/milestone_order.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/mock_author.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/models.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/native_fs_wait.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/native_pixels.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/network.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/new_issue_chat.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/nightly_runner.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/nightly_smoke.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/nightly_status.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/nightly_store.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/notifier/__init__.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/notifier/baseline.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/notifier/cli.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/notifier/digest.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/notifier/models.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/notifier/predicate.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/notifier/service.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/notifier/store.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/notifier/transport.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/openapi.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/overlap_fence.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/overlap_predict.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/parentage.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/parentage_github.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/pipeline.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/plan_parser.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/plans.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/platform_paths.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/portal_bridge.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/portal_store.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/portal_sync.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/pr_body_lint.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/preflight_size.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/prereqs.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/prereview_gate.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/progress.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/providers/__init__.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/providers/base.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/providers/claude.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/providers/claude_pty.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/providers/opencode.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/queue_diagnose.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/reconcile.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/reconcile_tick.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/refine_chat.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/release_cordon.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/release_gate.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/release_propagate.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/release_verify.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/release_window.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/repo_dormancy.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/repo_edit.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/repo_onboard.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/reports.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/rest_schema.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/restart_cmd.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/revalidate.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/review.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/scorecard.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/self_health.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/serve_app.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/shell_exec_wrap.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/skills/coord-dispatch-verbs/SKILL.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/skills/drive-queue-preflight/SKILL.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/skills/fleet-restart-safety/SKILL.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/skills/merge-stuck-triage/SKILL.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/skills/pipeline-limbo-triage/SKILL.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/skills/portal-followup/SKILL.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/skills/release-now/SKILL.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/skills/review-verdict-recovery/SKILL.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/skills/tui-quadraui-workflow/SKILL.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/skills/update-issue/SKILL.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/smoke.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/smoke_tags.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/spend_ceiling.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/split_work.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/sql.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/stage_projection.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/state.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/store_migrate.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/store_parity.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/templates/deploy-cloudflare.node.yml +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/test_author.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/test_chat.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/test_orchestrator.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/test_report.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/tui_pty_driver.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/tui_release.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/uat_checks.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/upstream_gaps.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/usage.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/usage_limits.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/usage_rollup.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/win_native_bridge.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/win_native_driver.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coord/worker_events.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/coordinator.example.yml +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/deploy/coord-backup.service +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/deploy/coord-backup.timer +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/deploy/coord-board-doctor.service +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/deploy/coord-board-doctor.timer +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/deploy/coord-dr-verify.service +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/deploy/coord-dr-verify.timer +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/deploy/coord-failure-notify.service +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/deploy/coord-failure-notify.sh +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/deploy/coord-fleet-watchdog.service +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/deploy/coord-fleet-watchdog.timer +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/deploy/coord-nightly-smoke.service +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/deploy/coord-nightly-smoke.timer +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/deploy/coord-web-dist-build.sh +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/deploy/coord-web-rollback.sh +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/deploy/node-shim.sh +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/ADR_COORD_TUI_CI.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/ADR_COORD_WEB_ACCEPTANCE_SUITE.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/ADR_COORD_WEB_CI.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/ADR_COORD_WEB_DIST.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/ADR_PY_RUST_MIRRORS.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/AGENT_OPERATIONS.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/ARCHITECTURE.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/ARCH_SECURITY_GATES.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/COCKPIT.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/COST_DISCIPLINE.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/CROSS_PLATFORM.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/CUSTOMER_FACING_APPS.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/CUSTOMER_PORTAL.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/DATA_STORE_SELECTION.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/DISASTER_RECOVERY.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/DRIVE_QUEUE.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/EPHEMERAL_WORKERS.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/FORGE_MIGRATION.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/GRAPHIFY_SETUP.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/ISSUE_GUIDANCE.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/MAC_MINI.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/NOTIFIER.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/OPENCODE_VERIFICATION.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/OPERATING_GOTCHAS.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/OPERATOR_GUIDES.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/ORACLE_LOOP.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/PHONE_WEBAPP.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/PIPELINE_V2.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/PLATFORM_EVOLUTION.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/SECOND_BACKEND.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/STORE_SERVICE.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/TEST_FIRST_BUG_LANE.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/WEB_CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/WSL_WINDOWS_WORKER.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/mocks/web/README.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/mocks/web/_tokens.css +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/mocks/web/issue-detail.html +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/mocks/web/pipeline-narrow.html +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/docs/mocks/web/pipeline-wide.html +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/graphify-out/.gitignore +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/install-agent.sh +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/pyproject.toml +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/audit_review_verdict_overrides.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/azure-workers/bootstrap-shared.sh +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/azure-workers/build-worker-image.sh +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/azure-workers/coordinator-machine.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/azure-workers/dr-down.sh +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/azure-workers/dr-up.sh +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/azure-workers/epic-down.sh +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/azure-workers/epic-up.sh +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/azure-workers/preflight.sh +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/azure-workers/provision-server.sh +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/azure-workers/provision-worker.sh +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/azure-workers/tailnet-acl.hujson +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/azure-workers/throwaway-vm.sh +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/azure-workers/verify-github-token.sh +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/check_gh_argv_containment.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/codegen.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/comment_cruft.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/coord-test-runner.sh +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/coord-tui-scaffold/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/coord-tui-scaffold/.github/workflows/cargo-test.yml +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/coord-tui-scaffold/.github/workflows/codegen-drift.yml +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/coord-tui-scaffold/CLAUDE.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/coord-venv-rollback.sh +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/drive-batch.sh +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/extract-coord-tui.sh +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/fleet_watchdog.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/gen_board_fixture.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/gen_mock_index.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/lib/provision-core.sh +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/next_release_tag.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/provision-machine.sh +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/run_tests_in_populated_home.sh +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/run_tests_without_gh.sh +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/setup-macmini.sh +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/smoke_437_interactive.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/verify-provision-noble.sh +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/verify_878_review_capture.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/verify_release_published.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/scripts/verify_release_wheel.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/setup.cfg +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/SMOKE_SET.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/__init__.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/acceptance/ms-37/conftest.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/acceptance/ms-37/contract.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/acceptance/ms-37/manifest.yml +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/acceptance/ms-51/contract.md +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/acceptance/ms-51/manifest.yml +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/acceptance/ms-51/tsconfig.json +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/backends.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/conftest.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/fixtures/board-pipeline-basic.json +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/fixtures/opencode_run_sample.jsonl +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/fixtures/playwright/all_pass.json +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/fixtures/playwright/global_setup_crash.json +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/fixtures/playwright/mixed_fail.json +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/fixtures/playwright/retry_then_pass.json +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/fixtures/playwright/skip.json +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/fixtures/playwright/truncated.json +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/fixtures/test_report/pytest_error_log_record.txt +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_acceptance.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_acceptance_drivers.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_agent.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_agent_api_error.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_agent_app.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_agent_branch_base.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_agent_branch_capture.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_agent_config_free_1712.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_agent_deploy_units_endpoint.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_agent_dirty_worktree.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_agent_drive_queue_reconcile_2373.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_agent_graceful_shutdown_3649.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_agent_graph_refresh.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_agent_graph_self_heal.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_agent_health_h3.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_agent_idle_restart.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_agent_push_failure.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_agent_reap.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_agent_repos_and_pull.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_agent_restart_services_endpoint.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_agent_skills_self_heal.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_agent_startup_diagnostics.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_agent_update.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_agent_update_bluegreen.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_agent_usage_limit.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_agent_zero_commit.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_ambient_home_isolation.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_app_drive.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_approve_capability_reroute_3241.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_approve_dependency_busy_2804.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_approve_reject_plan.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_approve_usage_gate.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_approved_work_2532.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_approved_work_2996.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_assignment_already_recorded_daemon.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_audit_log.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_audit_outcome.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_audit_query.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_auto_loop.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_auto_release_publish_2035.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_backend_selection.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_backup.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_base_checkout_restore.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_block_log.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_board_cap_762.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_board_doctor.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_board_doctor_followthrough.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_board_doctor_permissions.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_board_doctor_policy.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_board_fixture.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_board_nightly_status.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_board_read_path.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_board_schema.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_board_service.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_board_state.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_board_wire.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_brain.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_branch_model.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_briefing_lessons.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_bug_intake.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_bugbash.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_build_worker_image_env_update.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cargo_cache.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_check_gh_argv_containment.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_ci_acceptance_gate_1950.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_ci_fix.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_ci_github.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_ci_gitlab.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_ci_parity_2091.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_ci_store.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_claim.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_claude_md_budget.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_claude_setup_token.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_acceptance.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_assign.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_assign_interactive_remote.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_assign_provider.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_assign_repo_drift_2219.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_audit.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_chat_continue.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_ci.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_codegen.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_decide.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_diagnose_capability_rules.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_diagnose_config_provenance.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_diagnose_forge_availability.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_diagnose_graph.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_diagnose_self.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_diagnose_test_coverage.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_doctor.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_doctor_config_free_1801.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_doctor_store_backend_3084.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_drive.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_drive_queue_investigate.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_drive_queue_stranded_prereq.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_escalate.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_fix_headless_review.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_gate_a.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_gates_next_action.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_inject_board_less.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_install_drift.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_install_skills.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_issue_close_wrong_repo.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_issue_comment.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_issue_create_label.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_issue_reopen.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_issue_view_list.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_issues.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_merge.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_milestone_assign.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_milestone_capture.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_milestone_chat_add_child.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_milestone_gate_b.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_milestone_gate_c.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_milestone_order.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_milestone_ship.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_network.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_new_issue_chat.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_plans.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_portal.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_pr.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_pull_artifact.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_queue.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_reattach_sessions.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_refine_board.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_release_preflight.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_release_propagate.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_release_window.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_repo_2220.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_review_test_author_tracking_epic_2639.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_scorecard.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_serve_store_backend_3084.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_set_review_findings.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_smoke_nightly.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_smoke_nightly_sweep.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_status_advisory_terminal.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_status_contested_tag.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_status_invariant_alarms.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_status_machine_fault.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_status_merge_queue.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_status_nightly.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_status_provider.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_status_retried_3340.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_status_review_finalizing.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_status_supervisor_3366.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_status_test_failed_tag.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_status_usage_limit.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_sync_comments_873.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_test_plan.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_track.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_tui_update.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cli_wait.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_client.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_client_base_install.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_client_config_cache_atomic_3052.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_client_resource_migration_1946.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_commands_common.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_comment_cruft.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_comments.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_completion_summary.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_config.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_config_acceptance.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_config_audit.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_config_drift_check.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_config_effective.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_config_prereview_gate.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_config_pricing.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_config_usage_gate.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_confirm_test.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_conflict_fix.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_conflict_fix_semantic.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_coord_log_daemon_fallback_2547.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_coord_test.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_coord_test_runner_acceptance_toolchain_2936.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_coord_test_runner_baseline.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_coord_test_runner_populated_home.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_coord_test_runner_routing.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_coord_test_runner_toolchain.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_coord_test_runner_venv_setup.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_coord_uat.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_coord_web_sse_restart_live.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_coordinator_machine.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_cross_platform_imports.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_dao.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_dashboard.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_dashboard_api.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_dashboard_fixture.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_dashboard_reports.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_dashboard_server.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_dashboard_terminal.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_dashboard_terminal_live.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_db.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_dead_end.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_deploy_coord_db_backup.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_deploy_coord_web_dist.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_deploy_coord_web_rollback.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_deploy_db_backup_unit.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_deploy_drive_queue_unit.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_deploy_failure_notify_unit.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_deploy_manifest.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_deploy_notify_unit.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_deploy_units_lane.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_deploy_web_unit.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_deprecation_telemetry.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_deps.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_diagnose.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_dirlink.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_dispatch.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_dispatch_liveness.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_dispatch_target_validation.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_dispatch_workers.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_dist_name.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_done_housekeeping.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_dr_azure_scripts.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_dr_promote.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_dr_verify.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_drive.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_drive_machine_fault.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_drive_queue_blocked_rendering.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_drive_queue_launch_argv.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_drive_queue_max_parallel_config.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_drive_queue_max_parallel_per_repo_config.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_drive_queue_roll_pending.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_drive_queue_self_cordon_escalation.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_drive_sessions_snapshot.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_drive_state.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_drive_tmux.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_entry_truth.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_epic_up_capability_detection.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_epic_up_image_provenance.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_errors.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_events.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_failure_class.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_failure_classifier.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_filelock.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_fix_escalation_classifier.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_fix_of_force_override.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_fleet_config_health.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_fleet_health_probes.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_fleet_health_snapshot.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_fleet_watchdog.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_forge_availability.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_freshness.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_gate_a.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_gate_b.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_gate_snapshot_staleness.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_gates.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_gather_fleet_tmux_sessions.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_gen_mock_index.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_generated_rust_fixture.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_generated_rust_requests.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_generated_types_fixture.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_github_ops.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_github_throttle.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_goal.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_graph_health.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_graph_selfheal_absent_2237.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_gtk_native_driver.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_handoff.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_health_checks.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_health_cli.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_health_cli_graph.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_health_config.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_health_context.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_health_coord_tui_ci_pin.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_health_coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_health_deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_health_fix.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_health_incident_regression.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_health_issues_sync_staleness.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_health_pr_churn.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_health_pypi.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_health_registry.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_health_release_cordon_probe.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_health_sustained_cpu.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_health_timer_active.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_health_toolchain.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_health_unit_drift.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_health_unit_enablement.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_health_wedged_drive_queue.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_hooks.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_housekeeping.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_human_attended_437.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_init.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_install_agent_capabilities_3515.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_install_agent_venv_2911.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_install_agent_wsl_bridge_3515.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_integration.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_interactive.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_interactive_briefing_echo.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_interactive_pane_log_2541.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_interactive_prefill_state.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_interactive_session_relaunch.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_interactive_test_verdict_backstop.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_interactive_token_attribution.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_interactive_worktree.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_invariant_alarms.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_issue_store_seam.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_issues_sync_status.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_key_spec.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_liveness_auditor.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_liveness_notify.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_lock_contention_ratchet.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_mac_native_driver.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_machine_fault.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_machine_metrics.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_machine_onboard.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_machine_pause.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_machine_stats.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_merge_queue.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_merge_verification.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_merge_verify.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_milestone_chat.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_milestone_gate.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_milestone_order.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_milestone_seam.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_mock_author.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_model_tiering.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_models.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_models_config_labels.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_models_pinned_1650.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_native_fs_wait.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_native_pixels.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_needs_attention.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_network.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_new_issue_chat.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_next_release_tag.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_nightly_runner.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_nightly_smoke.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_nightly_status.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_nightly_store.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_no_eligible_host_3600.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_node_shim.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_notifier_baseline.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_notifier_cli.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_notifier_config.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_notifier_drive_seam.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_notifier_isolation.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_notifier_predicate.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_notifier_quiet_hours.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_notifier_service.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_notify_drain.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_openapi.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_operational_defaults.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_overlap_fence.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_overlap_predict.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_packaged_deploy_units.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_parentage.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_paste_landed.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_pause_store_guard_recursion_3789.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_phantom_heal_venv_independence_2570.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_pipeline.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_plain_runner_smoke_3673.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_plan_followup_approve_plan_command.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_plan_followup_pr_command.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_plan_followup_review_command.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_plan_only.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_plan_parser.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_platform_paths.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_portal_bridge.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_portal_config.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_portal_store.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_portal_sync.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_pr_body_lint.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_preflight_size.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_prereqs.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_prereview_gate.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_production_db_guard.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_progress.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_provider_seam.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_providers.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_providers_config_labels.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_providers_pty.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_provision_core.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_provision_machine.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_py_rust_mirror_inventory.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_queue_diagnose.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_quiet_hours.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_quiet_hours_store_2146.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_reap_merged_sessions.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_reap_stale_interactive_tick.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_reconcile.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_reconcile_branch.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_reconcile_completions.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_reconcile_late_agent_reports_2547.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_reconcile_merges.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_reconcile_no_agent_record.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_reconcile_tick.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_reconcile_usage_limit_done.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_refine_chat.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_release_cordon_2101.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_release_cordon_deadlock_2240.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_release_cordon_drain_stall_3336.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_release_cordon_stuck_2490.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_release_gate.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_release_propagate.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_release_propagate_threshold.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_release_roll_between_legs_2854.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_release_roll_window_handoff.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_release_unified_1242.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_release_verify.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_release_window.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_remote_auto_prune.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_remote_interactive_reaper.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_repo_add.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_repo_dormancy.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_repo_edit_2220.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_repo_graph_fleet_2237.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_repo_max_parallel_3423.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_repo_onboard_2220.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_report_public_export.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_report_result_push.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_reports.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_restart_cmd.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_retry.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_retry_advisory_1606.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_retry_escalation_classify_3360.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_retry_type_1636.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_revalidate.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_review.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_review_end_review_without_verdict.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_review_parse_failure_diagnostic.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_review_reaffirm.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_review_state.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_review_verdict_backstop.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_review_verdict_override_audit.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_review_verdict_relay.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_review_zero_commits.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_scoped_review_wiring.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_scorecard.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_self_health.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_serve.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_serve_app.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_serve_app_board_trim.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_serve_rest_routes.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_session.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_slice_issue_attribution.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_smoke.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_smoke_fanout_manifest_3333.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_smoke_live_checkout_restore.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_smoke_plain_runner_3673.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_smoke_workflow.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_spend_ceiling.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_spend_ceiling_coordinator.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_split.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_split_work.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_sql_dialect.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_sqlite_connect_ratchet.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_stage_projection.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_stale_busy_reviewer_697.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_stalled_pipeline.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_state.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_state_review_findings_daemon.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_status_fleet_footer.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_stop_1567.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_store_contract.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_store_migrate.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_stuck.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_stuck_test_state_watchdog_2803.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_terminal_command.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_test_author.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_test_chat.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_test_orchestrator.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_test_report.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_test_verdict_parsing.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_test_verdict_transcript_floor.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_text_io_encoding_audit.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_thin_client_board_audit.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_thin_client_config_load_1080.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_thin_client_daemon_routing_906.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_throwaway_vm.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_tmux_host.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_tmux_session.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_transcript_floor.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_tui_pty_driver.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_uat_checks.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_upstream_gaps.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_usage.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_usage_limits.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_usage_rollup.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_venv_live_install_2121.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_version_single_source.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_watch.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_win_native_bridge.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_win_native_driver.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_worker_env_venv_isolation.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_worker_events.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_worker_image_pin_sync.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_worker_safety.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_worker_test_scoping.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_worktree.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_worktree_rmtree_chokepoint.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/test_write_parity.py +0 -0
- {code_coordinator-0.5.757 → code_coordinator-0.5.759}/tests/write_parity.py +0 -0
|
@@ -4521,6 +4521,22 @@ only re-propose the same split. Omit the marker entirely for every other \
|
|
|
4521
4521
|
or a false/unmet premise that is NOT "already done") — those still read \
|
|
4522
4522
|
off your prose exactly as before.
|
|
4523
4523
|
|
|
4524
|
+
With `needs-decomposition`, also put the split in your final message as \
|
|
4525
|
+
this block (one `## Child N:` per proposed issue, each with its own \
|
|
4526
|
+
`## Files` list); the coordinator files the children and supersedes this \
|
|
4527
|
+
issue automatically when it is well-formed:
|
|
4528
|
+
|
|
4529
|
+
SIZE_TRIAGE_VERDICT: split
|
|
4530
|
+
## Child 1: <title>
|
|
4531
|
+
<one paragraph of scope>
|
|
4532
|
+
|
|
4533
|
+
## Files
|
|
4534
|
+
- path/a.py
|
|
4535
|
+
|
|
4536
|
+
## Child 2: <title>
|
|
4537
|
+
...
|
|
4538
|
+
END_SIZE_TRIAGE
|
|
4539
|
+
|
|
4524
4540
|
Progress reporting:
|
|
4525
4541
|
- After each significant step (first build, test run, approach change), \
|
|
4526
4542
|
output a status line in exactly this format:
|
|
@@ -93,6 +93,8 @@ from coord.drive_queue import (
|
|
|
93
93
|
find_cycle,
|
|
94
94
|
fired_holds,
|
|
95
95
|
flag_shadows_config_warning,
|
|
96
|
+
format_coarse_duration,
|
|
97
|
+
is_benign_queue_alert_command,
|
|
96
98
|
is_dispatch_failure_reason,
|
|
97
99
|
is_fix_round_ceiling_blocked,
|
|
98
100
|
is_merge_gate_block_reason,
|
|
@@ -2069,15 +2071,12 @@ def _reason_age_suffix(entry: QueueEntry, now: float) -> str:
|
|
|
2069
2071
|
return f" ({_age_str(max(0.0, now - entry.reason_at))} ago)"
|
|
2070
2072
|
|
|
2071
2073
|
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
2077
|
-
|
|
2078
|
-
if delta_seconds < 86400:
|
|
2079
|
-
return f"{int(delta_seconds // 3600)}h"
|
|
2080
|
-
return f"{int(delta_seconds // 86400)}d"
|
|
2074
|
+
# #3983: `coord.drive_queue.format_coarse_duration` — imported under this
|
|
2075
|
+
# module's own pre-existing name so every call site below (and the
|
|
2076
|
+
# `describe_unreachable_wait`-driven alert text) renders "how long has this
|
|
2077
|
+
# held" with the identical single-unit shape, never a second formatter that
|
|
2078
|
+
# could drift from it.
|
|
2079
|
+
_age_str = format_coarse_duration
|
|
2081
2080
|
|
|
2082
2081
|
|
|
2083
2082
|
def _hold_lines(entry: QueueEntry) -> list[str]:
|
|
@@ -2566,7 +2565,7 @@ def _unreachable_wait_alert_dict(rows: list[Mapping[str, Any]]) -> dict | None:
|
|
|
2566
2565
|
waits = detect_unreachable_waits(entries_from_rows(rows))
|
|
2567
2566
|
if not waits:
|
|
2568
2567
|
return None
|
|
2569
|
-
synthetic = unreachable_wait_alert(waits)
|
|
2568
|
+
synthetic = unreachable_wait_alert(waits, now=time.time())
|
|
2570
2569
|
return {
|
|
2571
2570
|
"reason": synthetic.reason,
|
|
2572
2571
|
"gate_readings": " | ".join(synthetic.details),
|
|
@@ -2583,13 +2582,32 @@ def drive_queue_status(output_json: bool, config_path: Path) -> None:
|
|
|
2583
2582
|
|
|
2584
2583
|
rows = list_drive_queue()
|
|
2585
2584
|
counts = _counts(rows)
|
|
2586
|
-
# #2944: a tick-raised alert (a HELD gate,
|
|
2585
|
+
# #2944: a tick-raised alert (a HELD gate, a real BLOCKED-entry remedy)
|
|
2587
2586
|
# takes priority when one exists — it is fresher and, on a busy queue,
|
|
2588
2587
|
# `_unreachable_wait_alert_dict` would silently win-and-hide it every
|
|
2589
|
-
# time a real, actionable alert IS present.
|
|
2590
|
-
#
|
|
2591
|
-
#
|
|
2592
|
-
|
|
2588
|
+
# time a real, actionable alert IS present.
|
|
2589
|
+
#
|
|
2590
|
+
# #3983: EXCEPT the one tick-raised shape that is itself a sentinel for
|
|
2591
|
+
# "nothing is actually broken" — `QUEUE_ALERT_NO_REMEDY_COMMAND` (step
|
|
2592
|
+
# 4's "nothing eligible to launch" write when every stalled entry is a
|
|
2593
|
+
# benign deferral, never an actual block). The quadraui#2341 incident: a
|
|
2594
|
+
# root parked `needs_decomposition` with 13 `waiting` dependents chained
|
|
2595
|
+
# on it via `after=` never reaches `blocked` at all — `_resolve_prereqs`
|
|
2596
|
+
# treats a `parked` pre-req as an ordinary unsatisfied deferral, not the
|
|
2597
|
+
# unsatisfiable-and-escalate shape it gives a `blocked`/`failed` one — so
|
|
2598
|
+
# EVERY tick re-wrote this exact no-remedy sentinel over the root's own
|
|
2599
|
+
# #2944/#2978 finding, and `status` never got a chance to name it. Same
|
|
2600
|
+
# benign-sentinel check `coord.notifier.collect.halted_drives` already
|
|
2601
|
+
# uses to keep this shape out of the pager — one question ("is this
|
|
2602
|
+
# tick-raised alert itself the thing, or just noise?"), one answer,
|
|
2603
|
+
# shared by both callers.
|
|
2604
|
+
tick_alert = _queue_alert()
|
|
2605
|
+
if tick_alert is not None and not is_benign_queue_alert_command(
|
|
2606
|
+
tick_alert.get("proposed_command")
|
|
2607
|
+
):
|
|
2608
|
+
alert = tick_alert
|
|
2609
|
+
else:
|
|
2610
|
+
alert = _unreachable_wait_alert_dict(rows) or tick_alert
|
|
2593
2611
|
# #3413: `alert["created_at"]` (present only for a tick-raised record —
|
|
2594
2612
|
# `_unreachable_wait_alert_dict` is computed fresh on every call and
|
|
2595
2613
|
# carries no timestamp of its own) now survives an unbroken same-reason
|
|
@@ -1319,9 +1319,13 @@ def file_and_queue_split_proposal(
|
|
|
1319
1319
|
proposal: "SplitProposal",
|
|
1320
1320
|
verification: "SplitVerification",
|
|
1321
1321
|
repo: "Repo",
|
|
1322
|
+
origin: str = "preflight size-triage review",
|
|
1322
1323
|
) -> int:
|
|
1323
1324
|
"""File *proposal*'s chunks as a real epic + children and queue them.
|
|
1324
1325
|
|
|
1326
|
+
*origin* names what proposed the split; it is quoted in the epic body
|
|
1327
|
+
and in the comment closing the superseded original.
|
|
1328
|
+
|
|
1325
1329
|
Called only after :func:`coord.preflight_size.verify_split_proposal` has
|
|
1326
1330
|
returned ``ok=True`` for *verification* — this function trusts
|
|
1327
1331
|
``verification.work_order`` and ``verification.epic_body`` without
|
|
@@ -1365,9 +1369,8 @@ def file_and_queue_split_proposal(
|
|
|
1365
1369
|
|
|
1366
1370
|
epic_body = (
|
|
1367
1371
|
f"{proposal.rationale}\n\n"
|
|
1368
|
-
f"Split from #{proposal.issue_number} by the
|
|
1369
|
-
"
|
|
1370
|
-
"overlap order."
|
|
1372
|
+
f"Split from #{proposal.issue_number} by the {origin}. Children "
|
|
1373
|
+
"are filed below and queued in overlap order."
|
|
1371
1374
|
)
|
|
1372
1375
|
epic = github_ops.create_issue(
|
|
1373
1376
|
repo.github,
|
|
@@ -1419,8 +1422,7 @@ def file_and_queue_split_proposal(
|
|
|
1419
1422
|
proposal.issue_number,
|
|
1420
1423
|
comment=(
|
|
1421
1424
|
f"Superseded by #{epic_number} — split into "
|
|
1422
|
-
f"{len(proposal.chunks)} child issue(s) per the
|
|
1423
|
-
"review."
|
|
1425
|
+
f"{len(proposal.chunks)} child issue(s) per the {origin}."
|
|
1424
1426
|
),
|
|
1425
1427
|
force=True,
|
|
1426
1428
|
)
|
|
@@ -1438,6 +1440,105 @@ def file_and_queue_split_proposal(
|
|
|
1438
1440
|
return epic_number
|
|
1439
1441
|
|
|
1440
1442
|
|
|
1443
|
+
#: The ``origin`` text :func:`auto_split_needs_decomposition` passes to
|
|
1444
|
+
#: :func:`file_and_queue_split_proposal`.
|
|
1445
|
+
NEEDS_DECOMPOSITION_SPLIT_ORIGIN = "work leg's needs-decomposition split proposal"
|
|
1446
|
+
|
|
1447
|
+
|
|
1448
|
+
def auto_split_needs_decomposition(
|
|
1449
|
+
final_message: str | None,
|
|
1450
|
+
*,
|
|
1451
|
+
config: "Config",
|
|
1452
|
+
repo_name: str,
|
|
1453
|
+
issue_number: int,
|
|
1454
|
+
) -> int | None:
|
|
1455
|
+
"""File the split a ``needs-decomposition`` work leg proposed, if it
|
|
1456
|
+
proposed one in the machine-readable size-triage format.
|
|
1457
|
+
|
|
1458
|
+
*final_message* is the worker's own final message. The worker states its
|
|
1459
|
+
split as a ``SIZE_TRIAGE_VERDICT: split`` / ``## Child N:`` /
|
|
1460
|
+
``## Files`` / ``END_SIZE_TRIAGE`` block — the same wire format the
|
|
1461
|
+
size-triage agent uses, parsed by :func:`parse_size_triage_response` —
|
|
1462
|
+
and the split then goes through the identical
|
|
1463
|
+
:func:`coord.preflight_size.verify_split_proposal` gate and
|
|
1464
|
+
:func:`file_and_queue_split_proposal` filer a size-triage SPLIT verdict
|
|
1465
|
+
does: an epic plus chained children are filed and queued, and the
|
|
1466
|
+
original is closed as superseded. The original's own (parked) drive-
|
|
1467
|
+
queue row is then removed, since the issue it tracks is closed.
|
|
1468
|
+
|
|
1469
|
+
Returns the new epic's issue number, or ``None`` when nothing was filed:
|
|
1470
|
+
the repo has not opted into the preflight decomposition guard
|
|
1471
|
+
(:meth:`coord.config.Config.preflight_guard_enabled` — the same opt-in
|
|
1472
|
+
that governs every other automatic split), the message carries no
|
|
1473
|
+
complete split block (prose-only proposals stay with the coordinator,
|
|
1474
|
+
exactly as before), the original issue is already closed (a replayed
|
|
1475
|
+
transition, or someone already decomposed it), or the proposal fails the
|
|
1476
|
+
verification gate — a broken epic is never filed. A failure *inside*
|
|
1477
|
+
the filer propagates: by then real issues exist on GitHub.
|
|
1478
|
+
"""
|
|
1479
|
+
text = final_message or ""
|
|
1480
|
+
if not _SIZE_TRIAGE_VERDICT_RE.search(text):
|
|
1481
|
+
return None
|
|
1482
|
+
repo = config.repo(repo_name)
|
|
1483
|
+
if repo is None or not config.preflight_guard_enabled(repo_name):
|
|
1484
|
+
return None
|
|
1485
|
+
|
|
1486
|
+
from coord import github_ops
|
|
1487
|
+
from coord.preflight_size import verify_split_proposal
|
|
1488
|
+
|
|
1489
|
+
issue_data = github_ops.get_issue(repo.github, issue_number)
|
|
1490
|
+
if str(issue_data.get("state") or "").upper() == "CLOSED":
|
|
1491
|
+
return None
|
|
1492
|
+
issue_title = issue_data.get("title") or f"issue #{issue_number}"
|
|
1493
|
+
|
|
1494
|
+
try:
|
|
1495
|
+
proposal = parse_size_triage_response(
|
|
1496
|
+
text,
|
|
1497
|
+
repo_name=repo_name,
|
|
1498
|
+
issue_number=issue_number,
|
|
1499
|
+
issue_title=issue_title,
|
|
1500
|
+
)
|
|
1501
|
+
except SizeTriageError as exc:
|
|
1502
|
+
_log.info(
|
|
1503
|
+
"auto_split_needs_decomposition: %s#%s split block unparseable: %s",
|
|
1504
|
+
repo_name, issue_number, exc,
|
|
1505
|
+
)
|
|
1506
|
+
return None
|
|
1507
|
+
if proposal is None:
|
|
1508
|
+
return None
|
|
1509
|
+
proposal.rationale = (
|
|
1510
|
+
"a work leg concluded this issue needs decomposition and proposed "
|
|
1511
|
+
"this split"
|
|
1512
|
+
)
|
|
1513
|
+
|
|
1514
|
+
verification = verify_split_proposal(proposal)
|
|
1515
|
+
if not verification.ok:
|
|
1516
|
+
_log.info(
|
|
1517
|
+
"auto_split_needs_decomposition: %s#%s split rejected: %s",
|
|
1518
|
+
repo_name, issue_number, verification.reason,
|
|
1519
|
+
)
|
|
1520
|
+
return None
|
|
1521
|
+
|
|
1522
|
+
epic_number = file_and_queue_split_proposal(
|
|
1523
|
+
proposal=proposal,
|
|
1524
|
+
verification=verification,
|
|
1525
|
+
repo=repo,
|
|
1526
|
+
origin=NEEDS_DECOMPOSITION_SPLIT_ORIGIN,
|
|
1527
|
+
)
|
|
1528
|
+
|
|
1529
|
+
from coord.state import dequeue_drive_queue
|
|
1530
|
+
|
|
1531
|
+
try:
|
|
1532
|
+
dequeue_drive_queue(repo_name, issue_number, operator=False)
|
|
1533
|
+
except Exception as exc: # noqa: BLE001
|
|
1534
|
+
_log.warning(
|
|
1535
|
+
"auto_split_needs_decomposition: filed epic #%s but could not "
|
|
1536
|
+
"dequeue superseded %s#%s: %s",
|
|
1537
|
+
epic_number, repo_name, issue_number, exc,
|
|
1538
|
+
)
|
|
1539
|
+
return epic_number
|
|
1540
|
+
|
|
1541
|
+
|
|
1441
1542
|
def dispatch_size_triage_review(
|
|
1442
1543
|
*,
|
|
1443
1544
|
repo_cfg: "Repo",
|
|
@@ -1551,6 +1551,20 @@ QUEUE_ALERT_STAGE = "drive-queue"
|
|
|
1551
1551
|
#: change — `coord drive-queue status` still reads the record unchanged.
|
|
1552
1552
|
QUEUE_ALERT_NO_REMEDY_COMMAND = "coord drive-queue list"
|
|
1553
1553
|
|
|
1554
|
+
|
|
1555
|
+
def is_benign_queue_alert_command(command: object) -> bool:
|
|
1556
|
+
"""Is *command* the :data:`QUEUE_ALERT_NO_REMEDY_COMMAND` sentinel?
|
|
1557
|
+
|
|
1558
|
+
One normalization (`str(...).strip()`), shared by `coord drive-queue
|
|
1559
|
+
status` (`coord.commands.drive_queue._queue_alert`'s caller) and the
|
|
1560
|
+
notifier (`coord.notifier.collect.halted_drives`) — before #3983 each
|
|
1561
|
+
wrote its own comparison (one on the raw dict value, the other via
|
|
1562
|
+
`str(...).strip()` plus its own repo/issue check), which happened to
|
|
1563
|
+
agree only because neither had yet drifted; this is the one answer both
|
|
1564
|
+
now ask the identical question of (#2096).
|
|
1565
|
+
"""
|
|
1566
|
+
return str(command or "").strip() == QUEUE_ALERT_NO_REMEDY_COMMAND
|
|
1567
|
+
|
|
1554
1568
|
#: #3413: a DISPLAY hint only — production's `coord-drive-queue.timer` fires
|
|
1555
1569
|
#: every 3 minutes (`OnUnitActiveSec=3min`, `deploy/coord-drive-queue.timer`),
|
|
1556
1570
|
#: not a value this module reads from the deployed unit (there is no seam to
|
|
@@ -4196,6 +4210,16 @@ class UnreachableWait:
|
|
|
4196
4210
|
is accurate even though those dependents themselves never appear in the
|
|
4197
4211
|
result (see the predicate's own docstring for why). `0` for an entry
|
|
4198
4212
|
nothing is chained behind.
|
|
4213
|
+
|
|
4214
|
+
`cause` (#3983) is :func:`classify_unreachable_wait_cause`'s verdict —
|
|
4215
|
+
one of :data:`UNREACHABLE_WAIT_CAUSE_NEEDS_DECOMPOSITION`/
|
|
4216
|
+
`_PREMISE_REFUSAL`/`_UPSTREAM_GAP_PARK` for a terminal park, or
|
|
4217
|
+
`_DISPATCH_FAILURE`/`_NEVER_DISPATCHED` for the two shapes
|
|
4218
|
+
:func:`is_unreachable_wait_shape` itself distinguishes. `reason_at` is
|
|
4219
|
+
`entry.reason_at` carried straight through — the wall-clock stamp of
|
|
4220
|
+
when `last_reason` (hence this wait) was written, so a renderer can
|
|
4221
|
+
show how long the row has sat this way instead of a bare, undated
|
|
4222
|
+
reason (#2133's rule, applied here).
|
|
4199
4223
|
"""
|
|
4200
4224
|
|
|
4201
4225
|
key: str
|
|
@@ -4203,6 +4227,8 @@ class UnreachableWait:
|
|
|
4203
4227
|
deferrals: int
|
|
4204
4228
|
last_reason: str
|
|
4205
4229
|
dependents: int = 0
|
|
4230
|
+
cause: str = ""
|
|
4231
|
+
reason_at: float | None = None
|
|
4206
4232
|
|
|
4207
4233
|
|
|
4208
4234
|
def is_unreachable_wait_shape(entry: QueueEntry) -> bool:
|
|
@@ -4273,6 +4299,135 @@ def is_unreachable_wait_shape(entry: QueueEntry) -> bool:
|
|
|
4273
4299
|
return entry.state == STATE_BLOCKED and _is_dispatch_failure_reason(entry.last_reason)
|
|
4274
4300
|
|
|
4275
4301
|
|
|
4302
|
+
# #3983: the cause label `classify_unreachable_wait_cause` assigns a row
|
|
4303
|
+
# matching `is_unreachable_wait_shape`. The three terminal-park values are
|
|
4304
|
+
# the SAME strings `coord.queue_diagnose` names
|
|
4305
|
+
# `CAUSE_NEEDS_DECOMPOSITION`/`CAUSE_PREMISE_REFUSAL`/`CAUSE_UPSTREAM_GAP_PARK`
|
|
4306
|
+
# — deliberately not imported from there: `coord.queue_diagnose` imports
|
|
4307
|
+
# `QueueEntry`/`is_unreachable_wait_shape` FROM this module, so importing its
|
|
4308
|
+
# constants back here would cycle. Keeping the literal text identical is
|
|
4309
|
+
# what lets a reader compare `coord drive-queue status`'s alert and `coord
|
|
4310
|
+
# drive-queue diagnose`'s verdict for the same row without translating
|
|
4311
|
+
# between two vocabularies for the same finding (#2096).
|
|
4312
|
+
UNREACHABLE_WAIT_CAUSE_NEEDS_DECOMPOSITION = "needs-decomposition"
|
|
4313
|
+
UNREACHABLE_WAIT_CAUSE_PREMISE_REFUSAL = "premise-refusal"
|
|
4314
|
+
UNREACHABLE_WAIT_CAUSE_UPSTREAM_GAP_PARK = "upstream-gap-park"
|
|
4315
|
+
#: `attempts > 0`, exhausted the retry budget with no #2273 dispatch-layer
|
|
4316
|
+
#: assignment ever created — the second `is_unreachable_wait_shape` branch.
|
|
4317
|
+
UNREACHABLE_WAIT_CAUSE_DISPATCH_FAILURE = "dispatch-failure"
|
|
4318
|
+
#: `attempts == 0`, no terminal-park marker — the original #2944 shape:
|
|
4319
|
+
#: nothing has ever tried to dispatch this row at all.
|
|
4320
|
+
UNREACHABLE_WAIT_CAUSE_NEVER_DISPATCHED = "never-dispatched"
|
|
4321
|
+
|
|
4322
|
+
#: The three causes a worker/park-writer already asserted are terminal —
|
|
4323
|
+
#: "no fix-it leg or relaunch can resolve this" is the row's OWN last_reason
|
|
4324
|
+
#: text, not a guess this module is making. See
|
|
4325
|
+
#: :func:`unreachable_wait_remedy_command` for why that rules out the
|
|
4326
|
+
#: blanket `remove && add` requeue for exactly these three.
|
|
4327
|
+
_UNREACHABLE_WAIT_TERMINAL_PARK_CAUSES = frozenset(
|
|
4328
|
+
{
|
|
4329
|
+
UNREACHABLE_WAIT_CAUSE_NEEDS_DECOMPOSITION,
|
|
4330
|
+
UNREACHABLE_WAIT_CAUSE_PREMISE_REFUSAL,
|
|
4331
|
+
UNREACHABLE_WAIT_CAUSE_UPSTREAM_GAP_PARK,
|
|
4332
|
+
}
|
|
4333
|
+
)
|
|
4334
|
+
|
|
4335
|
+
_UNREACHABLE_WAIT_CAUSE_LABEL: dict[str, str] = {
|
|
4336
|
+
UNREACHABLE_WAIT_CAUSE_NEEDS_DECOMPOSITION: "needs-decomposition park (#3931)",
|
|
4337
|
+
UNREACHABLE_WAIT_CAUSE_PREMISE_REFUSAL: "premise-refusal park (#3164)",
|
|
4338
|
+
UNREACHABLE_WAIT_CAUSE_UPSTREAM_GAP_PARK: "upstream-gap park (#3977)",
|
|
4339
|
+
UNREACHABLE_WAIT_CAUSE_DISPATCH_FAILURE: "exhausted dispatch-layer death (#2273)",
|
|
4340
|
+
UNREACHABLE_WAIT_CAUSE_NEVER_DISPATCHED: "never dispatched",
|
|
4341
|
+
}
|
|
4342
|
+
|
|
4343
|
+
#: The manual next-step for a cause no blind command can fix — embedded
|
|
4344
|
+
#: straight into :func:`describe_unreachable_wait` so the reason text stays
|
|
4345
|
+
#: self-contained even where :func:`unreachable_wait_remedy_command` can only
|
|
4346
|
+
#: offer a read-only fallback (#3983).
|
|
4347
|
+
_UNREACHABLE_WAIT_CAUSE_MANUAL_NOTE: dict[str, str] = {
|
|
4348
|
+
UNREACHABLE_WAIT_CAUSE_NEEDS_DECOMPOSITION: (
|
|
4349
|
+
"not fixable by any fix-it leg or relaunch — decompose the issue "
|
|
4350
|
+
"into the proposed sub-issues and clear the row by hand"
|
|
4351
|
+
),
|
|
4352
|
+
UNREACHABLE_WAIT_CAUSE_PREMISE_REFUSAL: (
|
|
4353
|
+
"not fixable by a requeue alone — run `coord drive-queue "
|
|
4354
|
+
"clear-refusal` once the missing prerequisite is confirmed, THEN "
|
|
4355
|
+
"`coord drive-queue remove` + `add`"
|
|
4356
|
+
),
|
|
4357
|
+
UNREACHABLE_WAIT_CAUSE_UPSTREAM_GAP_PARK: (
|
|
4358
|
+
"not fixable by any fix-it leg or relaunch — clear the row by hand "
|
|
4359
|
+
"once the release lands or the gap is confirmed"
|
|
4360
|
+
),
|
|
4361
|
+
}
|
|
4362
|
+
|
|
4363
|
+
|
|
4364
|
+
def classify_unreachable_wait_cause(entry: QueueEntry) -> str:
|
|
4365
|
+
"""Which `is_unreachable_wait_shape` branch explains *entry*'s wedge.
|
|
4366
|
+
|
|
4367
|
+
Read straight off `entry.last_reason` via the same marker predicates
|
|
4368
|
+
`coord.drive_queue`'s own parked pre-pass and
|
|
4369
|
+
`coord.queue_diagnose._rule_terminal_park` already trust for this text
|
|
4370
|
+
— never a live probe, so this is exactly as cheap as the shape check
|
|
4371
|
+
itself (#2096: one question, one answer, asked the same way everywhere).
|
|
4372
|
+
Callers are expected to gate on :func:`is_unreachable_wait_shape` first;
|
|
4373
|
+
called on a row that fails that shape, this still returns a value
|
|
4374
|
+
rather than raising (the two dispatch-shaped labels degrade safely for
|
|
4375
|
+
an unmatched row — see :func:`unreachable_wait_remedy_command`, which
|
|
4376
|
+
treats an unrecognised cause the same as "never dispatched").
|
|
4377
|
+
"""
|
|
4378
|
+
reason = entry.last_reason
|
|
4379
|
+
if is_premise_refusal_reason(reason):
|
|
4380
|
+
return UNREACHABLE_WAIT_CAUSE_PREMISE_REFUSAL
|
|
4381
|
+
if is_needs_decomposition_reason(reason):
|
|
4382
|
+
return UNREACHABLE_WAIT_CAUSE_NEEDS_DECOMPOSITION
|
|
4383
|
+
if is_upstream_gap_park_reason(reason):
|
|
4384
|
+
return UNREACHABLE_WAIT_CAUSE_UPSTREAM_GAP_PARK
|
|
4385
|
+
if entry.attempts and _is_dispatch_failure_reason(reason):
|
|
4386
|
+
return UNREACHABLE_WAIT_CAUSE_DISPATCH_FAILURE
|
|
4387
|
+
return UNREACHABLE_WAIT_CAUSE_NEVER_DISPATCHED
|
|
4388
|
+
|
|
4389
|
+
|
|
4390
|
+
def unreachable_wait_remedy_command(w: UnreachableWait) -> str:
|
|
4391
|
+
"""The one-line fix for *w*, picked by `.cause` (#3983) — never the
|
|
4392
|
+
blanket `coord drive-queue remove && add` requeue for a cause the row's
|
|
4393
|
+
OWN last_reason already asserts no relaunch can resolve.
|
|
4394
|
+
|
|
4395
|
+
Mirrors :func:`merge_gate_remedy_command`'s #3016 rule for the same
|
|
4396
|
+
reason: a wrong "run this" is worse than no recommendation, so a cause
|
|
4397
|
+
with no blind-safe command falls back to the identical read-only
|
|
4398
|
+
inspect pattern (`coord drive-queue list`, scoped to the entry's repo)
|
|
4399
|
+
rather than ever proposing `remove`+`add` for a needs-decomposition,
|
|
4400
|
+
premise-refusal or upstream-gap park — relaunching one of those just
|
|
4401
|
+
re-runs the drive straight back into the identical park (the #3922
|
|
4402
|
+
needs-decomposition incident this guards against).
|
|
4403
|
+
"""
|
|
4404
|
+
parsed = parse_key(w.key)
|
|
4405
|
+
repo, issue = parsed if parsed is not None else ("", 0)
|
|
4406
|
+
if w.cause in _UNREACHABLE_WAIT_TERMINAL_PARK_CAUSES:
|
|
4407
|
+
return f"coord drive-queue list --repo {repo}"
|
|
4408
|
+
return (
|
|
4409
|
+
f"coord drive-queue remove {repo} {issue} && "
|
|
4410
|
+
f"coord drive-queue add {repo} {issue}"
|
|
4411
|
+
)
|
|
4412
|
+
|
|
4413
|
+
|
|
4414
|
+
def format_coarse_duration(delta_seconds: float) -> str:
|
|
4415
|
+
"""``42s`` / ``3h`` / ``5d`` — coarse, single-unit (#2133's ask).
|
|
4416
|
+
|
|
4417
|
+
Shared by :func:`describe_unreachable_wait` and
|
|
4418
|
+
`coord.commands.drive_queue`'s own age renderings (imported from here
|
|
4419
|
+
rather than re-implemented) so "how long has this held" always reads
|
|
4420
|
+
the same shape everywhere it is shown.
|
|
4421
|
+
"""
|
|
4422
|
+
if delta_seconds < 60:
|
|
4423
|
+
return f"{int(delta_seconds)}s"
|
|
4424
|
+
if delta_seconds < 3600:
|
|
4425
|
+
return f"{int(delta_seconds // 60)}m"
|
|
4426
|
+
if delta_seconds < 86400:
|
|
4427
|
+
return f"{int(delta_seconds // 3600)}h"
|
|
4428
|
+
return f"{int(delta_seconds // 86400)}d"
|
|
4429
|
+
|
|
4430
|
+
|
|
4276
4431
|
def is_unreachable_wait(
|
|
4277
4432
|
entry: QueueEntry,
|
|
4278
4433
|
*,
|
|
@@ -4327,21 +4482,74 @@ def detect_unreachable_waits(
|
|
|
4327
4482
|
deferrals=e.deferrals,
|
|
4328
4483
|
last_reason=e.last_reason,
|
|
4329
4484
|
dependents=dependents_of.get(e.key, 0),
|
|
4485
|
+
cause=classify_unreachable_wait_cause(e),
|
|
4486
|
+
reason_at=e.reason_at,
|
|
4330
4487
|
)
|
|
4331
4488
|
)
|
|
4332
4489
|
return waits
|
|
4333
4490
|
|
|
4334
4491
|
|
|
4335
|
-
def
|
|
4492
|
+
def describe_unreachable_wait(w: UnreachableWait, *, now: float | None = None) -> str:
|
|
4493
|
+
"""Render one :class:`UnreachableWait` — the entry, its cause (#3983),
|
|
4494
|
+
how long it has sat this way, and (#2978) its dependent count when
|
|
4495
|
+
non-zero, naming WHY those dependents need no remedy of their own (they
|
|
4496
|
+
self-heal on #2756 the moment the root clears, so a reader must not
|
|
4497
|
+
read this as "fix these too").
|
|
4498
|
+
|
|
4499
|
+
*now* is the caller's wall clock: omitted (the default), the age clause
|
|
4500
|
+
is left out rather than guessed — the same degrade `_reason_age_suffix`
|
|
4501
|
+
uses for a row with no `reason_at` at all. Every live caller has a
|
|
4502
|
+
clock available (`time.time()` for the CLI/notifier, `ctx.now` for the
|
|
4503
|
+
health probe) and is expected to pass it; only a clockless test exercises
|
|
4504
|
+
the bare form.
|
|
4505
|
+
|
|
4506
|
+
One rendering, shared by :func:`unreachable_wait_alert` (the `coord
|
|
4507
|
+
drive-queue status` `alert:` line), `coord doctor`'s WARN sample
|
|
4508
|
+
(:mod:`coord.health.checks.wedged_drive_queue`) and (#3983)
|
|
4509
|
+
:mod:`coord.notifier.collect`'s own per-root ``HaltedDrive`` reason —
|
|
4510
|
+
so the CLI, the health probe and the pager phrase the identical finding
|
|
4511
|
+
identically rather than drifting apart (#2096).
|
|
4512
|
+
"""
|
|
4513
|
+
age = ""
|
|
4514
|
+
if now is not None and w.reason_at is not None:
|
|
4515
|
+
age = f", stuck {format_coarse_duration(max(0.0, now - w.reason_at))}"
|
|
4516
|
+
cause_label = _UNREACHABLE_WAIT_CAUSE_LABEL.get(w.cause, w.cause or "unknown cause")
|
|
4517
|
+
base = f"{w.key} ({w.state}, {cause_label}, {w.deferrals} deferrals{age})"
|
|
4518
|
+
notes: list[str] = []
|
|
4519
|
+
manual_note = _UNREACHABLE_WAIT_CAUSE_MANUAL_NOTE.get(w.cause)
|
|
4520
|
+
if manual_note:
|
|
4521
|
+
notes.append(manual_note)
|
|
4522
|
+
if w.dependents:
|
|
4523
|
+
plural = "y" if w.dependents == 1 else "ies"
|
|
4524
|
+
notes.append(
|
|
4525
|
+
f"{w.dependents} dependent entr{plural} chained behind it will "
|
|
4526
|
+
"self-heal automatically once this clears (#2756), no remedy "
|
|
4527
|
+
"needed on them"
|
|
4528
|
+
)
|
|
4529
|
+
if notes:
|
|
4530
|
+
base += " — " + "; ".join(notes)
|
|
4531
|
+
return base
|
|
4532
|
+
|
|
4533
|
+
|
|
4534
|
+
def unreachable_wait_alert(
|
|
4535
|
+
waits: Sequence[UnreachableWait], *, now: float | None = None
|
|
4536
|
+
) -> QueueAlert:
|
|
4336
4537
|
"""The queue-level record #2944's predicate raises, in :func:`_hold_alert`'s
|
|
4337
4538
|
shape — a message naming the entry (or entries), the evidence that
|
|
4338
|
-
qualified it, and the
|
|
4539
|
+
qualified it, and the remedy that actually clears it.
|
|
4540
|
+
|
|
4541
|
+
#3983: the remedy is picked PER ENTRY by :func:`unreachable_wait_remedy_command`
|
|
4542
|
+
— never the blanket ``remove`` + ``add`` for a needs-decomposition/
|
|
4543
|
+
premise-refusal/upstream-gap park, each of which the row's own
|
|
4544
|
+
last_reason already asserts no relaunch can resolve (see that
|
|
4545
|
+
function's docstring). The top-level ``command`` field mirrors the
|
|
4546
|
+
single entry's remedy when there is exactly one; with several entries
|
|
4547
|
+
of possibly different causes there is no one command that is safe for
|
|
4548
|
+
all of them, so it falls back to the same read-only ``coord
|
|
4549
|
+
drive-queue list`` #3016's ``merge_gate_remedy_command`` falls back to
|
|
4550
|
+
— the per-entry remedy is still named in ``details`` and inline in
|
|
4551
|
+
``reason`` via :func:`describe_unreachable_wait`.
|
|
4339
4552
|
|
|
4340
|
-
``add`` alone does not clear ``blocked`` (the queue list already
|
|
4341
|
-
documents this as a footgun elsewhere) — only ``remove`` then ``add``
|
|
4342
|
-
does, so that is the command surfaced here rather than the generic
|
|
4343
|
-
``coord drive-queue list`` other alerts fall back on; naming the wrong
|
|
4344
|
-
remedy on a state this non-obvious defeats the point of alerting at all.
|
|
4345
4553
|
Named INLINE in ``reason`` (not only in ``command``, which
|
|
4346
4554
|
``drive-queue status``'s plain-text rendering never echoes — only its
|
|
4347
4555
|
``gate_readings``/``details`` lines are printed) so the remedy is visible
|
|
@@ -4358,42 +4566,40 @@ def unreachable_wait_alert(waits: Sequence[UnreachableWait]) -> QueueAlert:
|
|
|
4358
4566
|
that were never named — but easy to mis-generalize to "the dependents
|
|
4359
4567
|
too" by an operator who does not already know #2756 self-heals them.
|
|
4360
4568
|
"""
|
|
4361
|
-
|
|
4362
|
-
base = f"{w.key} ({w.state}, {w.deferrals} deferrals)"
|
|
4363
|
-
if w.dependents:
|
|
4364
|
-
plural = "ies" if w.dependents != 1 else "y"
|
|
4365
|
-
base += (
|
|
4366
|
-
f" — {w.dependents} dependent entr{plural} chained behind it "
|
|
4367
|
-
"will self-heal automatically once this clears (#2756), no "
|
|
4368
|
-
"remedy needed on them"
|
|
4369
|
-
)
|
|
4370
|
-
return base
|
|
4371
|
-
|
|
4372
|
-
names = ", ".join(_name(w) for w in waits[:5])
|
|
4569
|
+
names = ", ".join(describe_unreachable_wait(w, now=now) for w in waits[:5])
|
|
4373
4570
|
more = ", ..." if len(waits) > 5 else ""
|
|
4374
4571
|
plural = len(waits) != 1
|
|
4572
|
+
if len(waits) == 1:
|
|
4573
|
+
command = unreachable_wait_remedy_command(waits[0])
|
|
4574
|
+
elif waits and all(
|
|
4575
|
+
w.cause not in _UNREACHABLE_WAIT_TERMINAL_PARK_CAUSES for w in waits
|
|
4576
|
+
):
|
|
4577
|
+
command = (
|
|
4578
|
+
"coord drive-queue remove <repo> <issue> && "
|
|
4579
|
+
"coord drive-queue add <repo> <issue> — for each ROOT entry "
|
|
4580
|
+
"named above; any dependents chained behind it self-heal on "
|
|
4581
|
+
"their own (#2756)"
|
|
4582
|
+
)
|
|
4583
|
+
else:
|
|
4584
|
+
command = "coord drive-queue list # remedy differs per entry — see above"
|
|
4375
4585
|
return QueueAlert(
|
|
4376
4586
|
reason=(
|
|
4377
4587
|
f"{len(waits)} queue entr{'ies' if plural else 'y'} stuck in a "
|
|
4378
4588
|
"guaranteed-false wait — blocked/parked with no branch/PR/"
|
|
4379
4589
|
"merge-queue row any sweep could ever act on (never dispatched, "
|
|
4380
4590
|
"or every dispatch attempt died before creating an assignment); "
|
|
4381
|
-
f"no sweep can ever clear this on its own: {names}{more}. Fix
|
|
4382
|
-
"
|
|
4383
|
-
"
|
|
4384
|
-
"
|
|
4591
|
+
f"no sweep can ever clear this on its own: {names}{more}. Fix "
|
|
4592
|
+
"is named per entry above — a needs-decomposition/"
|
|
4593
|
+
"premise-refusal/upstream-gap park is NEVER cleared by `remove`"
|
|
4594
|
+
"+`add`, only an ordinary never-dispatched/dispatch-failure root is."
|
|
4385
4595
|
),
|
|
4386
4596
|
details=tuple(
|
|
4387
|
-
f"{w.key}: {w.state}, {w.deferrals} deferrals, "
|
|
4388
|
-
f"dependents={w.dependents}, last_reason={w.last_reason!r}"
|
|
4597
|
+
f"{w.key}: {w.state}, cause={w.cause}, {w.deferrals} deferrals, "
|
|
4598
|
+
f"dependents={w.dependents}, last_reason={w.last_reason!r}, "
|
|
4599
|
+
f"fix={unreachable_wait_remedy_command(w)}"
|
|
4389
4600
|
for w in waits
|
|
4390
4601
|
),
|
|
4391
|
-
command=
|
|
4392
|
-
"coord drive-queue remove <repo> <issue> && "
|
|
4393
|
-
"coord drive-queue add <repo> <issue> — for each ROOT entry "
|
|
4394
|
-
"named above; any dependents chained behind it self-heal on "
|
|
4395
|
-
"their own (#2756)"
|
|
4396
|
-
),
|
|
4602
|
+
command=command,
|
|
4397
4603
|
)
|
|
4398
4604
|
|
|
4399
4605
|
|