code-coordinator 0.5.526__tar.gz → 0.5.528__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.526 → code_coordinator-0.5.528}/PKG-INFO +1 -1
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/code_coordinator.egg-info/PKG-INFO +1 -1
- code_coordinator-0.5.528/code_coordinator.egg-info/scm_version.json +8 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/board_schema.py +7 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/drive_queue.py +24 -10
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/db.py +33 -1
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/drive_queue.py +146 -24
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/state.py +57 -4
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_drive_queue.py +64 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_db.py +1 -1
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_drive_queue.py +202 -5
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_state.py +61 -0
- code_coordinator-0.5.526/code_coordinator.egg-info/scm_version.json +0 -8
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/.claude/commands/board.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/.claude/commands/complete-session.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/.claude/commands/coordinator.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/.githooks/_lib.sh +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/.githooks/post-checkout +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/.githooks/post-commit +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/.githooks/post-merge +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/.github/workflows/auto-release.yml +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/.github/workflows/publish.yml +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/.github/workflows/test.yml +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/.gitignore +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/CLAUDE.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/GOAL.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/LICENSE +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/MANIFEST.in +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/README.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/code_coordinator.egg-info/SOURCES.txt +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/code_coordinator.egg-info/dependency_links.txt +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/code_coordinator.egg-info/entry_points.txt +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/code_coordinator.egg-info/requires.txt +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/code_coordinator.egg-info/scm_file_list.json +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/code_coordinator.egg-info/top_level.txt +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/__init__.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/_board_mapping.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/acceptance.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/acceptance_drivers.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/agent.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/agent_app.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/agent_update.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/agents/opencode/.gitignore +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/agents/opencode/agents/work.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/agents/opencode/routing.jsonc +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/approved_work.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/audit.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/auto_loop.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/backup.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/block_log.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/board_service.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/board_wire.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/brain.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/branch_model.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/bug_intake.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/cargo_cache.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/ci_fix.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/ci_github.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/ci_gitlab.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/ci_store.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/claim.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/claude_setup_token.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/cli.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/client.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/codegen.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/__init__.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/_common.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/acceptance.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/agent_ops.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/audit.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/backup.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/chat.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/ci.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/codegen.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/dispatch.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/dispatch_workers.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/dr.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/drive.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/gate_a.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/gates.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/issues.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/lifecycle.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/machine.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/merge.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/milestone.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/plan_followup.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/plans.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/portal.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/pr.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/release.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/repo.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/report.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/review.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/scorecard.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/sessions.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/setup.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/status.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/store_migrate.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/terminal.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/test_gate.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/commands/tui.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/comments.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/config.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/config_reload.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/confirm_test.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/conflict_fix.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/dao.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/dashboard/__init__.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/dashboard/fixture.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/dashboard/index.html +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/dashboard/server.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/dashboard/terminal.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/dead_end.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/decomposition_chat.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/deploy/README.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/deploy/coord-backup.service +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/deploy/coord-backup.timer +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/deploy/coord-dr-verify.service +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/deploy/coord-dr-verify.timer +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/deploy/coord-failure-notify.service +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/deploy/coord-fleet-watchdog.service +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/deploy/coord-fleet-watchdog.timer +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/deploy_manifest.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/deploy_units.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/deprecation_telemetry.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/deps.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/diagnose.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/dispatch.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/dispatch_liveness.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/dist_name.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/dr_promote.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/dr_verify.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/drive.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/drive_sessions_snapshot.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/drive_state.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/events.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/failure_class.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/failure_classifier.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/filelock.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/fleet_config_health.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/forge_availability.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/freshness.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/gate_a.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/gate_b.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/gate_snapshot.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/gates.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/gen_board_fixture.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/github_ops.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/github_throttle.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/goal.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/graph_health.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/__init__.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/aggregate.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/checks/__init__.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/checks/_ci_pin.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/checks/agent_install.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/checks/cargo_targets.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/checks/claude_binary.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/checks/config_drift.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/checks/coord_tui_ci_pin.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/checks/coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/checks/deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/checks/disk.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/checks/fleet_board.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/checks/fleet_deploy_lanes.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/checks/fleet_phantom.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/checks/fleet_unit_drift.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/checks/graph.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/checks/graphify_cli.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/checks/index_lock.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/checks/issues_sync_staleness.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/checks/local_machine_identity.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/checks/plan_usage.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/checks/pr_churn.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/checks/release_cordon.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/checks/repo_state.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/checks/spawned_coord.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/checks/stalled_pipeline.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/checks/timer_active.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/checks/toolchain.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/checks/unit_drift.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/checks/unit_enablement.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/checks/wedged_drive_queue.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/checks/worktrees.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/cli.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/context.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/fleet_snapshot.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/models.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/pypi.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/registry.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/render.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/health/units.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/hooks.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/housekeeping.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/interactive.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/invariant_alarms.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/issue_store.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/issues_sync_status.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/liveness_auditor.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/machine_fault.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/machine_metrics.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/machine_onboard.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/machine_pause.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/machine_stats.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/merge_queue.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/milestone_chat.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/milestone_dispatch.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/milestone_gate.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/milestone_order.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/mock_author.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/models.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/network.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/new_issue_chat.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/notifier/__init__.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/notifier/baseline.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/notifier/cli.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/notifier/collect.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/notifier/digest.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/notifier/models.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/notifier/predicate.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/notifier/service.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/notifier/store.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/notifier/transport.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/notify.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/openapi.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/overlap_fence.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/overlap_predict.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/parentage.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/parentage_github.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/pipeline.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/plan_parser.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/plans.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/platform_paths.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/portal_bridge.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/portal_store.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/portal_sync.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/pr_body_lint.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/prereqs.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/progress.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/providers/__init__.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/providers/base.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/providers/claude.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/providers/claude_pty.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/providers/opencode.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/queue_diagnose.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/reconcile.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/reconcile_tick.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/refine_chat.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/release_cordon.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/release_propagate.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/release_verify.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/release_window.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/repo_dormancy.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/repo_edit.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/repo_onboard.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/reports.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/rest_schema.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/restart_cmd.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/revalidate.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/review.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/scorecard.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/self_health.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/serve_app.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/skills/coord-dispatch-verbs/SKILL.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/skills/drive-queue-preflight/SKILL.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/skills/fleet-restart-safety/SKILL.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/skills/merge-stuck-triage/SKILL.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/skills/pipeline-limbo-triage/SKILL.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/skills/portal-followup/SKILL.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/skills/release-now/SKILL.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/skills/review-verdict-recovery/SKILL.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/skills/tui-quadraui-workflow/SKILL.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/skills/update-issue/SKILL.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/smoke.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/spend_ceiling.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/split_work.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/sql.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/stage_projection.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/store_migrate.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/store_parity.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/templates/deploy-cloudflare.node.yml +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/test_author.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/test_chat.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/test_orchestrator.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/test_report.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/tui_release.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/uat_checks.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/usage.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/usage_limits.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/usage_rollup.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coord/worker_events.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/coordinator.example.yml +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/deploy/coord-backup.service +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/deploy/coord-backup.timer +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/deploy/coord-dr-verify.service +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/deploy/coord-dr-verify.timer +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/deploy/coord-failure-notify.service +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/deploy/coord-failure-notify.sh +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/deploy/coord-fleet-watchdog.service +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/deploy/coord-fleet-watchdog.timer +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/deploy/coord-web-dist-build.sh +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/deploy/coord-web-rollback.sh +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/deploy/node-shim.sh +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/ADR_COORD_TUI_CI.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/ADR_COORD_WEB_ACCEPTANCE_SUITE.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/ADR_COORD_WEB_CI.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/ADR_COORD_WEB_DIST.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/ADR_PY_RUST_MIRRORS.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/AGENT_OPERATIONS.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/ARCHITECTURE.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/ARCH_SECURITY_GATES.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/COCKPIT.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/COST_DISCIPLINE.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/CROSS_PLATFORM.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/CUSTOMER_FACING_APPS.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/CUSTOMER_PORTAL.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/DATA_STORE_SELECTION.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/DISASTER_RECOVERY.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/DRIVE_QUEUE.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/EPHEMERAL_WORKERS.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/FORGE_MIGRATION.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/GRAPHIFY_SETUP.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/ISSUE_GUIDANCE.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/MAC_MINI.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/NOTIFIER.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/OPENCODE_VERIFICATION.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/OPERATING_GOTCHAS.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/OPERATOR_GUIDES.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/ORACLE_LOOP.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/PHONE_WEBAPP.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/PIPELINE_V2.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/PLATFORM_EVOLUTION.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/SECOND_BACKEND.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/STORE_SERVICE.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/TEST_FIRST_BUG_LANE.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/WEB_CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/WSL_WINDOWS_WORKER.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/mocks/web/README.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/mocks/web/_tokens.css +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/mocks/web/issue-detail.html +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/mocks/web/pipeline-narrow.html +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/docs/mocks/web/pipeline-wide.html +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/graphify-out/.gitignore +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/install-agent.sh +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/pyproject.toml +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/audit_review_verdict_overrides.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/azure-workers/bootstrap-shared.sh +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/azure-workers/build-worker-image.sh +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/azure-workers/coordinator-machine.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/azure-workers/dr-down.sh +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/azure-workers/dr-up.sh +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/azure-workers/epic-down.sh +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/azure-workers/epic-up.sh +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/azure-workers/preflight.sh +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/azure-workers/provision-server.sh +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/azure-workers/provision-worker.sh +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/azure-workers/tailnet-acl.hujson +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/azure-workers/throwaway-vm.sh +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/azure-workers/verify-github-token.sh +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/check_gh_argv_containment.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/codegen.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/coord-test-runner.sh +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/coord-tui-scaffold/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/coord-tui-scaffold/.github/workflows/cargo-test.yml +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/coord-tui-scaffold/.github/workflows/codegen-drift.yml +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/coord-tui-scaffold/CLAUDE.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/coord-venv-rollback.sh +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/drive-batch.sh +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/extract-coord-tui.sh +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/fleet_watchdog.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/gen_board_fixture.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/gen_mock_index.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/lib/provision-core.sh +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/next_release_tag.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/provision-machine.sh +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/run_tests_in_populated_home.sh +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/run_tests_without_gh.sh +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/setup-macmini.sh +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/smoke_437_interactive.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/verify-provision-noble.sh +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/verify_878_review_capture.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/verify_release_published.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/scripts/verify_release_wheel.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/setup.cfg +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/SMOKE_SET.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/__init__.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/acceptance/ms-37/conftest.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/acceptance/ms-37/contract.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/acceptance/ms-37/manifest.yml +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/acceptance/ms-51/contract.md +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/acceptance/ms-51/manifest.yml +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/acceptance/ms-51/tsconfig.json +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/backends.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/conftest.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/fixtures/board-pipeline-basic.json +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/fixtures/opencode_run_sample.jsonl +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/fixtures/playwright/all_pass.json +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/fixtures/playwright/global_setup_crash.json +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/fixtures/playwright/mixed_fail.json +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/fixtures/playwright/retry_then_pass.json +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/fixtures/playwright/skip.json +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/fixtures/playwright/truncated.json +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_acceptance.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_acceptance_drivers.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_agent.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_agent_api_error.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_agent_app.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_agent_branch_base.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_agent_branch_capture.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_agent_config_free_1712.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_agent_deploy_units_endpoint.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_agent_dirty_worktree.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_agent_drive_queue_reconcile_2373.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_agent_graph_self_heal.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_agent_health_h3.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_agent_idle_restart.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_agent_push_failure.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_agent_reap.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_agent_repos_and_pull.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_agent_restart_services_endpoint.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_agent_skills_self_heal.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_agent_startup_diagnostics.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_agent_update.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_agent_update_bluegreen.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_agent_usage_limit.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_agent_zero_commit.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_ambient_home_isolation.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_approve_capability_reroute_3241.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_approve_dependency_busy_2804.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_approve_reject_plan.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_approve_usage_gate.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_approved_work_2532.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_approved_work_2996.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_assignment_already_recorded_daemon.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_audit_log.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_audit_outcome.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_audit_query.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_auto_loop.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_auto_release_publish_2035.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_backend_selection.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_backup.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_base_checkout_restore.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_block_log.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_board_cap_762.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_board_fixture.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_board_read_path.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_board_schema.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_board_service.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_board_state.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_board_wire.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_brain.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_branch_model.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_bug_intake.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_build_worker_image_env_update.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cargo_cache.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_check_gh_argv_containment.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_ci_acceptance_gate_1950.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_ci_fix.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_ci_github.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_ci_gitlab.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_ci_parity_2091.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_ci_store.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_claim.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_claude_md_budget.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_claude_setup_token.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_acceptance.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_assign.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_assign_interactive_remote.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_assign_provider.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_assign_repo_drift_2219.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_audit.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_chat_continue.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_ci.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_codegen.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_decide.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_diagnose_capability_rules.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_diagnose_config_provenance.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_diagnose_forge_availability.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_diagnose_graph.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_diagnose_self.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_diagnose_test_coverage.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_doctor.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_doctor_config_free_1801.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_doctor_store_backend_3084.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_drive.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_escalate.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_fix_headless_review.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_gate_a.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_install_drift.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_install_skills.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_issue_comment.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_issue_create_label.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_issue_reopen.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_issue_view_list.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_issues.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_merge.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_milestone_assign.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_milestone_capture.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_milestone_chat_add_child.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_milestone_gate_b.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_milestone_gate_c.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_milestone_order.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_milestone_ship.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_network.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_new_issue_chat.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_plans.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_portal.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_pr.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_pull_artifact.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_queue.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_reattach_sessions.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_refine_board.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_release_preflight.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_release_propagate.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_release_window.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_repo_2220.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_review_test_author_tracking_epic_2639.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_scorecard.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_serve_store_backend_3084.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_set_review_findings.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_status_advisory_terminal.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_status_contested_tag.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_status_invariant_alarms.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_status_machine_fault.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_status_merge_queue.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_status_provider.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_status_retried_3340.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_status_review_finalizing.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_status_supervisor_3366.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_status_test_failed_tag.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_status_usage_limit.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_sync_comments_873.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_test_plan.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_track.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_tui_update.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cli_wait.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_client.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_client_base_install.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_client_config_cache_atomic_3052.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_client_resource_migration_1946.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_commands_common.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_comments.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_completion_summary.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_config.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_config_acceptance.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_config_audit.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_config_drift_check.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_config_effective.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_config_pricing.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_config_usage_gate.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_confirm_test.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_conflict_fix.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_conflict_fix_semantic.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_coord_log_daemon_fallback_2547.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_coord_test.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_coord_test_runner_acceptance_toolchain_2936.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_coord_test_runner_baseline.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_coord_test_runner_populated_home.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_coord_test_runner_routing.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_coord_test_runner_toolchain.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_coord_uat.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_coord_web_sse_restart_live.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_coordinator_machine.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_cross_platform_imports.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_dao.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_dashboard.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_dashboard_api.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_dashboard_fixture.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_dashboard_server.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_dashboard_terminal.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_dashboard_terminal_live.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_dead_end.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_decomposition_chat.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_deploy_coord_db_backup.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_deploy_coord_web_dist.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_deploy_coord_web_rollback.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_deploy_db_backup_unit.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_deploy_drive_queue_unit.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_deploy_failure_notify_unit.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_deploy_manifest.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_deploy_notify_unit.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_deploy_units_lane.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_deploy_web_unit.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_deprecation_telemetry.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_deps.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_diagnose.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_dispatch.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_dispatch_liveness.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_dispatch_target_validation.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_dispatch_workers.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_dist_name.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_done_housekeeping.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_dr_azure_scripts.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_dr_promote.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_dr_verify.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_drive.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_drive_machine_fault.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_drive_queue_blocked_rendering.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_drive_queue_launch_argv.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_drive_queue_max_parallel_config.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_drive_queue_max_parallel_per_repo_config.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_drive_queue_roll_pending.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_drive_queue_self_cordon_escalation.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_drive_sessions_snapshot.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_drive_state.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_drive_tmux.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_epic_up_capability_detection.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_epic_up_image_provenance.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_errors.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_events.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_failure_class.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_failure_classifier.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_filelock.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_fix_escalation_classifier.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_fix_of_force_override.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_fleet_config_health.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_fleet_health_probes.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_fleet_health_snapshot.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_fleet_watchdog.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_forge_availability.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_freshness.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_gate_a.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_gate_b.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_gate_snapshot_staleness.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_gates.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_gather_fleet_tmux_sessions.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_gen_mock_index.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_generated_rust_fixture.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_generated_rust_requests.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_generated_types_fixture.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_github_ops.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_github_throttle.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_goal.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_graph_health.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_graph_selfheal_absent_2237.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_handoff.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_health_checks.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_health_cli.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_health_cli_graph.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_health_config.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_health_context.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_health_coord_tui_ci_pin.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_health_coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_health_deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_health_fix.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_health_incident_regression.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_health_issues_sync_staleness.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_health_pr_churn.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_health_pypi.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_health_registry.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_health_release_cordon_probe.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_health_timer_active.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_health_toolchain.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_health_unit_drift.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_health_unit_enablement.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_health_wedged_drive_queue.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_hooks.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_housekeeping.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_human_attended_437.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_init.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_install_agent_venv_2911.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_integration.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_interactive.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_interactive_briefing_echo.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_interactive_pane_log_2541.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_interactive_prefill_state.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_interactive_session_relaunch.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_interactive_test_verdict_backstop.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_interactive_token_attribution.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_interactive_worktree.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_invariant_alarms.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_issue_store_seam.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_issues_sync_status.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_liveness_auditor.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_liveness_notify.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_lock_contention_ratchet.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_machine_fault.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_machine_metrics.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_machine_onboard.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_machine_pause.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_machine_stats.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_merge_queue.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_merge_verify.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_milestone_chat.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_milestone_gate.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_milestone_order.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_milestone_seam.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_mock_author.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_model_tiering.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_models.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_models_config_labels.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_needs_attention.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_network.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_new_issue_chat.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_next_release_tag.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_node_shim.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_notifier_baseline.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_notifier_cli.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_notifier_collect.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_notifier_config.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_notifier_drive_seam.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_notifier_isolation.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_notifier_predicate.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_notifier_quiet_hours.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_notifier_service.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_notify.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_notify_drain.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_openapi.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_operational_defaults.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_overlap_fence.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_overlap_predict.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_packaged_deploy_units.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_parentage.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_paste_landed.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_phantom_heal_venv_independence_2570.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_pipeline.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_plan_followup_approve_plan_command.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_plan_followup_pr_command.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_plan_followup_review_command.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_plan_only.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_plan_parser.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_platform_paths.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_portal_bridge.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_portal_config.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_portal_store.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_portal_sync.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_pr_body_lint.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_prereqs.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_production_db_guard.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_progress.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_provider_seam.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_providers.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_providers_config_labels.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_providers_pty.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_provision_core.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_provision_machine.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_py_rust_mirror_inventory.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_quiet_hours.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_quiet_hours_store_2146.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_reap_merged_sessions.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_reap_stale_interactive_tick.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_reconcile.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_reconcile_branch.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_reconcile_completions.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_reconcile_late_agent_reports_2547.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_reconcile_merges.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_reconcile_no_agent_record.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_reconcile_tick.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_reconcile_usage_limit_done.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_refine_chat.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_release_cordon_2101.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_release_cordon_deadlock_2240.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_release_cordon_drain_stall_3336.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_release_cordon_stuck_2490.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_release_propagate.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_release_propagate_threshold.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_release_roll_between_legs_2854.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_release_roll_window_handoff.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_release_unified_1242.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_release_verify.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_release_window.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_remote_auto_prune.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_remote_interactive_reaper.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_repo_add.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_repo_dormancy.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_repo_edit_2220.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_repo_graph_fleet_2237.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_repo_max_parallel_3423.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_repo_onboard_2220.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_report_result_push.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_reports.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_restart_cmd.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_retry.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_retry_advisory_1606.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_retry_escalation_classify_3360.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_retry_type_1636.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_revalidate.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_review.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_review_end_review_without_verdict.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_review_parse_failure_diagnostic.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_review_reaffirm.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_review_state.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_review_verdict_backstop.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_review_verdict_override_audit.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_review_verdict_relay.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_review_zero_commits.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_scoped_review_wiring.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_scorecard.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_self_health.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_serve.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_serve_app.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_serve_app_board_trim.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_serve_rest_routes.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_session.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_slice_issue_attribution.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_smoke.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_smoke_fanout_manifest_3333.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_smoke_live_checkout_restore.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_smoke_workflow.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_spend_ceiling.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_spend_ceiling_coordinator.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_split.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_split_work.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_sql_dialect.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_sqlite_connect_ratchet.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_stage_projection.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_stale_busy_reviewer_697.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_stalled_pipeline.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_state_review_findings_daemon.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_status_fleet_footer.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_stop_1567.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_store_contract.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_store_migrate.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_stuck.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_stuck_test_state_watchdog_2803.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_terminal_command.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_test_author.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_test_chat.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_test_orchestrator.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_test_report.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_test_verdict_parsing.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_test_verdict_transcript_floor.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_text_io_encoding_audit.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_thin_client_board_audit.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_thin_client_config_load_1080.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_thin_client_daemon_routing_906.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_throwaway_vm.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_tmux_host.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_tmux_session.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_transcript_floor.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_uat_checks.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_usage.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_usage_limits.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_usage_rollup.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_venv_live_install_2121.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_version_single_source.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_watch.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_worker_env_venv_isolation.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_worker_events.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_worker_image_pin_sync.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_worker_safety.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_worker_test_scoping.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_worktree.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_worktree_rmtree_chokepoint.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/test_write_parity.py +0 -0
- {code_coordinator-0.5.526 → code_coordinator-0.5.528}/tests/write_parity.py +0 -0
|
@@ -313,6 +313,13 @@ class BoardDriveQueueEntry:
|
|
|
313
313
|
apply_verdict: str
|
|
314
314
|
apply_verdict_reason: str
|
|
315
315
|
apply_verdict_at: float | None = None
|
|
316
|
+
# #3463: the all-time WORK_LIKE leg count this row saw when
|
|
317
|
+
# `enqueue_drive_queue` last (re-)declared it — see
|
|
318
|
+
# `coord.drive_queue.QueueEntry.legs_at_enqueue` for what it feeds.
|
|
319
|
+
# Default 0 — both for a row predating this column and for a thin client
|
|
320
|
+
# talking to a daemon that predates it — reproduces the pre-#3463
|
|
321
|
+
# `work_leg_count - 1` fix-round formula exactly.
|
|
322
|
+
legs_at_enqueue: int = 0
|
|
316
323
|
|
|
317
324
|
|
|
318
325
|
# ── #3428 (#3408 item 3): concurrency ceilings + provenance + occupancy ──────
|
|
@@ -106,7 +106,6 @@ from coord.drive_queue import (
|
|
|
106
106
|
resolve_max_parallel,
|
|
107
107
|
resolve_max_parallel_per_repo,
|
|
108
108
|
resolve_repo_ceilings,
|
|
109
|
-
total_fix_round_budget,
|
|
110
109
|
unreachable_wait_alert,
|
|
111
110
|
validate_apply_gate,
|
|
112
111
|
validate_enqueue,
|
|
@@ -1637,20 +1636,35 @@ def drive_queue_list(repo: str | None, output_json: bool, config_path: Path) ->
|
|
|
1637
1636
|
bits.append(f"attempts={entry.attempts}")
|
|
1638
1637
|
if entry.deferrals:
|
|
1639
1638
|
bits.append(f"deferrals={entry.deferrals}")
|
|
1640
|
-
# #2972: the fix-round ceiling's OWN count
|
|
1641
|
-
#
|
|
1642
|
-
#
|
|
1643
|
-
#
|
|
1644
|
-
#
|
|
1639
|
+
# #2972/#3463: the fix-round ceiling's OWN count, rendered with the
|
|
1640
|
+
# SAME meaning `coord drive`'s own `fix round N/M` lines use
|
|
1641
|
+
# (`coord/drive.py`) — fix rounds SPENT against `max_fix_rounds`, not
|
|
1642
|
+
# "every work-like leg including the initial one" against "budget +
|
|
1643
|
+
# 1". `lifetime_legs` is every WORK_LIKE leg `leg_counts()` has ever
|
|
1644
|
+
# seen for this issue, all-time, across every predecessor row; #3463
|
|
1645
|
+
# narrows that to `row_legs` — legs run since THIS row was last
|
|
1646
|
+
# (re-)declared by `enqueue_drive_queue` (`entry.legs_at_enqueue`),
|
|
1647
|
+
# the SAME baseline `remaining_fix_rounds` subtracts. Only shown once
|
|
1648
|
+
# this row has itself dispatched at least one leg — a `waiting`
|
|
1649
|
+
# entry that has never launched (or a freshly re-added row that
|
|
1650
|
+
# hasn't relaunched yet) has nothing to report, same as `attempts`/
|
|
1645
1651
|
# `deferrals` above being suppressed at 0.
|
|
1646
|
-
|
|
1652
|
+
lifetime_legs = sum(
|
|
1647
1653
|
count
|
|
1648
1654
|
for kind, count in all_leg_counts.get(entry.key, {}).items()
|
|
1649
1655
|
if kind in WORK_LIKE
|
|
1650
1656
|
)
|
|
1651
|
-
|
|
1652
|
-
|
|
1653
|
-
|
|
1657
|
+
row_legs = max(lifetime_legs - entry.legs_at_enqueue, 0)
|
|
1658
|
+
if row_legs:
|
|
1659
|
+
effective_max = effective_max_fix_rounds(entry, fix_round_config_default)
|
|
1660
|
+
fix_rounds_spent = max(row_legs - 1, 0)
|
|
1661
|
+
# #3463: an overrun (the #3454 leak: a row that dispatched past
|
|
1662
|
+
# its own ceiling before the fix landed) must stay VISIBLE as an
|
|
1663
|
+
# overrun, not silently clamp back down to a reassuring `N/N` —
|
|
1664
|
+
# a gate that can never show its own failure state is not a
|
|
1665
|
+
# gate (epic #2096).
|
|
1666
|
+
overrun = "!" if fix_rounds_spent > effective_max else ""
|
|
1667
|
+
bits.append(f"fix_rounds={fix_rounds_spent}/{effective_max}{overrun}")
|
|
1654
1668
|
if entry.resumes:
|
|
1655
1669
|
# #2230: how many times the merge-gate sweep has auto-resumed
|
|
1656
1670
|
# THIS row from `blocked` — the churn signal the issue asks to be
|
|
@@ -1058,7 +1058,14 @@ def retry_on_locked(
|
|
|
1058
1058
|
# first place" (a quadraui-style merge into a non-default branch) — both
|
|
1059
1059
|
# read identically as `merged=True, issue_state="open"` otherwise. See
|
|
1060
1060
|
# `coord.drive_queue.IssueFacts.landed`'s docstring.
|
|
1061
|
-
|
|
1061
|
+
#
|
|
1062
|
+
# #3463: bumped 19 -> 20 for the new `drive_queue.legs_at_enqueue` column
|
|
1063
|
+
# appended to `_MIGRATE_ADD_COLUMNS` below — the all-time WORK_LIKE leg
|
|
1064
|
+
# count a row saw at `enqueue_drive_queue` time, so `remaining_fix_rounds`
|
|
1065
|
+
# can measure a row's own spend from ITS baseline rather than every
|
|
1066
|
+
# predecessor row's lifetime total. See `coord.drive_queue.QueueEntry.
|
|
1067
|
+
# legs_at_enqueue`.
|
|
1068
|
+
_DB_SCHEMA_VERSION = 20
|
|
1062
1069
|
|
|
1063
1070
|
|
|
1064
1071
|
def _read_schema_version(conn: sqlite3.Connection) -> int:
|
|
@@ -1592,6 +1599,24 @@ _SCHEMA_SQL = """
|
|
|
1592
1599
|
-- point-in-time observation" discipline #2133's reason_at
|
|
1593
1600
|
-- established for last_reason. NULL until a verdict is recorded.
|
|
1594
1601
|
apply_verdict_at REAL,
|
|
1602
|
+
-- #3463: the all-time WORK_LIKE leg count (coord.state.
|
|
1603
|
+
-- leg_counts()'s per-issue figure) THIS ROW saw at the moment it
|
|
1604
|
+
-- was declared by `enqueue_drive_queue` — the baseline
|
|
1605
|
+
-- `coord.drive_queue.remaining_fix_rounds` subtracts off before
|
|
1606
|
+
-- comparing against `max_fix_rounds`, so a row's own spend is
|
|
1607
|
+
-- "legs since THIS row was enqueued", not "legs this issue has
|
|
1608
|
+
-- ever had across every predecessor row". Re-stamped on every
|
|
1609
|
+
-- `enqueue_drive_queue` call (insert OR update-in-place), which
|
|
1610
|
+
-- is what makes an explicit `remove` + `add` actually hand out a
|
|
1611
|
+
-- fresh budget as the #3454 ceiling message promises, while
|
|
1612
|
+
-- leaving the #2972 "no fresh budget from a bare relaunch"
|
|
1613
|
+
-- guarantee untouched — a relaunch never calls
|
|
1614
|
+
-- `enqueue_drive_queue` at all, only `update_drive_queue_entry`.
|
|
1615
|
+
-- 0 (NOT NULL) for every row predating this column: subtracting
|
|
1616
|
+
-- 0 reproduces the pre-#3463 `work_leg_count - 1` formula
|
|
1617
|
+
-- exactly, so an existing row's already-computed remaining
|
|
1618
|
+
-- budget does not change under this migration.
|
|
1619
|
+
legs_at_enqueue INTEGER NOT NULL DEFAULT 0,
|
|
1595
1620
|
UNIQUE(repo_name, issue_number)
|
|
1596
1621
|
);
|
|
1597
1622
|
|
|
@@ -2510,6 +2535,13 @@ _MIGRATE_ADD_COLUMNS: list[str] = [
|
|
|
2510
2535
|
# auto-close the linked issue at all — both look identical as
|
|
2511
2536
|
# `merged=True, issue_state="open"` without it.
|
|
2512
2537
|
"ALTER TABLE issues ADD COLUMN state_reason TEXT NOT NULL DEFAULT ''",
|
|
2538
|
+
# #3463: see the CREATE TABLE comment above — the all-time WORK_LIKE leg
|
|
2539
|
+
# count a row saw at `enqueue_drive_queue` time, so a re-added row's fix
|
|
2540
|
+
# budget is measured from ITS OWN baseline rather than every
|
|
2541
|
+
# predecessor's lifetime spend. 0 for every row predating this
|
|
2542
|
+
# migration, which reproduces the pre-#3463 `work_leg_count - 1` formula
|
|
2543
|
+
# unchanged for that row.
|
|
2544
|
+
"ALTER TABLE drive_queue ADD COLUMN legs_at_enqueue INTEGER NOT NULL DEFAULT 0",
|
|
2513
2545
|
]
|
|
2514
2546
|
|
|
2515
2547
|
|
|
@@ -1456,6 +1456,19 @@ class QueueEntry:
|
|
|
1456
1456
|
# `last_reason`. `None` for a row predating this column or one whose
|
|
1457
1457
|
# `apply_verdict` is still unset.
|
|
1458
1458
|
apply_verdict_at: float | None = None
|
|
1459
|
+
# #3463: the all-time WORK_LIKE leg count (the SAME per-issue figure
|
|
1460
|
+
# `IssueFacts.work_leg_count` carries) this row saw at the moment
|
|
1461
|
+
# `enqueue_drive_queue` last declared it — see
|
|
1462
|
+
# `coord.state._enqueue_drive_queue_local` for where it is stamped, on
|
|
1463
|
+
# every `add` (insert OR update-in-place), never carried forward.
|
|
1464
|
+
# `remaining_fix_rounds` subtracts this off `facts.work_leg_count`
|
|
1465
|
+
# before comparing spend against `max_fix_rounds`, so a row's own
|
|
1466
|
+
# budget is measured from ITS OWN baseline — "legs since THIS row was
|
|
1467
|
+
# last (re-)declared" — rather than the lifetime total every
|
|
1468
|
+
# predecessor row for this issue ever spent. `0` for every row
|
|
1469
|
+
# predating this column, which reproduces the pre-#3463
|
|
1470
|
+
# `work_leg_count - 1` formula exactly for that row.
|
|
1471
|
+
legs_at_enqueue: int = 0
|
|
1459
1472
|
|
|
1460
1473
|
@property
|
|
1461
1474
|
def key(self) -> str:
|
|
@@ -1556,6 +1569,7 @@ class QueueEntry:
|
|
|
1556
1569
|
if row.get("apply_verdict_at") is None
|
|
1557
1570
|
else float(row.get("apply_verdict_at"))
|
|
1558
1571
|
),
|
|
1572
|
+
legs_at_enqueue=int(row.get("legs_at_enqueue") or 0),
|
|
1559
1573
|
)
|
|
1560
1574
|
|
|
1561
1575
|
|
|
@@ -1617,29 +1631,46 @@ def remaining_fix_rounds(
|
|
|
1617
1631
|
resumes rather than restarts.
|
|
1618
1632
|
|
|
1619
1633
|
``facts.work_leg_count`` is every work-like assignment `build_board_view`
|
|
1620
|
-
has EVER seen for this issue, across every drive session this entry
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
(
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
|
|
1634
|
+
has EVER seen for this issue, across every drive session this entry (and
|
|
1635
|
+
every predecessor row for the same issue) has ever had. #3463: what this
|
|
1636
|
+
row has itself SPENT is that lifetime total minus
|
|
1637
|
+
``entry.legs_at_enqueue`` — the lifetime count as of the moment THIS row
|
|
1638
|
+
was last (re-)declared by `enqueue_drive_queue` — not the raw lifetime
|
|
1639
|
+
total. Subtracting the one unconditional initial work leg turns that
|
|
1640
|
+
into "fix rounds already spent"; subtracting THAT from
|
|
1641
|
+
:func:`effective_max_fix_rounds`'s plain per-drive allowance (NOT
|
|
1642
|
+
:func:`total_fix_round_budget` — that figure already has the initial
|
|
1643
|
+
work leg folded in, and folding it in a second time here would hand a
|
|
1644
|
+
brand-new entry, with zero legs spent, a budget one round wider than
|
|
1645
|
+
`coord drive`'s own interactive default ever allows) is what makes a
|
|
1646
|
+
second (or third, or fourth) relaunch get a SMALLER budget than the
|
|
1629
1647
|
first, instead of the same fresh one every time — the exact defect
|
|
1630
1648
|
quadraui#625 reported: four work legs dispatched against a
|
|
1631
1649
|
``pipeline.max_fix_rounds`` of 2 (budget 3), because each relaunch's
|
|
1632
1650
|
``coord drive --max-fix-rounds`` was computed from `entry` alone, blind
|
|
1633
1651
|
to what prior sessions had already spent. A fresh entry (``work_leg_count
|
|
1634
|
-
==
|
|
1635
|
-
from every pre-#2972 launch
|
|
1652
|
+
== legs_at_enqueue``) reads back exactly :func:`effective_max_fix_rounds`
|
|
1653
|
+
— unchanged from every pre-#2972 launch, and unchanged by #3463 for a row
|
|
1654
|
+
predating the ``legs_at_enqueue`` column (``0``, reproducing the old
|
|
1655
|
+
``work_leg_count - 1`` formula exactly).
|
|
1656
|
+
|
|
1657
|
+
#3463: this is also what makes an explicit ``coord drive-queue remove``
|
|
1658
|
+
+ ``add`` actually hand out a fresh budget, as the #3454 ceiling message
|
|
1659
|
+
promises — the re-added row's own ``legs_at_enqueue`` is stamped at
|
|
1660
|
+
THAT ``add``, not inherited from a predecessor row. It does NOT change
|
|
1661
|
+
the #2972 guarantee that a bare relaunch (no `add` in between) gets no
|
|
1662
|
+
fresh budget: a relaunch never calls `enqueue_drive_queue` at all, only
|
|
1663
|
+
`update_drive_queue_entry`, so `legs_at_enqueue` never moves between
|
|
1664
|
+
relaunches of the SAME row.
|
|
1636
1665
|
|
|
1637
1666
|
Never negative — an entry that has already met or exceeded
|
|
1638
1667
|
:func:`total_fix_round_budget` reads ``0`` (no more fix rounds), the
|
|
1639
1668
|
signal `_reconcile_running` uses to stop relaunching altogether rather
|
|
1640
1669
|
than pass a session a budget it cannot spend down further.
|
|
1641
1670
|
"""
|
|
1642
|
-
fix_rounds_spent = max(
|
|
1671
|
+
fix_rounds_spent = max(
|
|
1672
|
+
facts.work_leg_count - entry.legs_at_enqueue - 1, 0
|
|
1673
|
+
)
|
|
1643
1674
|
return max(effective_max_fix_rounds(entry, config_default) - fix_rounds_spent, 0)
|
|
1644
1675
|
|
|
1645
1676
|
|
|
@@ -5187,9 +5218,14 @@ def _reconcile_running(
|
|
|
5187
5218
|
# showed a bare "giving up" read as "nothing more will happen or be
|
|
5188
5219
|
# spent" while the fleet kept dispatching paid legs against the same
|
|
5189
5220
|
# branch for hours.
|
|
5221
|
+
# #3463: legs run against THIS row's own baseline, not the raw
|
|
5222
|
+
# lifetime count — see `remaining_fix_rounds`'s docstring. Reporting
|
|
5223
|
+
# the raw `facts.work_leg_count` here would misstate a re-added
|
|
5224
|
+
# row's spend as its predecessors' lifetime total.
|
|
5225
|
+
row_legs = max(facts.work_leg_count - entry.legs_at_enqueue, 0)
|
|
5190
5226
|
reason = (
|
|
5191
5227
|
f"fix-round ceiling reached across relaunches (#2972): "
|
|
5192
|
-
f"{
|
|
5228
|
+
f"{row_legs} work leg(s) already run against this row's own "
|
|
5193
5229
|
f"budget of {budget} (1 work dispatch + "
|
|
5194
5230
|
f"{effective_max_fix_rounds(entry, fix_round_config_default)} fix "
|
|
5195
5231
|
f"round(s)) — giving up rather than relaunching with a fresh "
|
|
@@ -5197,8 +5233,8 @@ def _reconcile_running(
|
|
|
5197
5233
|
f"gate-clear resume, or auto-dispatched stale-rebase conflict-fix "
|
|
5198
5234
|
f"(from any of this fleet's independent dispatchers) will fire "
|
|
5199
5235
|
f"for this entry — `coord drive-queue remove {entry.repo} "
|
|
5200
|
-
f"{entry.issue}` + `add` (a fresh row
|
|
5201
|
-
f"it another attempt."
|
|
5236
|
+
f"{entry.issue}` + `add` (a fresh row, #3463: with its own fresh "
|
|
5237
|
+
f"budget) is the only way to give it another attempt."
|
|
5202
5238
|
)
|
|
5203
5239
|
return (
|
|
5204
5240
|
Reconcile(entry.key, "exhausted", reason, occupies=False),
|
|
@@ -6426,6 +6462,29 @@ def plan_tick(
|
|
|
6426
6462
|
# carries fresh, right below.
|
|
6427
6463
|
effective_last_reason: dict[str, str] = {e.key: e.last_reason for e in ordered}
|
|
6428
6464
|
|
|
6465
|
+
def _refresh_only(reason: str, current: str) -> dict[str, Any]:
|
|
6466
|
+
"""``{}`` unless *reason* is non-empty and differs from *current*.
|
|
6467
|
+
|
|
6468
|
+
#3461: a `counted=False` deferral must never bump `deferrals` or feed
|
|
6469
|
+
the queue-level alert (see `Deferral`'s own docstring on that flag) —
|
|
6470
|
+
but the descriptive TEXT still has to keep up with reality when the
|
|
6471
|
+
walk re-derives it for an entry that isn't actually competing for a
|
|
6472
|
+
slot this tick (the queue is at capacity, or this entry sits behind
|
|
6473
|
+
an already-chosen launch in the report-only tail). Writing ONLY on a
|
|
6474
|
+
real change means `reason_at` — stamped by
|
|
6475
|
+
`coord.state._update_drive_queue_entry_local` whenever `last_reason`
|
|
6476
|
+
is present in the same update, #2133 — only moves when the text
|
|
6477
|
+
actually does, so the `(Nm ago)` age it powers keeps meaning "how
|
|
6478
|
+
long this has been true" rather than "how long since some tick
|
|
6479
|
+
happened to re-walk this row". An empty *reason* (the fully-eligible,
|
|
6480
|
+
nothing-to-report shape `_Verdict(True)` returns) writes nothing —
|
|
6481
|
+
overwriting a real reason with blank text would be a regression, not
|
|
6482
|
+
a refresh.
|
|
6483
|
+
"""
|
|
6484
|
+
if not reason or reason == current:
|
|
6485
|
+
return {}
|
|
6486
|
+
return {"last_reason": reason}
|
|
6487
|
+
|
|
6429
6488
|
reconciles: list[Reconcile] = []
|
|
6430
6489
|
blocked: list[Blocked] = []
|
|
6431
6490
|
deferrals: list[Deferral] = []
|
|
@@ -7066,11 +7125,41 @@ def plan_tick(
|
|
|
7066
7125
|
)
|
|
7067
7126
|
|
|
7068
7127
|
if capacity - occupied <= 0:
|
|
7128
|
+
# #3461: at capacity is the NORMAL steady state of a deep queue, so
|
|
7129
|
+
# this early return can fire for many ticks in a row. Before this, it
|
|
7130
|
+
# produced no deferral at all, which meant a `waiting` entry's
|
|
7131
|
+
# `last_reason` — e.g. "waiting on X (queued, blocked, ...)" — never
|
|
7132
|
+
# got a chance to notice X had since flipped back to `waiting`, or
|
|
7133
|
+
# landed. `_resolve_prereqs` is cheap (no I/O, just the cached board
|
|
7134
|
+
# + this tick's `states`), so it still runs for every `waiting` entry
|
|
7135
|
+
# here; only the TEXT is refreshed (`_refresh_only` below is a no-op
|
|
7136
|
+
# unless it actually changed) and only via `counted=False` — no
|
|
7137
|
+
# attempt is spent, `deferrals` does not move, and the queue-level
|
|
7138
|
+
# alert (computed only in the launch walk below) is untouched, same
|
|
7139
|
+
# as every other early return in this function.
|
|
7140
|
+
for entry in ordered:
|
|
7141
|
+
if states.get(entry.key) != STATE_WAITING:
|
|
7142
|
+
continue
|
|
7143
|
+
verdict = _resolve_prereqs(
|
|
7144
|
+
entry,
|
|
7145
|
+
board,
|
|
7146
|
+
states,
|
|
7147
|
+
cycle_keys,
|
|
7148
|
+
held_gates,
|
|
7149
|
+
live_prereq_terminal,
|
|
7150
|
+
effective_last_reason,
|
|
7151
|
+
)
|
|
7152
|
+
updates = _refresh_only(verdict.reason, entry.last_reason)
|
|
7153
|
+
if not updates:
|
|
7154
|
+
continue
|
|
7155
|
+
deferrals.append(
|
|
7156
|
+
Deferral(entry.key, verdict.reason, counted=False, updates=updates)
|
|
7157
|
+
)
|
|
7069
7158
|
return TickPlan(
|
|
7070
7159
|
**plan_base,
|
|
7071
7160
|
reconciles=tuple(reconciles),
|
|
7072
7161
|
blocked=tuple(blocked),
|
|
7073
|
-
deferrals=(),
|
|
7162
|
+
deferrals=tuple(deferrals),
|
|
7074
7163
|
alert=None,
|
|
7075
7164
|
launch=None,
|
|
7076
7165
|
)
|
|
@@ -7201,17 +7290,35 @@ def plan_tick(
|
|
|
7201
7290
|
for entry in waiting:
|
|
7202
7291
|
if launch is not None:
|
|
7203
7292
|
# Report-only pass over the tail of the queue. The launch above
|
|
7204
|
-
# already won this tick, so
|
|
7205
|
-
#
|
|
7206
|
-
#
|
|
7293
|
+
# already won this tick, so `counted` stays `False` and neither
|
|
7294
|
+
# `deferrals` nor the queue-level alert moves for anything found
|
|
7295
|
+
# here — that part is unchanged. #3461: the descriptive TEXT is
|
|
7296
|
+
# no longer left frozen just because this entry never got to
|
|
7297
|
+
# compete for a slot — `_refresh_only` (defined near the top of
|
|
7298
|
+
# this function) still folds a changed reading into `updates` so
|
|
7299
|
+
# `--dry-run` AND a real tick both keep `last_reason` current for
|
|
7300
|
+
# every entry the walk reaches, not only the one that launched.
|
|
7207
7301
|
cooldown = _cooldown_reason(entry)
|
|
7208
7302
|
if cooldown:
|
|
7209
|
-
deferrals.append(
|
|
7303
|
+
deferrals.append(
|
|
7304
|
+
Deferral(
|
|
7305
|
+
entry.key,
|
|
7306
|
+
cooldown,
|
|
7307
|
+
counted=False,
|
|
7308
|
+
updates=_refresh_only(cooldown, entry.last_reason),
|
|
7309
|
+
)
|
|
7310
|
+
)
|
|
7210
7311
|
continue
|
|
7211
7312
|
backoff = _backoff_reason(entry)
|
|
7212
7313
|
if backoff:
|
|
7213
7314
|
deferrals.append(
|
|
7214
|
-
Deferral(
|
|
7315
|
+
Deferral(
|
|
7316
|
+
entry.key,
|
|
7317
|
+
backoff,
|
|
7318
|
+
counted=False,
|
|
7319
|
+
backing_off=True,
|
|
7320
|
+
updates=_refresh_only(backoff, entry.last_reason),
|
|
7321
|
+
)
|
|
7215
7322
|
)
|
|
7216
7323
|
continue
|
|
7217
7324
|
verdict = _resolve_prereqs(
|
|
@@ -7225,20 +7332,35 @@ def plan_tick(
|
|
|
7225
7332
|
)
|
|
7226
7333
|
if not verdict.satisfied:
|
|
7227
7334
|
deferrals.append(
|
|
7228
|
-
Deferral(
|
|
7335
|
+
Deferral(
|
|
7336
|
+
entry.key,
|
|
7337
|
+
verdict.reason,
|
|
7338
|
+
counted=False,
|
|
7339
|
+
updates=_refresh_only(verdict.reason, entry.last_reason),
|
|
7340
|
+
)
|
|
7229
7341
|
)
|
|
7230
7342
|
continue
|
|
7231
7343
|
cordoned = _cordon_reason(entry)
|
|
7232
7344
|
if cordoned:
|
|
7233
7345
|
deferrals.append(
|
|
7234
|
-
Deferral(
|
|
7346
|
+
Deferral(
|
|
7347
|
+
entry.key,
|
|
7348
|
+
cordoned,
|
|
7349
|
+
counted=False,
|
|
7350
|
+
cordoned=True,
|
|
7351
|
+
updates=_refresh_only(cordoned, entry.last_reason),
|
|
7352
|
+
)
|
|
7235
7353
|
)
|
|
7236
7354
|
continue
|
|
7237
7355
|
repo_limit = _repo_limit_reason(entry)
|
|
7238
7356
|
if repo_limit:
|
|
7239
7357
|
deferrals.append(
|
|
7240
7358
|
Deferral(
|
|
7241
|
-
entry.key,
|
|
7359
|
+
entry.key,
|
|
7360
|
+
repo_limit,
|
|
7361
|
+
counted=False,
|
|
7362
|
+
repo_limited=True,
|
|
7363
|
+
updates=_refresh_only(repo_limit, entry.last_reason),
|
|
7242
7364
|
)
|
|
7243
7365
|
)
|
|
7244
7366
|
continue
|
|
@@ -8473,7 +8473,7 @@ _DRIVE_QUEUE_COLUMNS = (
|
|
|
8473
8473
|
"enqueued_at, hold_after, hold_reason, resume_when, hold_state, "
|
|
8474
8474
|
"hold_probes, launch_host, hold_scope, resumes, retry_backoff_at, "
|
|
8475
8475
|
"max_fix_rounds, no_acceptance, plan_destructive, apply_verdict, "
|
|
8476
|
-
"apply_verdict_reason, apply_verdict_at"
|
|
8476
|
+
"apply_verdict_reason, apply_verdict_at, legs_at_enqueue"
|
|
8477
8477
|
)
|
|
8478
8478
|
|
|
8479
8479
|
# Fields `update_drive_queue_entry` may write. Deliberately excludes the
|
|
@@ -8655,6 +8655,42 @@ def enqueue_drive_queue(
|
|
|
8655
8655
|
)
|
|
8656
8656
|
|
|
8657
8657
|
|
|
8658
|
+
def _work_leg_count_for_issue_local(conn, repo_name: str, issue_number: int) -> int:
|
|
8659
|
+
"""All-time WORK_LIKE assignment count for ONE issue, right now (#3463).
|
|
8660
|
+
|
|
8661
|
+
Same scope as :func:`_leg_counts_local` (both ``assignments`` and
|
|
8662
|
+
``assignments_archive``, so a long-lived issue's early legs don't drop
|
|
8663
|
+
out of the count as they age past the archive retention window) but
|
|
8664
|
+
narrowed to a single ``(repo_name, issue_number)`` and run on the
|
|
8665
|
+
CALLER's own connection — so ``_enqueue_drive_queue_local`` can stamp
|
|
8666
|
+
``legs_at_enqueue`` atomically with the very write that declares the
|
|
8667
|
+
row, rather than racing a second connection's transaction.
|
|
8668
|
+
|
|
8669
|
+
A NULL/empty ``type`` counts as ``"work"`` — same convention
|
|
8670
|
+
:func:`coord.drive_queue.compute_leg_counts` uses (``t = assignment_type
|
|
8671
|
+
or "work"``) — which is always in ``WORK_LIKE_TYPES``, so a bare
|
|
8672
|
+
``type IS NULL`` row is counted, never silently dropped.
|
|
8673
|
+
"""
|
|
8674
|
+
placeholders = ",".join("?" for _ in WORK_LIKE_TYPES)
|
|
8675
|
+
total = 0
|
|
8676
|
+
for table in ("assignments", "assignments_archive"):
|
|
8677
|
+
try:
|
|
8678
|
+
row = sql.execute(conn,
|
|
8679
|
+
f"SELECT COUNT(*) AS n FROM {table} WHERE repo_name = ? " # noqa: S608 — constant
|
|
8680
|
+
f"AND issue_number = ? AND (type IS NULL OR type IN ({placeholders}))",
|
|
8681
|
+
(repo_name, issue_number, *WORK_LIKE_TYPES),
|
|
8682
|
+
).fetchone()
|
|
8683
|
+
except sql.driver_errors() as exc: # #2784: was sqlite3.OperationalError only
|
|
8684
|
+
# Mirrors `_leg_counts_local`: `continue` on the SAME connection
|
|
8685
|
+
# so a missing `assignments_archive` (housekeeping never ran)
|
|
8686
|
+
# doesn't poison the transaction the caller's write is still
|
|
8687
|
+
# inside of (#2983).
|
|
8688
|
+
rollback_after_driver_error(conn, exc)
|
|
8689
|
+
continue
|
|
8690
|
+
total += int(row["n"]) if row is not None else 0
|
|
8691
|
+
return total
|
|
8692
|
+
|
|
8693
|
+
|
|
8658
8694
|
def _enqueue_drive_queue_local(
|
|
8659
8695
|
repo_name: str,
|
|
8660
8696
|
issue_number: int,
|
|
@@ -8705,6 +8741,21 @@ def _enqueue_drive_queue_local(
|
|
|
8705
8741
|
"SELECT id FROM drive_queue WHERE repo_name = ? AND issue_number = ?",
|
|
8706
8742
|
(repo_name, issue_number),
|
|
8707
8743
|
).fetchone()
|
|
8744
|
+
# #3463: the all-time WORK_LIKE leg count for THIS issue, read on
|
|
8745
|
+
# THIS connection right before the write below commits it as the
|
|
8746
|
+
# row's new baseline. Recomputed on every `enqueue_drive_queue` call
|
|
8747
|
+
# — insert AND update-in-place — never carried forward from a prior
|
|
8748
|
+
# `legs_at_enqueue`, so an explicit `add` (whether it lands on a
|
|
8749
|
+
# brand-new row after `remove`, or refreshes an already-queued one)
|
|
8750
|
+
# always measures this row's spend from "legs as of right now",
|
|
8751
|
+
# which is what lets `remaining_fix_rounds` hand out the fresh
|
|
8752
|
+
# budget the #3454 ceiling message promises. A bare relaunch never
|
|
8753
|
+
# reaches this function at all (it goes through
|
|
8754
|
+
# `update_drive_queue_entry` instead), so the #2972 "no fresh
|
|
8755
|
+
# budget from a relaunch" guarantee is untouched.
|
|
8756
|
+
legs_at_enqueue = _work_leg_count_for_issue_local(
|
|
8757
|
+
conn, repo_name, issue_number
|
|
8758
|
+
)
|
|
8708
8759
|
if existing is not None:
|
|
8709
8760
|
# Already queued → update the operator-declared fields in place
|
|
8710
8761
|
# rather than creating a second row for the same issue. Run
|
|
@@ -8720,7 +8771,7 @@ def _enqueue_drive_queue_local(
|
|
|
8720
8771
|
"UPDATE drive_queue SET machine = ?, after_json = ?, hold_after = ?, "
|
|
8721
8772
|
"hold_reason = ?, resume_when = ?, hold_state = ?, hold_probes = 0, "
|
|
8722
8773
|
"hold_scope = ?, max_fix_rounds = ?, no_acceptance = ?, "
|
|
8723
|
-
"plan_destructive = ? WHERE id = ?",
|
|
8774
|
+
"plan_destructive = ?, legs_at_enqueue = ? WHERE id = ?",
|
|
8724
8775
|
(
|
|
8725
8776
|
machine,
|
|
8726
8777
|
after_json,
|
|
@@ -8732,6 +8783,7 @@ def _enqueue_drive_queue_local(
|
|
|
8732
8783
|
max_fix_rounds,
|
|
8733
8784
|
no_acceptance_int,
|
|
8734
8785
|
plan_destructive_int,
|
|
8786
|
+
legs_at_enqueue,
|
|
8735
8787
|
existing["id"],
|
|
8736
8788
|
),
|
|
8737
8789
|
)
|
|
@@ -8746,8 +8798,8 @@ def _enqueue_drive_queue_local(
|
|
|
8746
8798
|
"INSERT INTO drive_queue "
|
|
8747
8799
|
"(repo_name, issue_number, position, machine, after_json, enqueued_at, "
|
|
8748
8800
|
" hold_after, hold_reason, resume_when, hold_state, hold_scope, "
|
|
8749
|
-
" max_fix_rounds, no_acceptance, plan_destructive) "
|
|
8750
|
-
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
|
|
8801
|
+
" max_fix_rounds, no_acceptance, plan_destructive, legs_at_enqueue) "
|
|
8802
|
+
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
|
|
8751
8803
|
(
|
|
8752
8804
|
repo_name,
|
|
8753
8805
|
issue_number,
|
|
@@ -8763,6 +8815,7 @@ def _enqueue_drive_queue_local(
|
|
|
8763
8815
|
max_fix_rounds,
|
|
8764
8816
|
no_acceptance_int,
|
|
8765
8817
|
plan_destructive_int,
|
|
8818
|
+
legs_at_enqueue,
|
|
8766
8819
|
),
|
|
8767
8820
|
pk_column="id",
|
|
8768
8821
|
)
|
|
@@ -5035,6 +5035,70 @@ def test_leg_counts_non_lock_failure_warns_and_degrades_to_zero_not_silence(
|
|
|
5035
5035
|
assert queued(1650)["state"] == "running"
|
|
5036
5036
|
|
|
5037
5037
|
|
|
5038
|
+
# ── #3463: `list`'s `fix_rounds=` renders spend, not "every leg incl. the
|
|
5039
|
+
# initial one against budget+1" — and never clamps an overrun back to a
|
|
5040
|
+
# reassuring `N/N`.
|
|
5041
|
+
|
|
5042
|
+
|
|
5043
|
+
def test_list_renders_fix_rounds_as_spent_over_max_not_legs_over_budget_plus_one(
|
|
5044
|
+
cli, seed
|
|
5045
|
+
):
|
|
5046
|
+
"""`--max-fix-rounds 4` — a row that has run 1 work + 4 fix legs (5 legs
|
|
5047
|
+
total) must render `fix_rounds=4/4` (4 fix rounds spent of 4 allowed),
|
|
5048
|
+
never the pre-#3463 `5/5` (every leg, including the unconditional
|
|
5049
|
+
initial one, against `max_fix_rounds + 1`)."""
|
|
5050
|
+
seed(issues={1650: "open"})
|
|
5051
|
+
assert cli("add", REPO, "1650", "--max-fix-rounds", "4").exit_code == 0
|
|
5052
|
+
# The row's own history accrues AFTER it is declared — `legs_at_enqueue`
|
|
5053
|
+
# was stamped at 0 by the `add` above, so every one of these counts as
|
|
5054
|
+
# this row's own spend.
|
|
5055
|
+
seed(assignments=[
|
|
5056
|
+
{"issue_number": 1650, "type": "work", "status": "done"}
|
|
5057
|
+
for _ in range(5)
|
|
5058
|
+
])
|
|
5059
|
+
|
|
5060
|
+
result = cli("list")
|
|
5061
|
+
assert result.exit_code == 0, result.output
|
|
5062
|
+
assert "fix_rounds=4/4" in result.output
|
|
5063
|
+
assert "fix_rounds=5/5" not in result.output
|
|
5064
|
+
|
|
5065
|
+
|
|
5066
|
+
def test_list_renders_zero_spent_for_a_fresh_row_with_only_its_initial_leg(
|
|
5067
|
+
cli, seed
|
|
5068
|
+
):
|
|
5069
|
+
"""A fresh `--max-fix-rounds 5` row with only its initial (unconditional)
|
|
5070
|
+
work leg has spent NO fix rounds yet — `fix_rounds=0/5`, never the
|
|
5071
|
+
pre-#3463 `1/6`."""
|
|
5072
|
+
seed(issues={1650: "open"})
|
|
5073
|
+
assert cli("add", REPO, "1650", "--max-fix-rounds", "5").exit_code == 0
|
|
5074
|
+
seed(assignments=[{"issue_number": 1650, "type": "work", "status": "running"}])
|
|
5075
|
+
|
|
5076
|
+
result = cli("list")
|
|
5077
|
+
assert result.exit_code == 0, result.output
|
|
5078
|
+
assert "fix_rounds=0/5" in result.output
|
|
5079
|
+
assert "fix_rounds=1/6" not in result.output
|
|
5080
|
+
|
|
5081
|
+
|
|
5082
|
+
def test_list_marks_an_overrun_row_rather_than_clamping_to_n_over_n(cli, seed):
|
|
5083
|
+
"""A row that dispatched PAST its own ceiling (the #3454 leak this issue
|
|
5084
|
+
also reports) must stay visibly an overrun — never silently clamp back
|
|
5085
|
+
down to a reassuring `budget/budget`."""
|
|
5086
|
+
seed(issues={1650: "open"})
|
|
5087
|
+
assert cli("add", REPO, "1650", "--max-fix-rounds", "2").exit_code == 0
|
|
5088
|
+
# 1 work + 5 more legs = 6 total, 5 fix rounds spent against a 2-round
|
|
5089
|
+
# allowance — well past the ceiling.
|
|
5090
|
+
seed(assignments=[
|
|
5091
|
+
{"issue_number": 1650, "type": "work", "status": "done"}
|
|
5092
|
+
for _ in range(6)
|
|
5093
|
+
])
|
|
5094
|
+
|
|
5095
|
+
result = cli("list")
|
|
5096
|
+
assert result.exit_code == 0, result.output
|
|
5097
|
+
assert "fix_rounds=5/2!" in result.output
|
|
5098
|
+
assert "fix_rounds=2/2" not in result.output
|
|
5099
|
+
assert "fix_rounds=3/3" not in result.output
|
|
5100
|
+
|
|
5101
|
+
|
|
5038
5102
|
def test_a_failed_launch_is_a_consumed_attempt_not_a_running_entry(
|
|
5039
5103
|
cli, seed, launches
|
|
5040
5104
|
):
|
|
@@ -2468,7 +2468,7 @@ class TestUatStateAndReasonColumns:
|
|
|
2468
2468
|
# #3384 bumped this to (19, 97): `issues.state_reason` — GitHub's own witness
|
|
2469
2469
|
# that an issue was explicitly reopened, distinguishing that from an issue
|
|
2470
2470
|
# that merged without ever auto-closing.
|
|
2471
|
-
_PINNED_SCHEMA_VERSION_AND_MIGRATION_COUNT = (
|
|
2471
|
+
_PINNED_SCHEMA_VERSION_AND_MIGRATION_COUNT = (20, 98)
|
|
2472
2472
|
|
|
2473
2473
|
|
|
2474
2474
|
class TestMigrateAddColumnsVersionGuard:
|