code-coordinator 0.5.262__tar.gz → 0.5.264__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.262 → code_coordinator-0.5.264}/PKG-INFO +1 -1
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/code_coordinator.egg-info/PKG-INFO +1 -1
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/code_coordinator.egg-info/SOURCES.txt +1 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/code_coordinator.egg-info/scm_file_list.json +1 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/code_coordinator.egg-info/scm_version.json +2 -2
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/release.py +23 -1
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-release-propagate.service +32 -11
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-release-window.service +52 -15
- code_coordinator-0.5.264/coord/deploy/coord-release-window.timer +55 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/housekeeping.py +42 -10
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/merge_queue.py +57 -6
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/serve_app.py +8 -4
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/skills/coord-dispatch-verbs/SKILL.md +6 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/skills/drive-queue-preflight/SKILL.md +6 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/skills/fleet-restart-safety/SKILL.md +6 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/skills/merge-stuck-triage/SKILL.md +6 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/skills/pipeline-limbo-triage/SKILL.md +6 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/skills/portal-followup/SKILL.md +6 -0
- code_coordinator-0.5.264/coord/skills/release-now/SKILL.md +177 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/skills/review-verdict-recovery/SKILL.md +6 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/skills/tui-quadraui-workflow/SKILL.md +6 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/skills/update-issue/SKILL.md +6 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-release-propagate.service +32 -11
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-release-window.service +52 -15
- code_coordinator-0.5.264/deploy/coord-release-window.timer +55 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_board_cap_762.py +100 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_install_skills.py +33 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_release_window.py +62 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_thin_client_board_audit.py +5 -0
- code_coordinator-0.5.262/coord/deploy/coord-release-window.timer +0 -39
- code_coordinator-0.5.262/deploy/coord-release-window.timer +0 -39
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/.claude/commands/board.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/.claude/commands/complete-session.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/.claude/commands/coordinator.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/.githooks/_lib.sh +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/.githooks/post-checkout +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/.githooks/post-commit +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/.githooks/post-merge +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/.github/workflows/auto-release.yml +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/.github/workflows/cargo-test.yml +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/.github/workflows/publish.yml +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/.github/workflows/release-tui.yml +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/.github/workflows/test.yml +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/.gitignore +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/CLAUDE.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/GOAL.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/LICENSE +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/MANIFEST.in +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/README.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/code_coordinator.egg-info/dependency_links.txt +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/code_coordinator.egg-info/entry_points.txt +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/code_coordinator.egg-info/requires.txt +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/code_coordinator.egg-info/top_level.txt +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/__init__.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/_board_mapping.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/acceptance.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/acceptance_drivers.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/agent.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/agent_app.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/agent_update.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/agents/opencode/.gitignore +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/agents/opencode/agents/work.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/agents/opencode/routing.jsonc +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/approved_work.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/audit.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/auto_loop.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/block_log.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/board_bool_guard.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/board_schema.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/board_service.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/board_wire.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/brain.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/branch_model.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/bug_intake.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/cargo_cache.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/ci_fix.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/ci_github.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/ci_gitlab.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/ci_store.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/claim.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/cli.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/client.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/__init__.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/_common.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/acceptance.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/agent_ops.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/audit.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/chat.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/dispatch.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/dispatch_workers.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/drive.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/drive_queue.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/gate_a.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/gates.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/issues.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/lifecycle.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/merge.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/milestone.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/plan_followup.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/plans.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/portal.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/pr.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/repo.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/report.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/review.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/scorecard.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/sessions.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/setup.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/status.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/terminal.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/test_gate.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/commands/tui.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/comments.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/config.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/config_reload.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/confirm_test.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/conflict_fix.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/dao.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/dashboard/__init__.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/dashboard/fixture.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/dashboard/index.html +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/dashboard/server.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/dashboard/terminal.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/db.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/dead_end.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/decomposition_chat.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/README.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-failure-notify.service +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-fleet-watchdog.service +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-fleet-watchdog.timer +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy_manifest.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy_units.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deps.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/diagnose.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/dispatch.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/dist_name.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/drive.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/drive_queue.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/drive_state.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/events.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/failure_class.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/filelock.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/fleet_config_health.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/forge_availability.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/freshness.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/gate_a.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/gate_b.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/gate_snapshot.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/gates.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/github_ops.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/github_throttle.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/goal.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/graph_health.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/__init__.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/aggregate.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/__init__.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/agent_install.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/cargo_targets.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/claude_binary.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/disk.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/fleet_board.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/fleet_deploy_lanes.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/fleet_phantom.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/fleet_unit_drift.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/graph.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/graphify_cli.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/index_lock.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/issues_sync_staleness.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/plan_usage.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/release_cordon.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/repo_state.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/spawned_coord.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/stalled_pipeline.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/timer_active.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/toolchain.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/unit_drift.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/unit_enablement.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/checks/worktrees.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/cli.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/context.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/fleet_snapshot.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/models.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/pypi.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/registry.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/render.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/health/units.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/hooks.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/interactive.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/issue_store.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/issues_sync_status.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/liveness_auditor.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/machine_pause.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/milestone_chat.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/milestone_dispatch.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/milestone_gate.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/milestone_order.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/mock_author.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/models.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/network.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/new_issue_chat.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/notifier/__init__.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/notifier/baseline.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/notifier/cli.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/notifier/collect.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/notifier/digest.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/notifier/models.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/notifier/predicate.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/notifier/service.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/notifier/store.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/notifier/transport.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/notify.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/openapi.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/overlap_fence.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/overlap_predict.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/parentage.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/parentage_github.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/pipeline.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/plan_parser.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/plans.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/platform_paths.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/portal_bridge.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/portal_store.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/portal_sync.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/pr_body_lint.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/prereqs.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/progress.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/providers/__init__.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/providers/base.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/providers/claude.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/providers/claude_pty.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/providers/opencode.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/queue_diagnose.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/reconcile.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/reconcile_tick.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/refine_chat.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/release_cordon.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/release_propagate.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/release_verify.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/release_window.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/repo_edit.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/repo_onboard.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/reports.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/revalidate.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/review.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/scorecard.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/self_health.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/smoke.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/spend_ceiling.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/split_work.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/sql.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/stage_projection.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/state.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/test_author.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/test_chat.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/test_orchestrator.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/test_report.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/tui_release.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/usage.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/usage_limits.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/usage_rollup.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/worker_events.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/coordinator.example.yml +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-failure-notify.service +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-failure-notify.sh +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-fleet-watchdog.service +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-fleet-watchdog.timer +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-web-dist-build.sh +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-web-rollback.sh +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/deploy/node-shim.sh +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/ADR_COORD_WEB_ACCEPTANCE_SUITE.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/ADR_COORD_WEB_CI.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/ADR_COORD_WEB_DIST.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/AGENT_OPERATIONS.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/ARCHITECTURE.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/ARCH_SECURITY_GATES.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/COCKPIT.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/COST_DISCIPLINE.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/CROSS_PLATFORM.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/CUSTOMER_FACING_APPS.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/CUSTOMER_PORTAL.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/DRIVE_QUEUE.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/EPHEMERAL_WORKERS.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/FORGE_MIGRATION.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/GRAPHIFY_SETUP.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/ISSUE_GUIDANCE.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/MAC_MINI.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/NOTIFIER.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/OPENCODE_VERIFICATION.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/OPERATING_GOTCHAS.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/OPERATOR_GUIDES.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/ORACLE_LOOP.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/PHONE_WEBAPP.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/PIPELINE_V2.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/PLATFORM_EVOLUTION.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/SECOND_BACKEND.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/STORE_SERVICE.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/TEST_FIRST_BUG_LANE.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/WEB_CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/WSL_WINDOWS_WORKER.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/mocks/web/README.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/mocks/web/_tokens.css +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/mocks/web/issue-detail.html +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/mocks/web/pipeline-narrow.html +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/docs/mocks/web/pipeline-wide.html +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/graphify-out/.gitignore +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/install-agent.sh +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/pyproject.toml +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/audit_review_verdict_overrides.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/azure-workers/bootstrap-shared.sh +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/azure-workers/build-worker-image.sh +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/azure-workers/coordinator-machine.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/azure-workers/epic-down.sh +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/azure-workers/epic-up.sh +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/azure-workers/preflight.sh +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/azure-workers/provision-worker.sh +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/azure-workers/tailnet-acl.hujson +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/azure-workers/verify-github-token.sh +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/check_gh_argv_containment.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/codegen.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/coord-test-runner.sh +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/coord-venv-rollback.sh +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/drive-batch.sh +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/fleet_watchdog.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/gen_board_fixture.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/gen_mock_index.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/next_release_tag.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/run_tests_in_populated_home.sh +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/run_tests_without_gh.sh +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/smoke_437_interactive.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/verify_878_review_capture.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/verify_release_published.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/scripts/verify_release_wheel.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/setup.cfg +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/SMOKE_SET.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/__init__.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-33/audit_1039.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-33/contract.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-33/manifest.yml +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-33/mocks/audit-panel-detail.screen +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-33/mocks/audit-panel-empty.screen +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-33/mocks/audit-panel-filters.screen +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-33/mocks/audit-panel-populated.screen +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-37/conftest.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-37/contract.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-37/manifest.yml +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-38/contract.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-38/manifest.yml +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-38/mocks/plans-base.screen +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-38/mocks/plans-detail-pane.screen +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-38/mocks/plans-help-overlay.screen +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-38/mocks/plans-palette.screen +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-38/mocks/plans-rightclick-epic.screen +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-38/mocks/plans-rightclick-header.screen +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-38/mocks/plans-rightclick-stub.screen +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-38/plans_detail_1122.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-38/plans_help_1124.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-38/plans_rightclick_1123.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-51/contract.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-51/manifest.yml +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-51/tsconfig.json +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-65/board_split_2288.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-65/board_tabs_2282.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-65/board_tabs_close_2283.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-65/contract.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-65/detail_substate_2285.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-65/manifest.yml +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-65/mocks/board-baseline-no-tabs.screen +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-65/mocks/board-pinned-3-tabs.screen +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-65/mocks/board-preview-tab.screen +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-65/mocks/board-split-side-by-side.screen +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-65/mocks/board-tab-context-menu.screen +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-65/mocks/board-tabs-help-overlay.screen +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-65/mocks/board-tabs-overflow.screen +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-65/mocks/pipeline-tabs-independent.screen +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-65/pipeline_tabs_2284.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-65/tabs_discoverability_2287.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-65/tabs_persistence_2286.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-67/approved_items_2532.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-67/contract.md +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-67/manifest.d/2533.yml +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-67/manifest.yml +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-67/mocks/approved-items-chat-opened.screen +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-67/mocks/approved-items-context-menu.screen +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-67/mocks/approved-items-detail.screen +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-67/mocks/approved-items-empty.screen +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-67/mocks/approved-items-populated.screen +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-67/pull_decomposition_2533.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/conftest.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/board-pipeline-basic.json +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/opencode_run_sample.jsonl +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/playwright/all_pass.json +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/playwright/global_setup_crash.json +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/playwright/mixed_fail.json +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/playwright/retry_then_pass.json +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/playwright/skip.json +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/playwright/truncated.json +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_acceptance.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_acceptance_drivers.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_api_error.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_app.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_branch_base.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_branch_capture.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_config_free_1712.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_deploy_units_endpoint.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_dirty_worktree.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_drive_queue_reconcile_2373.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_graph_self_heal.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_health_h3.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_idle_restart.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_push_failure.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_reap.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_repos_and_pull.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_restart_services_endpoint.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_skills_self_heal.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_startup_diagnostics.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_update.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_update_bluegreen.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_usage_limit.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_agent_zero_commit.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_ambient_home_isolation.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_approve_dependency_busy_2804.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_approve_reject_plan.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_approve_usage_gate.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_approved_work_2532.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_assignment_already_recorded_daemon.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_audit_log.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_audit_outcome.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_audit_query.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_auto_loop.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_auto_release_publish_2035.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_base_checkout_restore.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_block_log.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_board_fixture.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_board_read_path.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_board_schema.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_board_service.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_board_state.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_board_wire.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_brain.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_branch_model.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_bug_intake.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_build_worker_image_env_update.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cargo_cache.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_check_gh_argv_containment.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_ci_acceptance_gate_1950.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_ci_fix.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_ci_gitlab.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_ci_parity_2091.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_ci_store.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_claim.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_claude_md_budget.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_acceptance.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_assign.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_assign_interactive_remote.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_assign_provider.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_assign_repo_drift_2219.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_audit.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_chat_continue.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_decide.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_diagnose_config_provenance.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_diagnose_forge_availability.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_diagnose_graph.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_diagnose_self.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_doctor.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_doctor_config_free_1801.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_drive.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_drive_queue.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_escalate.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_fix_headless_review.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_gate_a.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_install_drift.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_issue_comment.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_issue_create_label.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_issue_reopen.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_issue_view_list.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_merge.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_milestone_assign.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_milestone_capture.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_milestone_chat_add_child.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_milestone_gate_b.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_milestone_gate_c.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_milestone_order.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_milestone_ship.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_network.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_new_issue_chat.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_plans.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_portal.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_pr.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_pull_artifact.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_queue.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_reattach_sessions.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_refine_board.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_release_preflight.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_release_propagate.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_repo_2220.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_review_test_author_tracking_epic_2639.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_scorecard.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_set_review_findings.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_status_advisory_terminal.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_status_contested_tag.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_status_merge_queue.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_status_provider.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_status_review_finalizing.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_status_test_failed_tag.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_status_usage_limit.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_sync_comments_873.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_test_plan.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_track.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_tui_update.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cli_wait.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_client_base_install.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_commands_common.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_comments.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_completion_summary.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_config.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_config_acceptance.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_config_audit.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_config_pricing.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_config_usage_gate.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_confirm_test.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_conflict_fix.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_conflict_fix_semantic.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_coord_log_daemon_fallback_2547.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_coord_test.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_coord_test_runner_baseline.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_coord_test_runner_populated_home.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_coord_test_runner_routing.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_coord_test_runner_toolchain.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_coord_uat.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_coord_web_sse_restart_live.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_coordinator_machine.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_cross_platform_imports.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_dao.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_dashboard.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_dashboard_fixture.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_dashboard_terminal.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_dashboard_terminal_live.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_db.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_dead_end.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_decomposition_chat.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_deploy_coord_db_backup.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_deploy_coord_web_dist.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_deploy_coord_web_rollback.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_deploy_drive_queue_unit.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_deploy_failure_notify_unit.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_deploy_manifest.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_deploy_notify_unit.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_deploy_units_lane.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_deploy_web_unit.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_deps.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_diagnose.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_dispatch.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_dispatch_target_validation.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_dist_name.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_done_housekeeping.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_drive.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_drive_queue.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_drive_queue_blocked_rendering.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_drive_queue_launch_argv.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_drive_queue_max_parallel_per_repo_config.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_drive_queue_roll_pending.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_drive_queue_self_cordon_escalation.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_drive_state.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_drive_tmux.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_epic_up_capability_detection.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_epic_up_image_provenance.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_errors.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_events.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_failure_class.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_filelock.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_fix_of_force_override.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_fleet_config_health.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_fleet_health_probes.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_fleet_health_snapshot.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_fleet_watchdog.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_forge_availability.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_freshness.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_gate_a.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_gate_b.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_gate_snapshot_staleness.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_gates.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_gather_fleet_tmux_sessions.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_gen_mock_index.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_generated_rust_fixture.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_generated_types_fixture.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_github_ops.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_github_throttle.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_goal.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_graph_health.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_graph_selfheal_absent_2237.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_handoff.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_health_checks.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_health_cli.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_health_cli_graph.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_health_config.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_health_context.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_health_coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_health_deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_health_fix.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_health_incident_regression.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_health_issues_sync_staleness.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_health_pypi.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_health_registry.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_health_release_cordon_probe.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_health_timer_active.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_health_toolchain.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_health_unit_drift.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_health_unit_enablement.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_hooks.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_human_attended_437.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_init.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_integration.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_interactive_briefing_echo.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_interactive_pane_log_2541.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_interactive_prefill_state.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_interactive_session_relaunch.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_interactive_test_verdict_backstop.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_interactive_token_attribution.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_interactive_worktree.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_issue_store_seam.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_issues_sync_status.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_liveness_auditor.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_liveness_notify.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_lock_contention_ratchet.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_machine_pause.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_merge_queue.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_merge_verify.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_milestone_chat.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_milestone_gate.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_milestone_order.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_milestone_seam.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_mock_author.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_model_tiering.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_models.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_models_config_labels.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_needs_attention.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_network.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_new_issue_chat.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_next_release_tag.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_node_shim.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_notifier_baseline.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_notifier_cli.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_notifier_collect.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_notifier_config.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_notifier_drive_seam.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_notifier_isolation.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_notifier_predicate.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_notifier_quiet_hours.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_notifier_service.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_notify.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_notify_drain.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_openapi.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_operational_defaults.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_overlap_fence.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_overlap_predict.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_packaged_deploy_units.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_parentage.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_paste_landed.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_phantom_heal_venv_independence_2570.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_pipeline.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_plan_followup_approve_plan_command.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_plan_followup_pr_command.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_plan_followup_review_command.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_plan_only.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_plan_parser.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_platform_paths.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_portal_bridge.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_portal_config.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_portal_store.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_portal_sync.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_pr_body_lint.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_prereqs.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_production_db_guard.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_progress.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_provider_seam.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_providers.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_providers_config_labels.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_providers_pty.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_quiet_hours.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_quiet_hours_store_2146.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_reap_merged_sessions.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_reap_stale_interactive_tick.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_reconcile.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_reconcile_branch.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_reconcile_completions.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_reconcile_late_agent_reports_2547.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_reconcile_merges.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_reconcile_no_agent_record.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_reconcile_tick.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_reconcile_usage_limit_done.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_refine_chat.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_release_cordon_2101.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_release_cordon_deadlock_2240.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_release_cordon_stuck_2490.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_release_propagate.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_release_propagate_threshold.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_release_roll_between_legs_2854.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_release_roll_window_handoff.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_release_unified_1242.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_release_verify.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_release_window.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_remote_auto_prune.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_remote_interactive_reaper.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_repo_add.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_repo_edit_2220.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_repo_graph_fleet_2237.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_repo_onboard_2220.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_report_result_push.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_reports.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_retry.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_retry_advisory_1606.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_retry_type_1636.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_revalidate.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_review.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_review_end_review_without_verdict.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_review_parse_failure_diagnostic.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_review_reaffirm.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_review_state.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_review_verdict_backstop.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_review_verdict_override_audit.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_review_verdict_relay.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_review_zero_commits.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_scoped_review_wiring.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_scorecard.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_self_health.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_serve.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_serve_app_board_trim.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_session.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_slice_issue_attribution.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_smoke.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_smoke_live_checkout_restore.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_smoke_workflow.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_spend_ceiling.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_spend_ceiling_coordinator.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_split.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_split_work.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_sql_dialect.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_stage_projection.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_stalled_pipeline.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_state.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_state_review_findings_daemon.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_status_fleet_footer.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_stop_1567.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_store_contract.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_stuck.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_stuck_test_state_watchdog_2803.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_terminal_command.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_test_author.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_test_chat.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_test_orchestrator.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_test_report.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_test_verdict_parsing.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_test_verdict_transcript_floor.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_text_io_encoding_audit.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_thin_client_config_load_1080.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_thin_client_daemon_routing_906.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_tmux_host.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_tmux_session.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_transcript_floor.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_usage.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_usage_limits.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_usage_rollup.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_venv_live_install_2121.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_version_single_source.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_watch.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_worker_env_venv_isolation.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_worker_events.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_worker_image_pin_sync.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_worker_safety.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_worker_test_scoping.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_worktree.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tests/test_worktree_rmtree_chokepoint.py +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/Cargo.lock +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/Cargo.toml +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/cargo-config-local-quadraui.toml.example +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/approved.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/audit.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/chat.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/data.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/dialogs.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/doc_tabs.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/drive.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/drive_queue.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/escalation.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/events.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/fixtures.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/fleet_health.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/fleet_sessions.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/fleet_terminals.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/format.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/milestone_dag.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/mod.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/msv.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/pipeline.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/plans.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/render.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/reports.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/sessions.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/settings_ui.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/sidebar.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/terminal.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/tests.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/types/generated.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/types.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/app/workspace.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/bin/gtk.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/commands.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/lib.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/main.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/src/settings.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/tests/acceptance.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/tests/cli.rs +0 -0
- {code_coordinator-0.5.262 → code_coordinator-0.5.264}/tui/tests/fixtures/board_sample.json +0 -0
|
@@ -265,6 +265,7 @@ coord/skills/fleet-restart-safety/SKILL.md
|
|
|
265
265
|
coord/skills/merge-stuck-triage/SKILL.md
|
|
266
266
|
coord/skills/pipeline-limbo-triage/SKILL.md
|
|
267
267
|
coord/skills/portal-followup/SKILL.md
|
|
268
|
+
coord/skills/release-now/SKILL.md
|
|
268
269
|
coord/skills/review-verdict-recovery/SKILL.md
|
|
269
270
|
coord/skills/tui-quadraui-workflow/SKILL.md
|
|
270
271
|
coord/skills/update-issue/SKILL.md
|
{code_coordinator-0.5.262 → code_coordinator-0.5.264}/code_coordinator.egg-info/scm_file_list.json
RENAMED
|
@@ -241,6 +241,7 @@
|
|
|
241
241
|
"coord/skills/merge-stuck-triage/SKILL.md",
|
|
242
242
|
"coord/skills/pipeline-limbo-triage/SKILL.md",
|
|
243
243
|
"coord/skills/portal-followup/SKILL.md",
|
|
244
|
+
"coord/skills/release-now/SKILL.md",
|
|
244
245
|
"coord/skills/review-verdict-recovery/SKILL.md",
|
|
245
246
|
"coord/skills/tui-quadraui-workflow/SKILL.md",
|
|
246
247
|
"coord/skills/update-issue/SKILL.md",
|
|
@@ -3146,7 +3146,29 @@ def release_nightly_window(
|
|
|
3146
3146
|
existing = read_roll_pending()
|
|
3147
3147
|
|
|
3148
3148
|
if dry_run:
|
|
3149
|
-
|
|
3149
|
+
# #2866: a marker naming a STALE target (not equal to the freshly
|
|
3150
|
+
# resolved `record.target_version` — PyPI's "latest" moved, or the
|
|
3151
|
+
# daemon reached/passed it some other way since the marker was set)
|
|
3152
|
+
# must never be echoed back as "would attempt ... --target <stale>".
|
|
3153
|
+
# This is the exact 2026-08-28 incident: a `propagate`-set marker
|
|
3154
|
+
# for v0.5.254 survived on disk after the daemon had already
|
|
3155
|
+
# reached v0.5.258 by other means, and `nightly-window --dry-run`
|
|
3156
|
+
# read it back and printed a proposal to roll BACKWARDS to
|
|
3157
|
+
# v0.5.254 — cleared by hand with `coord drive-queue cancel-roll`
|
|
3158
|
+
# at the time. In reality a NON-dry-run run never fires a stale
|
|
3159
|
+
# target either (section 3 below replaces it with
|
|
3160
|
+
# `record.target_version` instead, whenever it differs) — this
|
|
3161
|
+
# branch only makes the --dry-run description match that real
|
|
3162
|
+
# behaviour instead of quoting the stale value as if it would run.
|
|
3163
|
+
if existing is not None and existing.target_version != record.target_version:
|
|
3164
|
+
click.echo(
|
|
3165
|
+
f"a roll is pending for a stale target ({existing.describe()}) — "
|
|
3166
|
+
f"would replace it with v{record.target_version} ({daemon_name} "
|
|
3167
|
+
f"currently reports v{record.daemon_version or '?'}) rather than "
|
|
3168
|
+
"ever firing the stale value (#2866); its original set_at/"
|
|
3169
|
+
"deferrals would be preserved (#2607)"
|
|
3170
|
+
)
|
|
3171
|
+
elif existing is not None:
|
|
3150
3172
|
click.echo(
|
|
3151
3173
|
f"a roll is already pending ({existing.describe()}) — would "
|
|
3152
3174
|
f"attempt `coord release propagate --daemon-host {daemon_name} "
|
{code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-release-propagate.service
RENAMED
|
@@ -64,17 +64,38 @@
|
|
|
64
64
|
#
|
|
65
65
|
# MIN-RELEASES-BEHIND GATE (#2583) — OFF BY DEFAULT, NOT SET HERE
|
|
66
66
|
# -----------------------------------------------------------------
|
|
67
|
-
# `coord release propagate` (and `coord release nightly-window`,
|
|
68
|
-
# support holding a run below a
|
|
69
|
-
# `propagation.min_releases_behind` in coordinator.yml,
|
|
70
|
-
# either command — instead of attempting a roll on ANY
|
|
71
|
-
# default, `min_releases_behind=1`, unchanged unless
|
|
72
|
-
# `ExecStart=` deliberately does NOT pass `--min-behind`:
|
|
73
|
-
#
|
|
74
|
-
#
|
|
75
|
-
#
|
|
76
|
-
#
|
|
77
|
-
#
|
|
67
|
+
# `coord release propagate` (and `coord release nightly-window`, its sibling
|
|
68
|
+
# in `coord-release-window.service`) support holding a run below a
|
|
69
|
+
# configurable delta — `propagation.min_releases_behind` in coordinator.yml,
|
|
70
|
+
# or `--min-behind` on either command — instead of attempting a roll on ANY
|
|
71
|
+
# delta at all (the default, `min_releases_behind=1`, unchanged unless
|
|
72
|
+
# configured). This `ExecStart=` deliberately does NOT pass `--min-behind`:
|
|
73
|
+
# THIS timer reads `propagation.min_releases_behind` straight from
|
|
74
|
+
# coordinator.yml, un-overridden, and that is intentional — see #2866's
|
|
75
|
+
# split:
|
|
76
|
+
#
|
|
77
|
+
# | Trigger | Threshold | Role |
|
|
78
|
+
# |-----------------------------------|-----------|----------------------|
|
|
79
|
+
# | coord-release-propagate.timer | 5 (config)| opportunistic — must |
|
|
80
|
+
# | (this unit, every 20 min) | | not cordon/drain the |
|
|
81
|
+
# | | | fleet every ~45 min, |
|
|
82
|
+
# | | | auto-release.yml's |
|
|
83
|
+
# | | | measured cadence |
|
|
84
|
+
# | | | (12 releases on |
|
|
85
|
+
# | | | 2026-08-27) |
|
|
86
|
+
# | coord-release-window.timer | 1 (fixed | the guarantee — one |
|
|
87
|
+
# | (daily) | via | painless roll a day, |
|
|
88
|
+
# | | --min-behind)| whatever accumulated|
|
|
89
|
+
#
|
|
90
|
+
# `coordinator.yml` is a SHARED value read by both commands — raising it
|
|
91
|
+
# here to spare this 20-minute cadence from over-eager rolls would ALSO
|
|
92
|
+
# raise `coord-release-window.service`'s threshold if that unit read the
|
|
93
|
+
# same unqualified default, which is exactly why THAT unit pins
|
|
94
|
+
# `--min-behind 1` explicitly on its own `ExecStart=` rather than relying on
|
|
95
|
+
# this shared config value. Per `docs/AGENT_OPERATIONS.md`'s "Auto-roll
|
|
96
|
+
# threshold gate" section, `propagation.min_releases_behind` must NOT be
|
|
97
|
+
# raised above 1 on a fleet that has not first taken one manual roll onto a
|
|
98
|
+
# fixed propagation lane. Below the threshold, this unit's own run reports
|
|
78
99
|
# `holding: N behind, threshold M` and exits 0, exactly like an ordinary
|
|
79
100
|
# deferral — no cordon, no host touched.
|
|
80
101
|
|
{code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/deploy/coord-release-window.service
RENAMED
|
@@ -126,20 +126,53 @@
|
|
|
126
126
|
#
|
|
127
127
|
# MIN-RELEASES-BEHIND GATE (#2583) — OFF BY DEFAULT, NOT SET HERE
|
|
128
128
|
# -----------------------------------------------------------------
|
|
129
|
-
#
|
|
130
|
-
#
|
|
131
|
-
#
|
|
132
|
-
# coordinator.yml
|
|
133
|
-
#
|
|
134
|
-
#
|
|
135
|
-
#
|
|
136
|
-
#
|
|
137
|
-
#
|
|
138
|
-
#
|
|
139
|
-
#
|
|
140
|
-
#
|
|
141
|
-
#
|
|
142
|
-
#
|
|
129
|
+
# #2866: `--min-behind 1` is set EXPLICITLY on `ExecStart=` below — this is
|
|
130
|
+
# the packaged default now, not "left unset" as an earlier revision of this
|
|
131
|
+
# comment said. The two release timers want DIFFERENT thresholds, and
|
|
132
|
+
# `propagation.min_releases_behind` in coordinator.yml is shared by both
|
|
133
|
+
# `coord release propagate` (step 3a) and `coord release nightly-window`
|
|
134
|
+
# (step 2b) — raising it to spare the 20-minute propagate cadence from
|
|
135
|
+
# cordoning/draining the fleet on every delta would ALSO raise it here,
|
|
136
|
+
# which defeats the entire point of this unit (a guaranteed daily roll,
|
|
137
|
+
# whatever accumulated):
|
|
138
|
+
#
|
|
139
|
+
# | Trigger | Threshold | Role |
|
|
140
|
+
# |-----------------------------------|-----------|----------------------|
|
|
141
|
+
# | coord-release-propagate.timer | 5 (config)| opportunistic — must |
|
|
142
|
+
# | (every 20 min) | | not cordon/drain the |
|
|
143
|
+
# | | | fleet every ~45 min, |
|
|
144
|
+
# | | | auto-release.yml's |
|
|
145
|
+
# | | | measured cadence |
|
|
146
|
+
# | | | (12 releases on |
|
|
147
|
+
# | | | 2026-08-27) |
|
|
148
|
+
# | coord-release-window.timer | 1 (here) | the guarantee — one |
|
|
149
|
+
# | (daily) | | painless roll a day, |
|
|
150
|
+
# | | | whatever accumulated |
|
|
151
|
+
#
|
|
152
|
+
# Measured on dellserver at 1 release behind: without `--min-behind` this
|
|
153
|
+
# unit inherited the shared config's `min_releases_behind=5` and reported
|
|
154
|
+
# `holding: 1 behind, threshold 5` — the daily guarantee was silently
|
|
155
|
+
# count-based instead of time-based. `--min-behind` on `ExecStart=` always
|
|
156
|
+
# wins over `propagation.min_releases_behind` (see `coord release
|
|
157
|
+
# nightly-window --help`), so this unit's threshold stays 1 regardless of
|
|
158
|
+
# what the shared config sets for the propagate timer. See
|
|
159
|
+
# `docs/AGENT_OPERATIONS.md`'s "Auto-roll threshold gate" section for why a
|
|
160
|
+
# threshold above 1 requires one manual roll first onto a fixed propagation
|
|
161
|
+
# lane — that requirement is about `propagation.min_releases_behind`
|
|
162
|
+
# (the propagate timer's knob), not this unit's hardcoded 1. A held run
|
|
163
|
+
# reports `holding: N behind, threshold M` in its own journal (`coord
|
|
164
|
+
# release window-history`) and exits 0, same as a normal `roll-pending`/
|
|
165
|
+
# `up-to-date` outcome.
|
|
166
|
+
#
|
|
167
|
+
# The dellserver drop-in this superseded
|
|
168
|
+
# (`~/.config/systemd/user/coord-release-window.service.d/override.conf`,
|
|
169
|
+
# added as the interim fix before this landed) can now be deleted — this
|
|
170
|
+
# `ExecStart=` reproduces it exactly, so removing the drop-in changes
|
|
171
|
+
# nothing. `coord agent update` rewrites this unit file on every roll but
|
|
172
|
+
# never touches a drop-in, which is why that override survived every roll
|
|
173
|
+
# since it was added but would NOT have survived a from-scratch rebuild of
|
|
174
|
+
# this host — the whole reason this is now the packaged default instead of
|
|
175
|
+
# operator-local state.
|
|
143
176
|
|
|
144
177
|
[Unit]
|
|
145
178
|
Description=Release window: set/fire the #2587 roll-pending marker on the daemon host
|
|
@@ -153,7 +186,11 @@ Type=oneshot
|
|
|
153
186
|
# it shells out to when firing an already-pending marker. A fleet that is
|
|
154
187
|
# still busy is reported and left for the drive-queue tick to keep
|
|
155
188
|
# watching, never overridden.
|
|
156
|
-
|
|
189
|
+
# #2866: --min-behind 1 is the daily guarantee's own threshold, deliberately
|
|
190
|
+
# independent of `propagation.min_releases_behind` (which the 20-minute
|
|
191
|
+
# coord-release-propagate.service alone should govern) — see the
|
|
192
|
+
# MIN-RELEASES-BEHIND GATE comment above for the full split.
|
|
193
|
+
ExecStart=%h/.local/bin/coord release nightly-window --config %h/.coord/coordinator.yml --min-behind 1
|
|
157
194
|
# Bounded by the SAME ceiling coord-release-propagate.service uses: the
|
|
158
195
|
# "marker already pending -> attempt a fire" branch shells out to `coord
|
|
159
196
|
# release propagate` with its own 1800s subprocess timeout
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# coord release nightly-window — fires coord-release-window.service
|
|
2
|
+
# (Type=oneshot) once a night. See that unit's header for the full
|
|
3
|
+
# rationale (#2112, rewritten #2587).
|
|
4
|
+
#
|
|
5
|
+
# 10:00 America/Chicago — #2866: this is what the fleet actually runs
|
|
6
|
+
# (dellserver carried it as an untracked
|
|
7
|
+
# `coord-release-window.timer.d/override.conf` drop-in from 2026-08-26
|
|
8
|
+
# until this became the packaged default), replacing the earlier packaged
|
|
9
|
+
# 03:00 UTC. Named with an explicit zone rather than a bare local wall-clock
|
|
10
|
+
# time specifically so a DST transition cannot drift the fire time by an
|
|
11
|
+
# hour twice a year — `systemd.time(7)`'s `OnCalendar=` resolves a
|
|
12
|
+
# zone-qualified spec against that zone's own clock, DST included. Still
|
|
13
|
+
# inside a low-drive-activity part of the day; the exact hour matters far
|
|
14
|
+
# less than picking ONE the operator can reason about, since #2587 already
|
|
15
|
+
# means a late/early firing costs nothing (see below). #2587: this firing
|
|
16
|
+
# itself is now fast (resolve the target, set-or-fire the roll-pending
|
|
17
|
+
# marker, return) — there is no multi-hour drain to leave room for any
|
|
18
|
+
# more. The ACTUAL roll may still land well after this fires if the fleet
|
|
19
|
+
# stays busy; that is fine and by design, since it fires the instant `coord
|
|
20
|
+
# drive-queue tick` sees the fleet's own next inter-drive gap rather than
|
|
21
|
+
# waiting for THIS timer's next fire, and never stops any timer to get
|
|
22
|
+
# there.
|
|
23
|
+
#
|
|
24
|
+
# The dellserver drop-in this superseded can now be deleted — this
|
|
25
|
+
# `OnCalendar=` reproduces it exactly (same zone-qualified spec), so
|
|
26
|
+
# removing the drop-in changes nothing. A from-scratch rebuild of that host
|
|
27
|
+
# would otherwise have silently reverted to 03:00 UTC with no warning,
|
|
28
|
+
# which is the whole reason this moved from operator-local override to
|
|
29
|
+
# packaged default.
|
|
30
|
+
#
|
|
31
|
+
# RandomizedDelaySec is small and exists only to avoid firing at the exact
|
|
32
|
+
# same wall-clock instant `coord-drive-queue.timer`'s own OnCalendar-free
|
|
33
|
+
# interval schedule might land on, not because two hosts might race this
|
|
34
|
+
# unit — it belongs on the daemon host ONLY (same rule as
|
|
35
|
+
# coord-release-propagate.timer; see that unit's header for why a second
|
|
36
|
+
# copy elsewhere is the #1440 two-overseers failure in a new costume).
|
|
37
|
+
#
|
|
38
|
+
# Persistent=true (#2112 trap 4 / acceptance-adjacent): a host that was
|
|
39
|
+
# asleep or rebooted through 03:00 still catches up on the next boot, rather
|
|
40
|
+
# than silently skipping a whole night. `coord release nightly-window`
|
|
41
|
+
# itself is idempotent — see its module docstring's `needs_roll`: a fleet
|
|
42
|
+
# already current at whatever time this actually fires touches nothing at
|
|
43
|
+
# all.
|
|
44
|
+
|
|
45
|
+
[Unit]
|
|
46
|
+
Description=Nightly release window on the daemon host (#2112, #2587)
|
|
47
|
+
|
|
48
|
+
[Timer]
|
|
49
|
+
OnCalendar=*-*-* 10:00:00 America/Chicago
|
|
50
|
+
RandomizedDelaySec=5min
|
|
51
|
+
AccuracySec=1min
|
|
52
|
+
Persistent=true
|
|
53
|
+
|
|
54
|
+
[Install]
|
|
55
|
+
WantedBy=timers.target
|
|
@@ -21,6 +21,18 @@ Two guarantees make the sweep safe:
|
|
|
21
21
|
The sweep runs automatically on a low-cadence daemon tick and on demand via
|
|
22
22
|
``coord housekeeping`` (which routes through the daemon — the canonical DB lives
|
|
23
23
|
there).
|
|
24
|
+
|
|
25
|
+
#1107 Part 3: the same sweep also archives ``merge_queue`` rows in the
|
|
26
|
+
``MERGED`` terminal state once they're older than the retention window, into
|
|
27
|
+
``merge_queue_archive`` — mirroring the move-not-delete pattern above.
|
|
28
|
+
``merge_queue`` has no natural "close" event of its own (unlike assignments,
|
|
29
|
+
which age out via ``TERMINAL_STATUSES``), so without this a MERGED row lives
|
|
30
|
+
forever: 192 such rows had accumulated by 2026-07-12 and 61 more by
|
|
31
|
+
2026-07-30, both requiring a manual one-off ``DELETE``/``coord merge --drop``
|
|
32
|
+
declog. ``coord.merge_queue.merged_issue_keys()`` unions the live table with
|
|
33
|
+
the archive so the "already merged, don't re-enqueue" dedup in
|
|
34
|
+
``enqueue_approved_work``/``staging_items`` keeps working after a row ages
|
|
35
|
+
out.
|
|
24
36
|
"""
|
|
25
37
|
|
|
26
38
|
from __future__ import annotations
|
|
@@ -48,6 +60,9 @@ _ASSIGNMENTS = "assignments"
|
|
|
48
60
|
_ASSIGNMENTS_ARCHIVE = "assignments_archive"
|
|
49
61
|
_NOTIFICATIONS = "notifications"
|
|
50
62
|
_NOTIFICATIONS_ARCHIVE = "notifications_archive"
|
|
63
|
+
_MERGE_QUEUE = "merge_queue"
|
|
64
|
+
_MERGE_QUEUE_ARCHIVE = "merge_queue_archive"
|
|
65
|
+
_MERGE_QUEUE_MERGED_STATE = "merged"
|
|
51
66
|
_BATCH = 400 # keep IN(...) clauses well under SQLite's 999-variable limit
|
|
52
67
|
|
|
53
68
|
|
|
@@ -124,20 +139,26 @@ def _move_rows(
|
|
|
124
139
|
|
|
125
140
|
|
|
126
141
|
def sweep(*, dry_run: bool = False, now: float | None = None) -> dict:
|
|
127
|
-
"""Archive stale terminal assignments + their notifications
|
|
142
|
+
"""Archive stale terminal assignments + their notifications + merged
|
|
143
|
+
merge_queue entries.
|
|
128
144
|
|
|
129
145
|
Returns ``{"archived_assignments": N, "archived_notifications": M,
|
|
130
|
-
"dry_run": bool, "retention_days": D}``.
|
|
131
|
-
were (or, for ``dry_run``, would be)
|
|
146
|
+
"archived_merge_queue": K, "dry_run": bool, "retention_days": D}``.
|
|
147
|
+
``archived_*`` are the counts that were (or, for ``dry_run``, would be)
|
|
148
|
+
moved. A no-op returns zeros.
|
|
132
149
|
|
|
133
150
|
Conservative by construction: nothing active, recent (within the archive
|
|
134
151
|
window), queued-for-merge, latest-of-an-open-issue, or review-linked to any
|
|
135
|
-
such row is ever moved.
|
|
152
|
+
such row is ever moved. Merge queue entries are archived only once they
|
|
153
|
+
are in the terminal ``MERGED`` state (#1107 Part 3) — non-terminal /
|
|
154
|
+
conflicted entries are left for ``prune_stale_queue_entries`` or manual
|
|
155
|
+
``coord merge --drop``.
|
|
136
156
|
"""
|
|
137
157
|
cutoff = _archive_cutoff(now)
|
|
138
158
|
result = {
|
|
139
159
|
"archived_assignments": 0,
|
|
140
160
|
"archived_notifications": 0,
|
|
161
|
+
"archived_merge_queue": 0,
|
|
141
162
|
"dry_run": dry_run,
|
|
142
163
|
"retention_days": _archive_retention_days(),
|
|
143
164
|
}
|
|
@@ -151,13 +172,19 @@ def sweep(*, dry_run: bool = False, now: float | None = None) -> dict:
|
|
|
151
172
|
conn, f"SELECT {_KEEP_INDEX_COLUMNS} FROM {_ASSIGNMENTS}" # noqa: S608
|
|
152
173
|
).fetchall()
|
|
153
174
|
]
|
|
154
|
-
|
|
175
|
+
mq_rows = sql.execute(
|
|
176
|
+
conn,
|
|
177
|
+
"SELECT assignment_id, state, last_attempt, enqueued_at " # noqa: S608
|
|
178
|
+
f"FROM {_MERGE_QUEUE}",
|
|
179
|
+
).fetchall()
|
|
180
|
+
mq_ids = {r["assignment_id"] for r in mq_rows if r["assignment_id"]}
|
|
181
|
+
mq_merged_ids = [
|
|
155
182
|
r["assignment_id"]
|
|
156
|
-
for r in
|
|
157
|
-
conn, f"SELECT assignment_id FROM merge_queue" # noqa: S608
|
|
158
|
-
).fetchall()
|
|
183
|
+
for r in mq_rows
|
|
159
184
|
if r["assignment_id"]
|
|
160
|
-
|
|
185
|
+
and (r["state"] or "").lower() == _MERGE_QUEUE_MERGED_STATE
|
|
186
|
+
and (r["last_attempt"] or r["enqueued_at"] or 0) < cutoff
|
|
187
|
+
]
|
|
161
188
|
open_keys = {
|
|
162
189
|
(r["repo_name"], r["number"])
|
|
163
190
|
for r in sql.execute(
|
|
@@ -194,7 +221,8 @@ def sweep(*, dry_run: bool = False, now: float | None = None) -> dict:
|
|
|
194
221
|
|
|
195
222
|
result["archived_assignments"] = len(candidates)
|
|
196
223
|
result["archived_notifications"] = len(notif_ids)
|
|
197
|
-
|
|
224
|
+
result["archived_merge_queue"] = len(mq_merged_ids)
|
|
225
|
+
if dry_run or (not candidates and not notif_ids and not mq_merged_ids):
|
|
198
226
|
return result
|
|
199
227
|
|
|
200
228
|
with conn:
|
|
@@ -206,4 +234,8 @@ def sweep(*, dry_run: bool = False, now: float | None = None) -> dict:
|
|
|
206
234
|
_move_rows(
|
|
207
235
|
conn, _ASSIGNMENTS, _ASSIGNMENTS_ARCHIVE, "assignment_id", candidates
|
|
208
236
|
)
|
|
237
|
+
if mq_merged_ids:
|
|
238
|
+
_move_rows(
|
|
239
|
+
conn, _MERGE_QUEUE, _MERGE_QUEUE_ARCHIVE, "assignment_id", mq_merged_ids
|
|
240
|
+
)
|
|
209
241
|
return result
|
|
@@ -12,6 +12,7 @@ from __future__ import annotations
|
|
|
12
12
|
import inspect
|
|
13
13
|
import json
|
|
14
14
|
import logging
|
|
15
|
+
import sqlite3
|
|
15
16
|
import time
|
|
16
17
|
from dataclasses import dataclass, field
|
|
17
18
|
from datetime import datetime, timezone
|
|
@@ -3753,6 +3754,58 @@ def save_queue(items: list[QueuedMerge]) -> None:
|
|
|
3753
3754
|
retry_on_locked(_write)
|
|
3754
3755
|
|
|
3755
3756
|
|
|
3757
|
+
# ── Merged-history lookups (#1107 Part 3) ───────────────────────────────────
|
|
3758
|
+
#
|
|
3759
|
+
# `housekeeping.sweep()` archives MERGED merge_queue rows older than the
|
|
3760
|
+
# archive retention window into `merge_queue_archive` (same move-not-delete
|
|
3761
|
+
# pattern as `assignments`/`notifications`) so the live table stays bounded
|
|
3762
|
+
# instead of growing forever. `enqueue_approved_work()` and `staging_items()`
|
|
3763
|
+
# both dedup on "(repo, issue) already merged" to avoid re-surfacing an issue
|
|
3764
|
+
# whose prior work attempt already shipped — once the winning entry ages out
|
|
3765
|
+
# of the live table, that check must still see it, so it consults the
|
|
3766
|
+
# archive too.
|
|
3767
|
+
|
|
3768
|
+
def _archived_merged_issue_keys(conn: sqlite3.Connection) -> set[tuple[str, int]]:
|
|
3769
|
+
"""(repo_name, issue_number) pairs recorded MERGED in the archive.
|
|
3770
|
+
|
|
3771
|
+
`merge_queue_archive` only exists once a housekeeping sweep has archived
|
|
3772
|
+
at least one row (or archiving is disabled entirely), so this is
|
|
3773
|
+
defensive against the table being absent.
|
|
3774
|
+
"""
|
|
3775
|
+
try:
|
|
3776
|
+
rows = sql.execute(
|
|
3777
|
+
conn,
|
|
3778
|
+
"SELECT repo_name, issue_number FROM merge_queue_archive WHERE state = ?",
|
|
3779
|
+
(MERGED,),
|
|
3780
|
+
).fetchall()
|
|
3781
|
+
except sql.driver_errors(): # #2784: not just sqlite3.OperationalError
|
|
3782
|
+
# "no such table" surfaces as a *different* driver-named exception
|
|
3783
|
+
# per backend (sqlite3.OperationalError vs psycopg.errors.
|
|
3784
|
+
# UndefinedTable), so this must go through the dialect seam or the
|
|
3785
|
+
# not-yet-archived case becomes an uncaught crash on Postgres.
|
|
3786
|
+
return set()
|
|
3787
|
+
return {(r["repo_name"], r["issue_number"]) for r in rows}
|
|
3788
|
+
|
|
3789
|
+
|
|
3790
|
+
def merged_issue_keys() -> set[tuple[str, int]]:
|
|
3791
|
+
"""All ``(repo_name, issue_number)`` pairs ever recorded MERGED.
|
|
3792
|
+
|
|
3793
|
+
Unions the live ``merge_queue`` table with ``merge_queue_archive`` so
|
|
3794
|
+
callers get a correct answer regardless of whether the winning entry has
|
|
3795
|
+
since been archived by ``housekeeping.sweep()``.
|
|
3796
|
+
"""
|
|
3797
|
+
conn = get_connection()
|
|
3798
|
+
live = {
|
|
3799
|
+
(r["repo_name"], r["issue_number"])
|
|
3800
|
+
for r in sql.execute(
|
|
3801
|
+
conn,
|
|
3802
|
+
"SELECT repo_name, issue_number FROM merge_queue WHERE state = ?",
|
|
3803
|
+
(MERGED,),
|
|
3804
|
+
).fetchall()
|
|
3805
|
+
}
|
|
3806
|
+
return live | _archived_merged_issue_keys(conn)
|
|
3807
|
+
|
|
3808
|
+
|
|
3756
3809
|
# ── Enqueue ──────────────────────────────────────────────────────────────
|
|
3757
3810
|
|
|
3758
3811
|
def enqueue(
|
|
@@ -5403,12 +5456,10 @@ def staging_items(board, config, gh_ops: "GhOps | None" = None) -> list[StagingI
|
|
|
5403
5456
|
queued_branches: set[str] = {x.branch for x in existing_queue if x.branch}
|
|
5404
5457
|
|
|
5405
5458
|
# Fast-lookup: (repo_name, issue_number) pairs already MERGED so we skip
|
|
5406
|
-
# issues whose prior attempt was already shipped.
|
|
5407
|
-
|
|
5408
|
-
|
|
5409
|
-
|
|
5410
|
-
if x.state == MERGED
|
|
5411
|
-
}
|
|
5459
|
+
# issues whose prior attempt was already shipped. Consults the archive
|
|
5460
|
+
# too (#1107 Part 3) since the winning entry may have aged out of the
|
|
5461
|
+
# live table by the time a later duplicate work item shows up here.
|
|
5462
|
+
already_merged = merged_issue_keys()
|
|
5412
5463
|
|
|
5413
5464
|
result: list[StagingItem] = []
|
|
5414
5465
|
completed = list(getattr(board, "completed", []) or [])
|
|
@@ -677,7 +677,8 @@ def _audit_housekeeping_sweep(swept: dict) -> None:
|
|
|
677
677
|
summary=(
|
|
678
678
|
f"housekeeping: archived {swept.get('archived_assignments', 0)} "
|
|
679
679
|
f"assignment(s), {swept.get('archived_notifications', 0)} "
|
|
680
|
-
"notification(s)"
|
|
680
|
+
f"notification(s), {swept.get('archived_merge_queue', 0)} "
|
|
681
|
+
"merge_queue entry(ies)"
|
|
681
682
|
),
|
|
682
683
|
details=swept,
|
|
683
684
|
)
|
|
@@ -8500,14 +8501,17 @@ def build_app(store: CoordStore, config: Config, *, token: str | None = None) ->
|
|
|
8500
8501
|
|
|
8501
8502
|
os.environ["COORD_HOUSEKEEPING_ON_DAEMON"] = "1"
|
|
8502
8503
|
swept = await run_in_threadpool(_hk.sweep)
|
|
8503
|
-
if
|
|
8504
|
-
"
|
|
8504
|
+
if (
|
|
8505
|
+
swept.get("archived_assignments")
|
|
8506
|
+
or swept.get("archived_notifications")
|
|
8507
|
+
or swept.get("archived_merge_queue")
|
|
8505
8508
|
):
|
|
8506
8509
|
log.info(
|
|
8507
8510
|
"housekeeping: archived %d assignment(s), "
|
|
8508
|
-
"%d notification(s)",
|
|
8511
|
+
"%d notification(s), %d merge_queue entry(ies)",
|
|
8509
8512
|
swept["archived_assignments"],
|
|
8510
8513
|
swept["archived_notifications"],
|
|
8514
|
+
swept.get("archived_merge_queue", 0),
|
|
8511
8515
|
)
|
|
8512
8516
|
_audit_housekeeping_sweep(swept)
|
|
8513
8517
|
except Exception: # noqa: BLE001
|
{code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/skills/coord-dispatch-verbs/SKILL.md
RENAMED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: coord-dispatch-verbs
|
|
3
|
+
description: "Use before running a `coord` CLI command to enqueue, dispatch, stage, or otherwise move a GitHub issue through the coordinator — disambiguates ~70 top-level commands with similarly-named pairs that silently do the wrong thing instead of erroring."
|
|
4
|
+
trigger: About to run a `coord` command to move an issue forward, especially when unsure of the exact subcommand, or a command exited 0 but the expected effect didn't happen.
|
|
5
|
+
---
|
|
6
|
+
|
|
1
7
|
# coord-dispatch-verbs skill
|
|
2
8
|
|
|
3
9
|
**Trigger:** About to run a `coord` command to enqueue, dispatch, stage, or
|
{code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/skills/drive-queue-preflight/SKILL.md
RENAMED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: drive-queue-preflight
|
|
3
|
+
description: "Use before queuing more than ~2 issues on one repo with `coord drive-queue add`, setting up an overnight/unattended run, or seeing a QUEUE: STALLED/BLOCKED status-bar alert — gives the real cost model and the read-the-alert table."
|
|
4
|
+
trigger: "About to `coord drive-queue add` deep on one repo, or looking at a QUEUE: STALLED/BLOCKED alert."
|
|
5
|
+
---
|
|
6
|
+
|
|
1
7
|
# drive-queue-preflight skill
|
|
2
8
|
|
|
3
9
|
**Trigger:** About to `coord drive-queue add` more than ~2 issues on one repo,
|
{code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/skills/fleet-restart-safety/SKILL.md
RENAMED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: fleet-restart-safety
|
|
3
|
+
description: "Use before restarting coord-agent/coord-serve or editing coordinator.yml on a live fleet — the two restarts kill different things (headless workers vs. interactive finalize) and neither warns you the way you'd expect."
|
|
4
|
+
trigger: About to restart coord-agent (incl. `coord agent update`) or coord-serve, or edit coordinator.yml/coordinator.remote.yml on a live fleet.
|
|
5
|
+
---
|
|
6
|
+
|
|
1
7
|
# fleet-restart-safety skill
|
|
2
8
|
|
|
3
9
|
**Trigger:** About to restart `coord-agent` (including `coord agent update`)
|
{code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/skills/merge-stuck-triage/SKILL.md
RENAMED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: merge-stuck-triage
|
|
3
|
+
description: "Use when a story won't merge — the TUI Go does nothing, `coord merge` skips it, or the queue box stays grey/pending — walks the merge gates in the order they actually block instead of guessing."
|
|
4
|
+
trigger: A story won't merge, or an operator asks why something isn't merging.
|
|
5
|
+
---
|
|
6
|
+
|
|
1
7
|
# merge-stuck-triage skill
|
|
2
8
|
|
|
3
9
|
**Trigger:** A story won't merge — the TUI "Go" does nothing, `coord merge` skips
|
{code_coordinator-0.5.262 → code_coordinator-0.5.264}/coord/skills/pipeline-limbo-triage/SKILL.md
RENAMED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pipeline-limbo-triage
|
|
3
|
+
description: "Use when an issue sits in the Pipeline with no dispatch or visible activity — explains that Board vs Pipeline membership is label-driven, not assignment-driven, and gives the one-command fix."
|
|
4
|
+
trigger: An issue shows up in the Pipeline but nobody dispatched it, or a Pipeline card looks stuck.
|
|
5
|
+
---
|
|
6
|
+
|
|
1
7
|
# pipeline-limbo-triage skill
|
|
2
8
|
|
|
3
9
|
**Trigger:** An issue shows up in the Pipeline but nobody dispatched it, a
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: portal-followup
|
|
3
|
+
description: "Use when investigating a customer-portal signoff/event that hasn't shown up, or troubleshooting `coord portal` state — gets a straight answer out of outbox/events/sync instead of confusing local-machine state with the bridge's own."
|
|
4
|
+
trigger: Investigating a stuck customer-portal signoff/event, or any `coord portal` state troubleshooting.
|
|
5
|
+
---
|
|
6
|
+
|
|
1
7
|
# portal-followup skill
|
|
2
8
|
|
|
3
9
|
**Trigger:** Investigating a customer-portal signoff/event that "hasn't shown up"
|