code-coordinator 0.5.752__tar.gz → 0.5.754__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.752 → code_coordinator-0.5.754}/CLAUDE.md +3 -1
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/PKG-INFO +1 -1
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/code_coordinator.egg-info/PKG-INFO +1 -1
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/code_coordinator.egg-info/scm_version.json +2 -2
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/drive_queue.py +74 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/decomposition_chat.py +40 -6
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/dispatch.py +12 -1
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/drive_queue.py +76 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/merge_queue.py +99 -19
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/models.py +24 -1
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/notify.py +26 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/review.py +155 -12
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_drive_queue.py +209 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_decomposition_chat.py +41 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dispatch.py +26 -4
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_drive_queue.py +81 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_merge_queue.py +314 -4
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_models.py +6 -2
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_notify.py +34 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_review.py +198 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/.claude/commands/board.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/.claude/commands/complete-session.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/.claude/commands/coordinator.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/.githooks/_lib.sh +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/.githooks/post-checkout +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/.githooks/post-commit +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/.githooks/post-merge +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/.github/workflows/auto-release.yml +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/.github/workflows/publish.yml +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/.github/workflows/test.yml +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/.gitignore +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/GOAL.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/LICENSE +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/MANIFEST.in +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/README.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/code_coordinator.egg-info/SOURCES.txt +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/code_coordinator.egg-info/dependency_links.txt +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/code_coordinator.egg-info/entry_points.txt +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/code_coordinator.egg-info/requires.txt +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/code_coordinator.egg-info/scm_file_list.json +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/code_coordinator.egg-info/top_level.txt +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/__init__.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/_board_mapping.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/acceptance.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/acceptance_drivers.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/agent.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/agent_app.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/agent_update.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/agents/opencode/.gitignore +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/agents/opencode/agents/work.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/agents/opencode/routing.jsonc +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/app_drive.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/app_drive_daemon.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/approved_work.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/audit.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/auto_loop.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/backup.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/block_log.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/board_doctor.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/board_doctor_followthrough.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/board_doctor_permissions.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/board_doctor_policy.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/board_schema.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/board_service.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/board_wire.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/brain.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/branch_model.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/briefing_lessons.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/bug_intake.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/bugbash.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/cargo_cache.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/ci_fix.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/ci_github.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/ci_gitlab.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/ci_store.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/claim.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/claude_setup_token.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/cli.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/client.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/codegen.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/__init__.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/_common.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/acceptance.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/agent_ops.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/app_drive.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/audit.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/backup.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/bugbash.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/chat.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/ci.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/codegen.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/dispatch.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/dispatch_workers.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/dr.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/drive.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/gate_a.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/gates.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/issues.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/lifecycle.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/machine.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/merge.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/milestone.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/plan_followup.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/plans.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/portal.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/pr.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/release.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/repo.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/report.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/review.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/scorecard.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/sessions.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/setup.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/smoke.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/status.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/store_migrate.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/terminal.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/test_gate.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/commands/tui.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/comments.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/config.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/config_reload.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/confirm_test.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/conflict_fix.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/dao.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/dashboard/__init__.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/dashboard/fixture.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/dashboard/index.html +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/dashboard/reports.html +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/dashboard/server.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/dashboard/terminal.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/db.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/dead_end.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/README.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-backup.service +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-backup.timer +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-board-doctor.service +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-board-doctor.timer +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-dr-verify.service +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-dr-verify.timer +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-failure-notify.service +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-fleet-watchdog.service +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-fleet-watchdog.timer +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-nightly-smoke.service +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-nightly-smoke.timer +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy_manifest.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deploy_units.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deprecation_telemetry.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/deps.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/diagnose.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/dirlink.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/dispatch_liveness.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/dist_name.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/dr_promote.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/dr_verify.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/drive.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/drive_sessions_snapshot.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/drive_state.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/entry_truth.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/events.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/failure_class.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/failure_classifier.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/filelock.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/fleet_config_health.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/forge_availability.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/freshness.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/gate_a.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/gate_b.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/gate_snapshot.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/gates.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/gen_board_fixture.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/github_ops.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/github_throttle.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/goal.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/graph_health.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/gtk_native_driver.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/__init__.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/aggregate.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/__init__.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/_ci_pin.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/agent_install.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/cargo_targets.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/claude_binary.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/config_drift.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/coord_tui_ci_pin.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/disk.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/fleet_board.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/fleet_deploy_lanes.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/fleet_phantom.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/fleet_unit_drift.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/graph.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/graphify_cli.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/gui_lane_preflight.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/index_lock.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/issues_sync_staleness.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/local_machine_identity.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/plan_usage.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/pr_churn.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/release_cordon.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/repo_state.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/spawned_coord.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/stalled_pipeline.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/sustained_cpu.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/timer_active.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/toolchain.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/unit_drift.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/unit_enablement.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/wedged_drive_queue.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/checks/worktrees.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/cli.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/context.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/fleet_snapshot.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/models.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/pypi.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/registry.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/render.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/health/units.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/hooks.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/housekeeping.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/interactive.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/invariant_alarms.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/issue_store.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/issues_sync_status.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/key_spec.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/liveness_auditor.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/mac_native_driver.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/machine_fault.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/machine_metrics.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/machine_onboard.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/machine_pause.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/machine_stats.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/milestone_chat.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/milestone_dispatch.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/milestone_gate.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/milestone_order.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/mock_author.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/native_fs_wait.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/native_pixels.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/network.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/new_issue_chat.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/nightly_runner.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/nightly_smoke.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/nightly_status.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/nightly_store.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/notifier/__init__.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/notifier/baseline.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/notifier/cli.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/notifier/collect.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/notifier/digest.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/notifier/models.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/notifier/predicate.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/notifier/service.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/notifier/store.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/notifier/transport.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/openapi.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/overlap_fence.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/overlap_predict.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/parentage.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/parentage_github.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/pipeline.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/plan_parser.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/plans.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/platform_paths.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/portal_bridge.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/portal_store.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/portal_sync.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/pr_body_lint.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/preflight_size.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/prereqs.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/prereview_gate.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/progress.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/providers/__init__.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/providers/base.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/providers/claude.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/providers/claude_pty.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/providers/opencode.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/queue_diagnose.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/reconcile.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/reconcile_tick.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/refine_chat.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/release_cordon.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/release_gate.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/release_propagate.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/release_verify.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/release_window.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/repo_dormancy.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/repo_edit.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/repo_onboard.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/reports.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/rest_schema.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/restart_cmd.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/revalidate.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/scorecard.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/self_health.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/serve_app.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/shell_exec_wrap.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/skills/coord-dispatch-verbs/SKILL.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/skills/drive-queue-preflight/SKILL.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/skills/fleet-restart-safety/SKILL.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/skills/merge-stuck-triage/SKILL.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/skills/pipeline-limbo-triage/SKILL.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/skills/portal-followup/SKILL.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/skills/release-now/SKILL.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/skills/review-verdict-recovery/SKILL.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/skills/tui-quadraui-workflow/SKILL.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/skills/update-issue/SKILL.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/smoke.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/smoke_tags.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/spend_ceiling.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/split_work.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/sql.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/stage_projection.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/state.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/store_migrate.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/store_parity.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/templates/deploy-cloudflare.node.yml +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/test_author.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/test_chat.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/test_orchestrator.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/test_report.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/tui_pty_driver.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/tui_release.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/uat_checks.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/upstream_gaps.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/usage.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/usage_limits.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/usage_rollup.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/win_native_bridge.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/win_native_driver.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coord/worker_events.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/coordinator.example.yml +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-backup.service +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-backup.timer +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-board-doctor.service +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-board-doctor.timer +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-dr-verify.service +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-dr-verify.timer +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-failure-notify.service +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-failure-notify.sh +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-fleet-watchdog.service +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-fleet-watchdog.timer +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-nightly-smoke.service +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-nightly-smoke.timer +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-web-dist-build.sh +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-web-rollback.sh +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/deploy/node-shim.sh +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/ADR_COORD_TUI_CI.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/ADR_COORD_WEB_ACCEPTANCE_SUITE.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/ADR_COORD_WEB_CI.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/ADR_COORD_WEB_DIST.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/ADR_PY_RUST_MIRRORS.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/AGENT_OPERATIONS.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/ARCHITECTURE.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/ARCH_SECURITY_GATES.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/COCKPIT.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/COST_DISCIPLINE.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/CROSS_PLATFORM.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/CUSTOMER_FACING_APPS.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/CUSTOMER_PORTAL.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/DATA_STORE_SELECTION.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/DISASTER_RECOVERY.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/DRIVE_QUEUE.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/EPHEMERAL_WORKERS.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/FORGE_MIGRATION.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/GRAPHIFY_SETUP.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/ISSUE_GUIDANCE.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/MAC_MINI.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/NOTIFIER.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/OPENCODE_VERIFICATION.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/OPERATING_GOTCHAS.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/OPERATOR_GUIDES.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/ORACLE_LOOP.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/PHONE_WEBAPP.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/PIPELINE_V2.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/PLATFORM_EVOLUTION.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/SECOND_BACKEND.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/STORE_SERVICE.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/TEST_FIRST_BUG_LANE.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/WEB_CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/WSL_WINDOWS_WORKER.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/mocks/web/README.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/mocks/web/_tokens.css +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/mocks/web/issue-detail.html +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/mocks/web/pipeline-narrow.html +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/docs/mocks/web/pipeline-wide.html +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/graphify-out/.gitignore +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/install-agent.sh +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/pyproject.toml +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/audit_review_verdict_overrides.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/azure-workers/bootstrap-shared.sh +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/azure-workers/build-worker-image.sh +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/azure-workers/coordinator-machine.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/azure-workers/dr-down.sh +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/azure-workers/dr-up.sh +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/azure-workers/epic-down.sh +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/azure-workers/epic-up.sh +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/azure-workers/preflight.sh +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/azure-workers/provision-server.sh +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/azure-workers/provision-worker.sh +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/azure-workers/tailnet-acl.hujson +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/azure-workers/throwaway-vm.sh +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/azure-workers/verify-github-token.sh +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/check_gh_argv_containment.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/codegen.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/comment_cruft.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/coord-test-runner.sh +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/coord-tui-scaffold/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/coord-tui-scaffold/.github/workflows/cargo-test.yml +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/coord-tui-scaffold/.github/workflows/codegen-drift.yml +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/coord-tui-scaffold/CLAUDE.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/coord-venv-rollback.sh +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/drive-batch.sh +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/extract-coord-tui.sh +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/fleet_watchdog.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/gen_board_fixture.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/gen_mock_index.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/lib/provision-core.sh +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/next_release_tag.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/provision-machine.sh +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/run_tests_in_populated_home.sh +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/run_tests_without_gh.sh +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/setup-macmini.sh +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/smoke_437_interactive.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/verify-provision-noble.sh +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/verify_878_review_capture.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/verify_release_published.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/scripts/verify_release_wheel.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/setup.cfg +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/SMOKE_SET.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/__init__.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/acceptance/ms-37/conftest.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/acceptance/ms-37/contract.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/acceptance/ms-37/manifest.yml +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/acceptance/ms-51/contract.md +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/acceptance/ms-51/manifest.yml +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/acceptance/ms-51/tsconfig.json +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/backends.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/conftest.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/board-pipeline-basic.json +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/opencode_run_sample.jsonl +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/playwright/all_pass.json +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/playwright/global_setup_crash.json +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/playwright/mixed_fail.json +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/playwright/retry_then_pass.json +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/playwright/skip.json +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/playwright/truncated.json +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/test_report/pytest_error_log_record.txt +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_acceptance.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_acceptance_drivers.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_api_error.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_app.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_branch_base.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_branch_capture.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_config_free_1712.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_deploy_units_endpoint.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_dirty_worktree.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_drive_queue_reconcile_2373.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_graceful_shutdown_3649.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_graph_refresh.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_graph_self_heal.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_health_h3.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_idle_restart.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_push_failure.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_reap.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_repos_and_pull.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_restart_services_endpoint.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_skills_self_heal.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_startup_diagnostics.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_update.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_update_bluegreen.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_usage_limit.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_agent_zero_commit.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_ambient_home_isolation.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_app_drive.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_approve_capability_reroute_3241.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_approve_dependency_busy_2804.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_approve_reject_plan.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_approve_usage_gate.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_approved_work_2532.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_approved_work_2996.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_assignment_already_recorded_daemon.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_audit_log.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_audit_outcome.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_audit_query.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_auto_loop.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_auto_release_publish_2035.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_backend_selection.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_backup.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_base_checkout_restore.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_block_log.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_board_cap_762.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_board_doctor.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_board_doctor_followthrough.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_board_doctor_permissions.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_board_doctor_policy.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_board_fixture.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_board_nightly_status.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_board_read_path.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_board_schema.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_board_service.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_board_state.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_board_wire.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_brain.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_branch_model.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_briefing_lessons.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_bug_intake.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_bugbash.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_build_worker_image_env_update.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cargo_cache.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_check_gh_argv_containment.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_ci_acceptance_gate_1950.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_ci_fix.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_ci_github.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_ci_gitlab.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_ci_parity_2091.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_ci_store.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_claim.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_claude_md_budget.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_claude_setup_token.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_acceptance.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_assign.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_assign_interactive_remote.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_assign_provider.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_assign_repo_drift_2219.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_audit.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_chat_continue.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_ci.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_codegen.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_decide.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_diagnose_capability_rules.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_diagnose_config_provenance.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_diagnose_forge_availability.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_diagnose_graph.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_diagnose_self.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_diagnose_test_coverage.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_doctor.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_doctor_config_free_1801.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_doctor_store_backend_3084.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_drive.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_drive_queue_investigate.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_drive_queue_stranded_prereq.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_escalate.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_fix_headless_review.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_gate_a.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_gates_next_action.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_inject_board_less.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_install_drift.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_install_skills.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_issue_close_wrong_repo.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_issue_comment.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_issue_create_label.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_issue_reopen.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_issue_view_list.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_issues.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_merge.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_milestone_assign.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_milestone_capture.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_milestone_chat_add_child.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_milestone_gate_b.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_milestone_gate_c.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_milestone_order.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_milestone_ship.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_network.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_new_issue_chat.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_plans.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_portal.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_pr.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_pull_artifact.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_queue.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_reattach_sessions.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_refine_board.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_release_preflight.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_release_propagate.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_release_window.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_repo_2220.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_review_test_author_tracking_epic_2639.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_scorecard.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_serve_store_backend_3084.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_set_review_findings.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_smoke_nightly.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_smoke_nightly_sweep.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_status_advisory_terminal.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_status_contested_tag.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_status_invariant_alarms.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_status_machine_fault.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_status_merge_queue.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_status_nightly.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_status_provider.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_status_retried_3340.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_status_review_finalizing.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_status_supervisor_3366.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_status_test_failed_tag.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_status_usage_limit.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_sync_comments_873.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_test_plan.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_track.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_tui_update.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cli_wait.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_client.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_client_base_install.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_client_config_cache_atomic_3052.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_client_resource_migration_1946.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_commands_common.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_comment_cruft.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_comments.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_completion_summary.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_config.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_config_acceptance.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_config_audit.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_config_drift_check.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_config_effective.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_config_prereview_gate.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_config_pricing.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_config_usage_gate.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_confirm_test.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_conflict_fix.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_conflict_fix_semantic.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_coord_log_daemon_fallback_2547.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_coord_test.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_coord_test_runner_acceptance_toolchain_2936.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_coord_test_runner_baseline.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_coord_test_runner_populated_home.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_coord_test_runner_routing.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_coord_test_runner_toolchain.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_coord_test_runner_venv_setup.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_coord_uat.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_coord_web_sse_restart_live.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_coordinator_machine.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_cross_platform_imports.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dao.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dashboard.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dashboard_api.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dashboard_fixture.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dashboard_reports.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dashboard_server.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dashboard_terminal.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dashboard_terminal_live.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_db.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dead_end.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_deploy_coord_db_backup.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_deploy_coord_web_dist.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_deploy_coord_web_rollback.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_deploy_db_backup_unit.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_deploy_drive_queue_unit.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_deploy_failure_notify_unit.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_deploy_manifest.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_deploy_notify_unit.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_deploy_units_lane.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_deploy_web_unit.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_deprecation_telemetry.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_deps.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_diagnose.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dirlink.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dispatch_liveness.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dispatch_target_validation.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dispatch_workers.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dist_name.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_done_housekeeping.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dr_azure_scripts.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dr_promote.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_dr_verify.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_drive.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_drive_machine_fault.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_drive_queue_blocked_rendering.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_drive_queue_launch_argv.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_drive_queue_max_parallel_config.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_drive_queue_max_parallel_per_repo_config.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_drive_queue_roll_pending.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_drive_queue_self_cordon_escalation.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_drive_sessions_snapshot.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_drive_state.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_drive_tmux.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_entry_truth.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_epic_up_capability_detection.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_epic_up_image_provenance.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_errors.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_events.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_failure_class.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_failure_classifier.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_filelock.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_fix_escalation_classifier.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_fix_of_force_override.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_fleet_config_health.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_fleet_health_probes.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_fleet_health_snapshot.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_fleet_watchdog.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_forge_availability.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_freshness.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_gate_a.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_gate_b.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_gate_snapshot_staleness.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_gates.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_gather_fleet_tmux_sessions.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_gen_mock_index.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_generated_rust_fixture.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_generated_rust_requests.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_generated_types_fixture.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_github_ops.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_github_throttle.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_goal.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_graph_health.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_graph_selfheal_absent_2237.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_gtk_native_driver.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_handoff.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_checks.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_cli.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_cli_graph.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_config.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_context.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_coord_tui_ci_pin.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_fix.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_incident_regression.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_issues_sync_staleness.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_pr_churn.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_pypi.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_registry.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_release_cordon_probe.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_sustained_cpu.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_timer_active.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_toolchain.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_unit_drift.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_unit_enablement.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_health_wedged_drive_queue.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_hooks.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_housekeeping.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_human_attended_437.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_init.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_install_agent_capabilities_3515.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_install_agent_venv_2911.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_install_agent_wsl_bridge_3515.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_integration.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_interactive.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_interactive_briefing_echo.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_interactive_pane_log_2541.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_interactive_prefill_state.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_interactive_session_relaunch.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_interactive_test_verdict_backstop.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_interactive_token_attribution.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_interactive_worktree.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_invariant_alarms.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_issue_store_seam.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_issues_sync_status.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_key_spec.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_liveness_auditor.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_liveness_notify.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_lock_contention_ratchet.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_mac_native_driver.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_machine_fault.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_machine_metrics.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_machine_onboard.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_machine_pause.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_machine_stats.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_merge_verification.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_merge_verify.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_milestone_chat.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_milestone_gate.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_milestone_order.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_milestone_seam.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_mock_author.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_model_tiering.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_models_config_labels.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_models_pinned_1650.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_native_fs_wait.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_native_pixels.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_needs_attention.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_network.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_new_issue_chat.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_next_release_tag.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_nightly_runner.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_nightly_smoke.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_nightly_status.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_nightly_store.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_no_eligible_host_3600.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_node_shim.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_notifier_baseline.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_notifier_cli.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_notifier_collect.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_notifier_config.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_notifier_drive_seam.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_notifier_isolation.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_notifier_predicate.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_notifier_quiet_hours.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_notifier_service.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_notify_drain.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_openapi.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_operational_defaults.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_overlap_fence.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_overlap_predict.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_packaged_deploy_units.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_parentage.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_paste_landed.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_pause_store_guard_recursion_3789.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_phantom_heal_venv_independence_2570.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_pipeline.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_plain_runner_smoke_3673.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_plan_followup_approve_plan_command.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_plan_followup_pr_command.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_plan_followup_review_command.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_plan_only.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_plan_parser.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_platform_paths.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_portal_bridge.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_portal_config.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_portal_store.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_portal_sync.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_pr_body_lint.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_preflight_size.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_prereqs.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_prereview_gate.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_production_db_guard.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_progress.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_provider_seam.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_providers.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_providers_config_labels.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_providers_pty.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_provision_core.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_provision_machine.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_py_rust_mirror_inventory.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_queue_diagnose.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_quiet_hours.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_quiet_hours_store_2146.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_reap_merged_sessions.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_reap_stale_interactive_tick.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_reconcile.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_reconcile_branch.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_reconcile_completions.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_reconcile_late_agent_reports_2547.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_reconcile_merges.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_reconcile_no_agent_record.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_reconcile_tick.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_reconcile_usage_limit_done.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_refine_chat.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_release_cordon_2101.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_release_cordon_deadlock_2240.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_release_cordon_drain_stall_3336.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_release_cordon_stuck_2490.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_release_gate.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_release_propagate.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_release_propagate_threshold.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_release_roll_between_legs_2854.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_release_roll_window_handoff.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_release_unified_1242.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_release_verify.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_release_window.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_remote_auto_prune.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_remote_interactive_reaper.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_repo_add.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_repo_dormancy.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_repo_edit_2220.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_repo_graph_fleet_2237.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_repo_max_parallel_3423.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_repo_onboard_2220.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_report_public_export.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_report_result_push.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_reports.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_restart_cmd.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_retry.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_retry_advisory_1606.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_retry_escalation_classify_3360.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_retry_type_1636.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_revalidate.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_review_end_review_without_verdict.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_review_parse_failure_diagnostic.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_review_reaffirm.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_review_state.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_review_verdict_backstop.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_review_verdict_override_audit.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_review_verdict_relay.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_review_zero_commits.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_scoped_review_wiring.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_scorecard.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_self_health.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_serve.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_serve_app.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_serve_app_board_trim.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_serve_rest_routes.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_session.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_slice_issue_attribution.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_smoke.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_smoke_fanout_manifest_3333.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_smoke_live_checkout_restore.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_smoke_plain_runner_3673.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_smoke_workflow.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_spend_ceiling.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_spend_ceiling_coordinator.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_split.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_split_work.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_sql_dialect.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_sqlite_connect_ratchet.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_stage_projection.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_stale_busy_reviewer_697.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_stalled_pipeline.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_state.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_state_review_findings_daemon.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_status_fleet_footer.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_stop_1567.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_store_contract.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_store_migrate.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_stuck.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_stuck_test_state_watchdog_2803.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_terminal_command.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_test_author.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_test_chat.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_test_orchestrator.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_test_report.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_test_verdict_parsing.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_test_verdict_transcript_floor.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_text_io_encoding_audit.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_thin_client_board_audit.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_thin_client_config_load_1080.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_thin_client_daemon_routing_906.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_throwaway_vm.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_tmux_host.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_tmux_session.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_transcript_floor.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_tui_pty_driver.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_uat_checks.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_upstream_gaps.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_usage.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_usage_limits.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_usage_rollup.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_venv_live_install_2121.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_version_single_source.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_watch.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_win_native_bridge.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_win_native_driver.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_worker_env_venv_isolation.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_worker_events.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_worker_image_pin_sync.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_worker_safety.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_worker_test_scoping.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_worktree.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_worktree_rmtree_chokepoint.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/test_write_parity.py +0 -0
- {code_coordinator-0.5.752 → code_coordinator-0.5.754}/tests/write_parity.py +0 -0
|
@@ -140,7 +140,9 @@ in [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md#design-decisions--the-settled-r
|
|
|
140
140
|
session on a *different* machine reviews your diff against this file, with **zero shared
|
|
141
141
|
context with you** — so your diff and final message must stand on their own. Put the
|
|
142
142
|
*why* of a fix in the commit message and final message, not in code comments: comments
|
|
143
|
-
describe the code as it is, with no issue numbers or "used to" history.
|
|
143
|
+
describe the code as it is, with no issue numbers or "used to" history. **An unplanned
|
|
144
|
+
`ISSUE_RESOLUTION: partial` is a blocking finding** (scope you cut yourself, or a call
|
|
145
|
+
site left unwired); only an upstream blocker or a tranche the issue defines is allowed.
|
|
144
146
|
|
|
145
147
|
## Rules for workers
|
|
146
148
|
|
|
@@ -5842,6 +5842,72 @@ def _fetch_gate_a_pending(entries: list) -> dict[str, bool]:
|
|
|
5842
5842
|
return pending
|
|
5843
5843
|
|
|
5844
5844
|
|
|
5845
|
+
def _fetch_size_triage_pending(entries: list) -> dict[str, bool]:
|
|
5846
|
+
"""``{entry_key: still_waiting_on_the_triage_leg}`` for every entry
|
|
5847
|
+
parked on `coord.dispatch.enforce_preflight_guard`'s size-triage-pending
|
|
5848
|
+
refusal (#3971, `coord.decomposition_chat.SIZE_TRIAGE_PENDING_MARKER`).
|
|
5849
|
+
|
|
5850
|
+
Re-derives the SAME evidence `enforce_preflight_guard` itself consults
|
|
5851
|
+
on its next real invocation — a matching `review_target` row's own
|
|
5852
|
+
`status` column (#2096: one question, one answer) — rather than a
|
|
5853
|
+
second, independent notion of "is the triage done". Board read only, no
|
|
5854
|
+
`gh` call, and no work at all on a tick where nothing is parked this
|
|
5855
|
+
way (the common case).
|
|
5856
|
+
|
|
5857
|
+
Reads the raw ``assignments`` rows out of :func:`_fetch_board_payload`
|
|
5858
|
+
rather than `coord.state.build_board`, for the #615 reason every other
|
|
5859
|
+
reader in this module routes: that fetch answers from the daemon's
|
|
5860
|
+
``GET /board`` when ``board_service`` is configured and from the local
|
|
5861
|
+
DB only when it is not, so a thin client sees the real rows instead of
|
|
5862
|
+
an empty board. `BoardView` cannot answer this one — it reduces the
|
|
5863
|
+
board to per-issue facts and carries no ``review_target`` at all — and
|
|
5864
|
+
the triage row is keyed by ``review_target``, not by its issue.
|
|
5865
|
+
|
|
5866
|
+
Fails **closed**, same posture as :func:`_fetch_gate_a_pending`: an
|
|
5867
|
+
entry whose triage status can't be confirmed stays parked. Being wrong
|
|
5868
|
+
that way costs a parked row an operator can see and release; being
|
|
5869
|
+
wrong the other way resumes Work dispatch while a paid triage session
|
|
5870
|
+
might still be about to propose splitting this issue into pieces no
|
|
5871
|
+
single worker should touch at once. A board the fetch CAN read that
|
|
5872
|
+
simply carries no row for this ``review_target`` is a different
|
|
5873
|
+
answer, not an unreadable one — nothing is in flight, so the entry
|
|
5874
|
+
resumes and the relaunch's own guard call re-derives the verdict.
|
|
5875
|
+
"""
|
|
5876
|
+
from coord.decomposition_chat import ( # noqa: PLC0415
|
|
5877
|
+
is_size_triage_pending_reason,
|
|
5878
|
+
size_triage_review_target_for,
|
|
5879
|
+
)
|
|
5880
|
+
from coord.drive_state import TERMINAL_STATUSES # noqa: PLC0415
|
|
5881
|
+
|
|
5882
|
+
targets = [
|
|
5883
|
+
e for e in entries
|
|
5884
|
+
if e.state == STATE_PARKED
|
|
5885
|
+
and is_size_triage_pending_reason(getattr(e, "last_reason", "") or "")
|
|
5886
|
+
]
|
|
5887
|
+
if not targets:
|
|
5888
|
+
return {}
|
|
5889
|
+
|
|
5890
|
+
try:
|
|
5891
|
+
payload = _fetch_board_payload()
|
|
5892
|
+
except Exception: # noqa: BLE001 — fail closed, stay parked
|
|
5893
|
+
return {e.key: True for e in targets}
|
|
5894
|
+
|
|
5895
|
+
rows = payload.get("assignments") or []
|
|
5896
|
+
pending: dict[str, bool] = {}
|
|
5897
|
+
for e in targets:
|
|
5898
|
+
review_target = size_triage_review_target_for(e.issue)
|
|
5899
|
+
matches = [
|
|
5900
|
+
r for r in rows
|
|
5901
|
+
if (r.get("review_target") or "") == review_target
|
|
5902
|
+
and (r.get("repo_name") or "") == e.repo
|
|
5903
|
+
]
|
|
5904
|
+
pending[e.key] = any(
|
|
5905
|
+
str(r.get("status") or "").lower() not in TERMINAL_STATUSES
|
|
5906
|
+
for r in matches
|
|
5907
|
+
)
|
|
5908
|
+
return pending
|
|
5909
|
+
|
|
5910
|
+
|
|
5845
5911
|
def _fetch_live_ci_gate(
|
|
5846
5912
|
entries: list, config_path: Path | None
|
|
5847
5913
|
) -> tuple[dict[str, bool], dict[str, str]]:
|
|
@@ -8509,6 +8575,13 @@ def drive_queue_tick(
|
|
|
8509
8575
|
# tick when no entry is parked that way — which is the common case.
|
|
8510
8576
|
gate_a_pending = _fetch_gate_a_pending(entries)
|
|
8511
8577
|
|
|
8578
|
+
# #3971: the same live re-read, for every entry parked on a size-
|
|
8579
|
+
# triage review still in flight — see `_fetch_size_triage_pending`'s
|
|
8580
|
+
# docstring for the incident this closes (a flagged issue's
|
|
8581
|
+
# drive-queue row, and every `after=` dependent behind it, stuck
|
|
8582
|
+
# `blocked` even after the triage leg posted `proceed`).
|
|
8583
|
+
size_triage_pending = _fetch_size_triage_pending(entries)
|
|
8584
|
+
|
|
8512
8585
|
# #2182: for every entry parked on a CI reason, a fresh single-entry
|
|
8513
8586
|
# re-derivation of its gate, taken live THIS tick — see
|
|
8514
8587
|
# `_fetch_live_ci_gate`'s docstring for the gap this closes (a park
|
|
@@ -8614,6 +8687,7 @@ def drive_queue_tick(
|
|
|
8614
8687
|
exit_refused=exit_refused,
|
|
8615
8688
|
exit_dead_end=exit_dead_end,
|
|
8616
8689
|
gate_a_pending=gate_a_pending,
|
|
8690
|
+
size_triage_pending=size_triage_pending,
|
|
8617
8691
|
cordons=cordons,
|
|
8618
8692
|
no_eligible_host=no_eligible_host,
|
|
8619
8693
|
live_ci_gate=live_ci_gate,
|
|
@@ -1024,16 +1024,50 @@ def size_triage_review_target_for(issue_number: int) -> str:
|
|
|
1024
1024
|
|
|
1025
1025
|
Mirrors `coord.gate_b.review_target_for`: keeping it non-int-parseable
|
|
1026
1026
|
means `coord.notify._try_parse_and_post_review`'s `int(review_target)`
|
|
1027
|
-
sniff falls through
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1027
|
+
sniff falls through rather than mistaking this for a per-issue code
|
|
1028
|
+
review of a real PR. It also exists so `latest`-style lookups (if one
|
|
1029
|
+
is ever needed) can find this assignment unambiguously among a repo's
|
|
1030
|
+
other `type="review"` rows, and so `coord.notify.notify`'s own
|
|
1031
|
+
completion handler (#3971) can recognise this ONE `type="review"`
|
|
1032
|
+
shape and skip review-findings extraction / the "Review assignment
|
|
1033
|
+
completed" comment for it — a leg this dispatch-time sentinel marks is
|
|
1034
|
+
a read-only size triage, never a real code review, whatever its
|
|
1035
|
+
board-row `type` says.
|
|
1033
1036
|
"""
|
|
1034
1037
|
return f"size-triage-{issue_number}"
|
|
1035
1038
|
|
|
1036
1039
|
|
|
1040
|
+
def is_size_triage_review_target(review_target: str | None) -> bool:
|
|
1041
|
+
"""Whether *review_target* identifies a size-triage dispatch rather than
|
|
1042
|
+
a real code review (#3971) — the inverse of
|
|
1043
|
+
:func:`size_triage_review_target_for`, for a caller holding only the
|
|
1044
|
+
string back out of an `Assignment` row.
|
|
1045
|
+
"""
|
|
1046
|
+
return bool(review_target) and str(review_target).startswith("size-triage-")
|
|
1047
|
+
|
|
1048
|
+
|
|
1049
|
+
# #3971: a TEMPORARY wait, not a permanent pre-dispatch guard refusal
|
|
1050
|
+
# (#1844) — unlike `enforce_oracle_readiness`/`enforce_epic_dispatch_guard`'s
|
|
1051
|
+
# refusals, `enforce_preflight_guard`'s "a size-triage review is running —
|
|
1052
|
+
# retry once it posts its verdict" refusal clears on its own the moment that
|
|
1053
|
+
# leg reaches a terminal status, no operator action needed. Embedded in that
|
|
1054
|
+
# refusal's text so `coord.drive_queue._reconcile_running` can recognise it
|
|
1055
|
+
# BEFORE the generic `exit_refused` → `blocked` branch (#1844) every other
|
|
1056
|
+
# `DispatchRefused` falls into, and park instead — the same precedent
|
|
1057
|
+
# `coord.gate_a.is_gate_a_refusal_reason`'s own marker set for a refusal with
|
|
1058
|
+
# a self-clearing condition. Lives here, not in `coord.dispatch`, because
|
|
1059
|
+
# this module already owns every other size-triage-shaped sentinel
|
|
1060
|
+
# (`size_triage_review_target_for`, `is_size_triage_review_target`) and
|
|
1061
|
+
# `coord.dispatch`/`coord.drive_queue` both already import from it.
|
|
1062
|
+
SIZE_TRIAGE_PENDING_MARKER = "[size-triage-pending]"
|
|
1063
|
+
|
|
1064
|
+
|
|
1065
|
+
def is_size_triage_pending_reason(text: str | None) -> bool:
|
|
1066
|
+
"""Whether *text* is `enforce_preflight_guard`'s triage-in-flight
|
|
1067
|
+
refusal (#3971) — see :data:`SIZE_TRIAGE_PENDING_MARKER`."""
|
|
1068
|
+
return bool(text) and SIZE_TRIAGE_PENDING_MARKER in text
|
|
1069
|
+
|
|
1070
|
+
|
|
1037
1071
|
SIZE_TRIAGE_SYSTEM_PROMPT = """You are an independent triage agent dispatched by the coordinator to \
|
|
1038
1072
|
decide whether a single GitHub issue, already flagged by a heuristic size \
|
|
1039
1073
|
scorer as plausibly too large for one worker, should be split into smaller \
|
|
@@ -450,6 +450,7 @@ def enforce_preflight_guard(
|
|
|
450
450
|
return
|
|
451
451
|
|
|
452
452
|
from coord.decomposition_chat import ( # noqa: PLC0415
|
|
453
|
+
SIZE_TRIAGE_PENDING_MARKER,
|
|
453
454
|
SizeTriageError,
|
|
454
455
|
dispatch_size_triage_review,
|
|
455
456
|
size_triage_review_target_for,
|
|
@@ -540,12 +541,22 @@ def enforce_preflight_guard(
|
|
|
540
541
|
# follow-up in flight to ever clear the refusal.
|
|
541
542
|
return
|
|
542
543
|
|
|
544
|
+
# #3971: this refusal is TEMPORARY — the triage leg just dispatched (or
|
|
545
|
+
# already in flight) clears it on its own the moment it posts a
|
|
546
|
+
# verdict, unlike `enforce_oracle_readiness`/`enforce_epic_dispatch_
|
|
547
|
+
# guard`'s refusals above, which nothing but an operator action can
|
|
548
|
+
# clear. `SIZE_TRIAGE_PENDING_MARKER` lets `coord.drive_queue.
|
|
549
|
+
# _reconcile_running` tell this ONE `DispatchRefused` shape apart from
|
|
550
|
+
# every other one sharing the same `EXIT_DISPATCH_REFUSED` exit code
|
|
551
|
+
# (#1844) and park the drive-queue row instead of blocking it forever —
|
|
552
|
+
# see that function's #3971 comment for the quadraui#2304 incident this
|
|
553
|
+
# closes.
|
|
543
554
|
raise DispatchRefused(
|
|
544
555
|
f"issue #{issue_number} flagged by the preflight size scorer "
|
|
545
556
|
f"(score {score.total:g}/{score.threshold:g}): {score.reason}. "
|
|
546
557
|
f"A size-triage review is {'already ' if in_flight is not None else ''}"
|
|
547
558
|
f"running on {machine.name!r} (review_target={review_target!r}) — "
|
|
548
|
-
"retry once it posts its verdict."
|
|
559
|
+
f"retry once it posts its verdict. {SIZE_TRIAGE_PENDING_MARKER}"
|
|
549
560
|
)
|
|
550
561
|
|
|
551
562
|
|
|
@@ -91,6 +91,7 @@ from dataclasses import dataclass, field, replace
|
|
|
91
91
|
from pathlib import Path
|
|
92
92
|
from typing import Any, Iterable, Mapping, Sequence
|
|
93
93
|
|
|
94
|
+
from coord.decomposition_chat import is_size_triage_pending_reason
|
|
94
95
|
from coord.drive_state import TERMINAL_STATUSES, WORK_LIKE
|
|
95
96
|
from coord.entry_truth import (
|
|
96
97
|
EntryTruth,
|
|
@@ -5804,6 +5805,45 @@ def _reconcile_running(
|
|
|
5804
5805
|
None,
|
|
5805
5806
|
)
|
|
5806
5807
|
|
|
5808
|
+
# #3971 rides the SAME "pending verdict, not a standing refusal" shape
|
|
5809
|
+
# as #2063's Gate-A park immediately above: `coord.dispatch.
|
|
5810
|
+
# enforce_preflight_guard`'s "a size-triage review is running — retry
|
|
5811
|
+
# once it posts its verdict" refusal is TEMPORARY — the condition that
|
|
5812
|
+
# refused it (a non-terminal triage leg) clears on its own the moment
|
|
5813
|
+
# that leg finishes, no operator action needed — yet it reached here as
|
|
5814
|
+
# a PLAIN `EXIT_DISPATCH_REFUSED` (#1844's exit code for every
|
|
5815
|
+
# `DispatchRefused`, permanent or not) and would otherwise fall straight
|
|
5816
|
+
# into the `exit_refused` → `blocked` branch below and stay blocked
|
|
5817
|
+
# forever even after the verdict posts PROCEED (quadraui#2304, 2026-11-10
|
|
5818
|
+
# UTC: every dependent behind the row cascaded to `blocked` three minutes
|
|
5819
|
+
# before the triage leg itself returned `proceed`). Checked purely off
|
|
5820
|
+
# `own_reason`'s marker — independent of `exit_refused` — the same
|
|
5821
|
+
# "recognise this refusal by its own text, not by the exit code every
|
|
5822
|
+
# `DispatchRefused` shares" posture #2063/#2234 already established.
|
|
5823
|
+
# Parks rather than blocks; `plan_tick`'s pre-pass below un-parks it the
|
|
5824
|
+
# tick after the matching `review_target` assignment goes terminal, same
|
|
5825
|
+
# "no queue surgery needed" contract Gate-A's park gives.
|
|
5826
|
+
if own_reason and is_size_triage_pending_reason(own_reason):
|
|
5827
|
+
reason = (
|
|
5828
|
+
f"{own_reason} — parking without spending an attempt; the queue "
|
|
5829
|
+
"resumes it automatically once the size-triage review posts its "
|
|
5830
|
+
"verdict, no queue surgery needed (#3971)"
|
|
5831
|
+
)
|
|
5832
|
+
return (
|
|
5833
|
+
Reconcile(
|
|
5834
|
+
entry.key,
|
|
5835
|
+
"parked",
|
|
5836
|
+
reason,
|
|
5837
|
+
occupies=False,
|
|
5838
|
+
updates={
|
|
5839
|
+
"state": STATE_PARKED,
|
|
5840
|
+
"last_reason": reason,
|
|
5841
|
+
"session_name": None,
|
|
5842
|
+
},
|
|
5843
|
+
),
|
|
5844
|
+
None,
|
|
5845
|
+
)
|
|
5846
|
+
|
|
5807
5847
|
# #2234 rides the SAME evidence as `refused` below (the drive's own
|
|
5808
5848
|
# `drive_exited` reason) but, like #2063 above, reaches the OPPOSITE
|
|
5809
5849
|
# conclusion from a PLAIN `EXIT_TERMINAL_FAILURE` — `coord.drive.
|
|
@@ -7602,6 +7642,7 @@ def plan_tick(
|
|
|
7602
7642
|
exit_refused: Mapping[str, bool] | None = None,
|
|
7603
7643
|
exit_dead_end: Mapping[str, bool] | None = None,
|
|
7604
7644
|
gate_a_pending: Mapping[str, bool] | None = None,
|
|
7645
|
+
size_triage_pending: Mapping[str, bool] | None = None,
|
|
7605
7646
|
cordons: Mapping[str, str] | None = None,
|
|
7606
7647
|
no_eligible_host: Mapping[str, str] | None = None,
|
|
7607
7648
|
live_ci_gate: Mapping[str, bool] | None = None,
|
|
@@ -8656,6 +8697,41 @@ def plan_tick(
|
|
|
8656
8697
|
states[entry.key] = STATE_WAITING
|
|
8657
8698
|
effective_attempts[entry.key] = 0 # #2273: see #2182 branch above
|
|
8658
8699
|
continue
|
|
8700
|
+
# #3971: the SAME "external verdict, re-check every tick" shape as
|
|
8701
|
+
# the Gate-A branch just above, for `enforce_preflight_guard`'s
|
|
8702
|
+
# size-triage-pending park. The shell resolves `size_triage_pending`
|
|
8703
|
+
# by re-reading the matching `review_target` assignment's own
|
|
8704
|
+
# `status` column — a local board read, no `gh` call per entry; an
|
|
8705
|
+
# entry it can't resolve stays parked, same fail-closed posture as
|
|
8706
|
+
# Gate-A's. Resuming does NOT itself decide proceed/split — it only
|
|
8707
|
+
# lets the next real `enforce_preflight_guard` call run again, which
|
|
8708
|
+
# is what actually consumes the verdict (falls through for PROCEED/
|
|
8709
|
+
# unparseable, raises a fresh — unmarked, permanent — refusal that
|
|
8710
|
+
# supersedes the original for SPLIT).
|
|
8711
|
+
if is_size_triage_pending_reason(entry.last_reason):
|
|
8712
|
+
if (size_triage_pending or {}).get(entry.key, True):
|
|
8713
|
+
continue
|
|
8714
|
+
reason = (
|
|
8715
|
+
f"the size-triage review for {entry.key} has posted its "
|
|
8716
|
+
"verdict — resuming from parked without spending an "
|
|
8717
|
+
"attempt (#3971)"
|
|
8718
|
+
)
|
|
8719
|
+
reconciles.append(
|
|
8720
|
+
Reconcile(
|
|
8721
|
+
entry.key,
|
|
8722
|
+
"resumed",
|
|
8723
|
+
reason,
|
|
8724
|
+
occupies=False,
|
|
8725
|
+
updates={
|
|
8726
|
+
"state": STATE_WAITING,
|
|
8727
|
+
"attempts": 0,
|
|
8728
|
+
"last_reason": reason,
|
|
8729
|
+
},
|
|
8730
|
+
)
|
|
8731
|
+
)
|
|
8732
|
+
states[entry.key] = STATE_WAITING
|
|
8733
|
+
effective_attempts[entry.key] = 0
|
|
8734
|
+
continue
|
|
8659
8735
|
# #2234: a policy-refusal park has NO external verdict to poll for —
|
|
8660
8736
|
# the rule it names is standing, not pending — so unlike the Gate-A
|
|
8661
8737
|
# branch just above, this one never resumes itself. Without this
|
|
@@ -7798,14 +7798,72 @@ def _work_assignment_for_entry(entry: QueuedMerge, board) -> Assignment | None:
|
|
|
7798
7798
|
return None
|
|
7799
7799
|
|
|
7800
7800
|
|
|
7801
|
+
def _review_chain_for_entry(entry: QueuedMerge, board) -> list[Assignment]:
|
|
7802
|
+
"""Every ``type="review"`` :class:`Assignment` covering *entry*'s work
|
|
7803
|
+
chain (:func:`_chain_work_ids`), oldest first.
|
|
7804
|
+
|
|
7805
|
+
A scoped re-review (#1476/#3161) carries the SAME
|
|
7806
|
+
``review_of_assignment_id`` as the round it supersedes (see
|
|
7807
|
+
:func:`coord.review.dispatch_scoped_review`'s docstring) rather than
|
|
7808
|
+
chaining to the previous review row, so there is no parent/child link
|
|
7809
|
+
between successive review rounds to walk — only ``dispatched_at`` order
|
|
7810
|
+
distinguishes "this round" from "the one before it". Used by
|
|
7811
|
+
:func:`_issue_resolution_for_entry` (#3966) to fold EVERY round's own
|
|
7812
|
+
`ISSUE_RESOLUTION:` judgment forward, not just the one that ended up
|
|
7813
|
+
approving.
|
|
7814
|
+
"""
|
|
7815
|
+
if board is None:
|
|
7816
|
+
return []
|
|
7817
|
+
pool = list(getattr(board, "completed", []) or []) + list(getattr(board, "active", []) or [])
|
|
7818
|
+
branch_work_ids = _chain_work_ids(entry, pool)
|
|
7819
|
+
if not branch_work_ids:
|
|
7820
|
+
return []
|
|
7821
|
+
reviews = [
|
|
7822
|
+
a for a in pool
|
|
7823
|
+
if getattr(a, "type", None) == "review"
|
|
7824
|
+
and getattr(a, "review_of_assignment_id", None) in branch_work_ids
|
|
7825
|
+
]
|
|
7826
|
+
reviews.sort(key=lambda a: getattr(a, "dispatched_at", None) or 0.0)
|
|
7827
|
+
return reviews
|
|
7828
|
+
|
|
7829
|
+
|
|
7801
7830
|
def _issue_resolution_for_entry(
|
|
7802
7831
|
entry: QueuedMerge, board, gh_ops: "GhOps | None" = None, config=None,
|
|
7803
7832
|
) -> IssueResolution:
|
|
7804
|
-
"""(#3502) The EFFECTIVE `ISSUE_RESOLUTION:` verdict
|
|
7805
|
-
|
|
7806
|
-
|
|
7807
|
-
|
|
7808
|
-
(
|
|
7833
|
+
"""(#3502, widened by #3966) The EFFECTIVE `ISSUE_RESOLUTION:` verdict
|
|
7834
|
+
for *entry*, computed in two stages so the settled #3502 "never the
|
|
7835
|
+
reverse" guarantee (a REVIEWER can never silently downgrade the
|
|
7836
|
+
WORKER's own `partial`/`investigation` self-report back to "resolved")
|
|
7837
|
+
stays intact while also fixing #3966 (a scoped re-review that drops a
|
|
7838
|
+
PRIOR REVIEW ROUND's `partial`):
|
|
7839
|
+
|
|
7840
|
+
1. Fold every review round's own judgment together, chronologically,
|
|
7841
|
+
among THEMSELVES. Each fold normally wins any disagreement that
|
|
7842
|
+
makes it MORE cautious, never less
|
|
7843
|
+
(:func:`coord.models.effective_issue_resolution`) — UNLESS a later
|
|
7844
|
+
round's judgment is an EXPLICIT `ISSUE_RESOLUTION: resolved` (its
|
|
7845
|
+
``explicit`` bit set, meaning that reviewer actually wrote the
|
|
7846
|
+
marker rather than leaving it out), in which case that later,
|
|
7847
|
+
independent opinion wins outright and clears whatever an earlier
|
|
7848
|
+
round accumulated. A round that states no `ISSUE_RESOLUTION:` line
|
|
7849
|
+
of its own parses to the same "resolved" VALUE but with
|
|
7850
|
+
``explicit=False``, indistinguishable from silence, so it can never
|
|
7851
|
+
drop a prior round's `partial`/`investigation` — only an explicit
|
|
7852
|
+
restatement can.
|
|
7853
|
+
2. Combine that folded reviewer verdict with the WORKER's own judgment
|
|
7854
|
+
(its `completion_summary`) exactly once, via the same
|
|
7855
|
+
:func:`coord.models.effective_issue_resolution` — which is where
|
|
7856
|
+
"never the reverse" actually lives: even an explicit, unanimous
|
|
7857
|
+
"resolved" from every review round can never undo the worker's own
|
|
7858
|
+
`partial`/`investigation` admission.
|
|
7859
|
+
|
|
7860
|
+
Folds the WHOLE review chain, not just the rounds up to the one that
|
|
7861
|
+
happened to approve: `scan_approved_reviews` can pick an arbitrary
|
|
7862
|
+
approving round among several with no recorded `review_patch_id`
|
|
7863
|
+
(pre-#821 rows), and truncating there risked silently dropping a
|
|
7864
|
+
LATER round's more-cautious judgment. Since the fold is monotonically
|
|
7865
|
+
cautious except for the explicit-"resolved" escape hatch above,
|
|
7866
|
+
folding everything is strictly safer than guessing a cutoff.
|
|
7809
7867
|
|
|
7810
7868
|
Both halves degrade gracefully to "resolved" (today's unconditional
|
|
7811
7869
|
behaviour) when unavailable:
|
|
@@ -7813,11 +7871,14 @@ def _issue_resolution_for_entry(
|
|
|
7813
7871
|
* *board* is ``None``, or the originating `work` assignment can't be
|
|
7814
7872
|
found on it (:func:`_work_assignment_for_entry`) — no worker claim to
|
|
7815
7873
|
read.
|
|
7816
|
-
* No approving review is found (:func:`scan_approved_reviews`)
|
|
7817
|
-
|
|
7818
|
-
|
|
7819
|
-
review
|
|
7820
|
-
|
|
7874
|
+
* No approving review is found (:func:`scan_approved_reviews`) — no
|
|
7875
|
+
reviewer claim to read at all. When one is found, every round's
|
|
7876
|
+
findings are recovered from the GitHub message bus in a SINGLE fetch
|
|
7877
|
+
(:func:`coord.review.fetch_review_findings_from_github_many` — the
|
|
7878
|
+
one review-findings source this module can reach without a
|
|
7879
|
+
notify.py/state.py DB round trip); a round missing from the result
|
|
7880
|
+
(comment never posted, or the fetch failed outright) simply doesn't
|
|
7881
|
+
contribute to the fold.
|
|
7821
7882
|
|
|
7822
7883
|
Deferred-imports `coord.review` to avoid a circular import (`review.py`
|
|
7823
7884
|
does not import `merge_queue.py` at module level, but keeping the
|
|
@@ -7837,20 +7898,39 @@ def _issue_resolution_for_entry(
|
|
|
7837
7898
|
reviewer_resolution: IssueResolution | None = None
|
|
7838
7899
|
if board is not None:
|
|
7839
7900
|
scan = scan_approved_reviews(entry, board, gh_ops, config=config)
|
|
7840
|
-
|
|
7841
|
-
|
|
7842
|
-
from coord.review import fetch_review_findings_from_github # noqa: PLC0415
|
|
7901
|
+
if scan.approved and scan.review_assignment is not None:
|
|
7902
|
+
from coord.review import fetch_review_findings_from_github_many # noqa: PLC0415
|
|
7843
7903
|
|
|
7904
|
+
# Fold EVERY round in the chain (not just up to the one that
|
|
7905
|
+
# approved — see the docstring above on why no cutoff is used).
|
|
7906
|
+
chain = _review_chain_for_entry(entry, board)
|
|
7844
7907
|
try:
|
|
7845
|
-
|
|
7908
|
+
findings_by_id = fetch_review_findings_from_github_many(
|
|
7846
7909
|
entry.repo_github,
|
|
7847
7910
|
entry.issue_number,
|
|
7848
|
-
|
|
7911
|
+
(a.assignment_id for a in chain),
|
|
7849
7912
|
)
|
|
7850
|
-
except Exception: # noqa: BLE001 — best-effort;
|
|
7851
|
-
|
|
7852
|
-
|
|
7853
|
-
|
|
7913
|
+
except Exception: # noqa: BLE001 — best-effort; keeps the running fold
|
|
7914
|
+
findings_by_id = {}
|
|
7915
|
+
|
|
7916
|
+
for round_assignment in chain:
|
|
7917
|
+
findings = findings_by_id.get(round_assignment.assignment_id)
|
|
7918
|
+
if findings is None:
|
|
7919
|
+
continue
|
|
7920
|
+
candidate = findings.issue_resolution
|
|
7921
|
+
if reviewer_resolution is None:
|
|
7922
|
+
reviewer_resolution = candidate
|
|
7923
|
+
elif candidate.explicit and candidate.value == "resolved":
|
|
7924
|
+
# A later, independent review round that DELIBERATELY
|
|
7925
|
+
# restates "resolved" (not a missing line defaulting to
|
|
7926
|
+
# it) may clear what an earlier review round
|
|
7927
|
+
# accumulated — reviewer rounds re-checking each other
|
|
7928
|
+
# is exactly what #3966 asks for.
|
|
7929
|
+
reviewer_resolution = candidate
|
|
7930
|
+
else:
|
|
7931
|
+
reviewer_resolution = effective_issue_resolution(
|
|
7932
|
+
reviewer_resolution, candidate
|
|
7933
|
+
)
|
|
7854
7934
|
|
|
7855
7935
|
return effective_issue_resolution(worker_resolution, reviewer_resolution)
|
|
7856
7936
|
|
|
@@ -714,10 +714,27 @@ class IssueResolution:
|
|
|
714
714
|
remainder after the value (e.g. "the quadraui issue was only drafted,
|
|
715
715
|
not filed"), empty when the marker carried none or wasn't present at
|
|
716
716
|
all.
|
|
717
|
+
|
|
718
|
+
``explicit`` (#3966) is the presence bit: ``True`` only when
|
|
719
|
+
:func:`parse_issue_resolution` actually matched a real marker in the
|
|
720
|
+
source text, ``False`` for the default it returns when none was found
|
|
721
|
+
(or the text was empty/``None``). Without this bit, a round that
|
|
722
|
+
states nothing and a round that explicitly writes
|
|
723
|
+
``ISSUE_RESOLUTION: resolved`` are the same value and indistinguishable
|
|
724
|
+
— which is exactly what let a multi-round fold (#3966's
|
|
725
|
+
`coord.merge_queue._issue_resolution_for_entry`) never clear a prior
|
|
726
|
+
`partial`/`investigation`, even when a later, independent reviewer
|
|
727
|
+
deliberately restated `resolved`. Callers that fold multiple rounds
|
|
728
|
+
together use this bit to tell "silent" (carry the prior value forward)
|
|
729
|
+
apart from "stated" (let it win the tie); callers combining a single
|
|
730
|
+
worker/reviewer pair (:func:`effective_issue_resolution`) do not need
|
|
731
|
+
it — "never the reverse" there is unconditional regardless of how the
|
|
732
|
+
reviewer's value was produced.
|
|
717
733
|
"""
|
|
718
734
|
|
|
719
735
|
value: str = DEFAULT_ISSUE_RESOLUTION
|
|
720
736
|
reason: str = ""
|
|
737
|
+
explicit: bool = False
|
|
721
738
|
|
|
722
739
|
|
|
723
740
|
# Mirrors `SMOKE_TESTS:`/`REVIEW_VERDICT:`'s tolerance for trailing
|
|
@@ -794,6 +811,12 @@ def parse_issue_resolution(text: str | None) -> IssueResolution:
|
|
|
794
811
|
quotations of the marker text, not claims. A real, unquoted marker
|
|
795
812
|
earlier in the text still wins once every later quoted mention has
|
|
796
813
|
been skipped, rather than falling all the way back to the default.
|
|
814
|
+
|
|
815
|
+
The returned :class:`IssueResolution`'s ``explicit`` bit (#3966) is
|
|
816
|
+
``True`` only on the "found a real marker" return below — the
|
|
817
|
+
absent/malformed default always comes back with ``explicit=False``,
|
|
818
|
+
so a caller folding several of these together can tell a genuine
|
|
819
|
+
`ISSUE_RESOLUTION: resolved` apart from a line that was never written.
|
|
797
820
|
"""
|
|
798
821
|
if not text:
|
|
799
822
|
return IssueResolution()
|
|
@@ -808,7 +831,7 @@ def parse_issue_resolution(text: str | None) -> IssueResolution:
|
|
|
808
831
|
).strip()
|
|
809
832
|
if is_blank_issue_resolution_reason(reason):
|
|
810
833
|
reason = ""
|
|
811
|
-
return IssueResolution(value=value, reason=reason)
|
|
834
|
+
return IssueResolution(value=value, reason=reason, explicit=True)
|
|
812
835
|
return IssueResolution()
|
|
813
836
|
|
|
814
837
|
|
|
@@ -49,6 +49,7 @@ from coord.comments import (
|
|
|
49
49
|
format_stuck,
|
|
50
50
|
)
|
|
51
51
|
from coord.config import Config
|
|
52
|
+
from coord.decomposition_chat import is_size_triage_review_target
|
|
52
53
|
from coord.dispatch import (
|
|
53
54
|
AGENT_PORT,
|
|
54
55
|
post_advisory,
|
|
@@ -4452,6 +4453,31 @@ def post_transition(transition: Transition, record: dict, entry: dict) -> None:
|
|
|
4452
4453
|
EVENT_PLAN if posted else EVENT_COMPLETION,
|
|
4453
4454
|
branch=entry.get("branch"),
|
|
4454
4455
|
)
|
|
4456
|
+
elif (
|
|
4457
|
+
transition.event == EVENT_COMPLETION
|
|
4458
|
+
and assignment_type == "review"
|
|
4459
|
+
and is_size_triage_review_target(record.get("review_target"))
|
|
4460
|
+
):
|
|
4461
|
+
# #3971: a size-triage leg (`coord.decomposition_chat.
|
|
4462
|
+
# dispatch_size_triage_review`) is dispatched as `type="review"`
|
|
4463
|
+
# ONLY to reuse `coord.agent`'s CLI-enforced read-only deny-list for
|
|
4464
|
+
# that type (see that function's own comment) — it is never a real
|
|
4465
|
+
# code review, has no PR to review, and (per its own briefing) never
|
|
4466
|
+
# emits REVIEW_VERDICT/END_REVIEW. Before this branch existed, the
|
|
4467
|
+
# generic `assignment_type == "review"` arm below tried to extract
|
|
4468
|
+
# findings from a `SIZE_TRIAGE_VERDICT`-shaped log, failed, and
|
|
4469
|
+
# posted "Review assignment completed but findings could not be
|
|
4470
|
+
# extracted" to the issue (quadraui#2304, 2026-11-10 UTC) — a
|
|
4471
|
+
# confusing, actionable-looking comment about a leg that already
|
|
4472
|
+
# posts no comment at all by design (`dispatch_size_triage_review`'s
|
|
4473
|
+
# own docstring). `coord.dispatch.enforce_preflight_guard` is what
|
|
4474
|
+
# actually consumes this leg's verdict (fetching and parsing the
|
|
4475
|
+
# raw log itself the next time it runs) — nothing here needs to.
|
|
4476
|
+
mark_notified(
|
|
4477
|
+
transition.assignment_id,
|
|
4478
|
+
transition.event,
|
|
4479
|
+
branch=entry.get("branch"),
|
|
4480
|
+
)
|
|
4455
4481
|
elif transition.event == EVENT_COMPLETION and assignment_type == "review":
|
|
4456
4482
|
# For review assignments, parse the structured findings and post as a
|
|
4457
4483
|
# PR review (or issue comment when no PR number is available). Fall
|