code-coordinator 0.5.528__tar.gz → 0.5.530__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.528 → code_coordinator-0.5.530}/.gitignore +1 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/PKG-INFO +1 -1
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/code_coordinator.egg-info/PKG-INFO +1 -1
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/code_coordinator.egg-info/SOURCES.txt +1 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/code_coordinator.egg-info/scm_file_list.json +1 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/code_coordinator.egg-info/scm_version.json +2 -2
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/conflict_fix.py +174 -29
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/db.py +35 -1
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/housekeeping.py +29 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/notify.py +41 -3
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/reconcile.py +163 -33
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/reports.py +717 -21
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/coord-test-runner.sh +186 -13
- code_coordinator-0.5.530/tests/fixtures/test_report/pytest_error_log_record.txt +12 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_conflict_fix.py +163 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_coord_test_runner_baseline.py +289 -3
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_db.py +5 -1
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_notify.py +144 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_reconcile.py +173 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_reports.py +462 -4
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_test_report.py +23 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/.claude/commands/board.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/.claude/commands/complete-session.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/.claude/commands/coordinator.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/.githooks/_lib.sh +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/.githooks/post-checkout +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/.githooks/post-commit +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/.githooks/post-merge +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/.github/workflows/auto-release.yml +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/.github/workflows/publish.yml +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/.github/workflows/test.yml +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/CLAUDE.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/GOAL.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/LICENSE +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/MANIFEST.in +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/README.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/code_coordinator.egg-info/dependency_links.txt +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/code_coordinator.egg-info/entry_points.txt +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/code_coordinator.egg-info/requires.txt +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/code_coordinator.egg-info/top_level.txt +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/__init__.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/_board_mapping.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/acceptance.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/acceptance_drivers.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/agent.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/agent_app.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/agent_update.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/agents/opencode/.gitignore +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/agents/opencode/agents/work.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/agents/opencode/routing.jsonc +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/approved_work.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/audit.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/auto_loop.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/backup.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/block_log.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/board_schema.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/board_service.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/board_wire.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/brain.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/branch_model.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/bug_intake.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/cargo_cache.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/ci_fix.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/ci_github.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/ci_gitlab.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/ci_store.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/claim.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/claude_setup_token.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/cli.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/client.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/codegen.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/__init__.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/_common.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/acceptance.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/agent_ops.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/audit.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/backup.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/chat.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/ci.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/codegen.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/dispatch.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/dispatch_workers.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/dr.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/drive.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/drive_queue.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/gate_a.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/gates.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/issues.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/lifecycle.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/machine.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/merge.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/milestone.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/plan_followup.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/plans.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/portal.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/pr.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/release.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/repo.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/report.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/review.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/scorecard.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/sessions.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/setup.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/status.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/store_migrate.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/terminal.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/test_gate.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/commands/tui.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/comments.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/config.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/config_reload.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/confirm_test.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/dao.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/dashboard/__init__.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/dashboard/fixture.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/dashboard/index.html +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/dashboard/server.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/dashboard/terminal.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/dead_end.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/decomposition_chat.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/deploy/README.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/deploy/coord-backup.service +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/deploy/coord-backup.timer +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/deploy/coord-dr-verify.service +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/deploy/coord-dr-verify.timer +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/deploy/coord-failure-notify.service +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/deploy/coord-fleet-watchdog.service +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/deploy/coord-fleet-watchdog.timer +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/deploy_manifest.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/deploy_units.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/deprecation_telemetry.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/deps.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/diagnose.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/dispatch.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/dispatch_liveness.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/dist_name.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/dr_promote.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/dr_verify.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/drive.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/drive_queue.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/drive_sessions_snapshot.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/drive_state.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/events.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/failure_class.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/failure_classifier.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/filelock.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/fleet_config_health.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/forge_availability.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/freshness.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/gate_a.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/gate_b.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/gate_snapshot.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/gates.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/gen_board_fixture.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/github_ops.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/github_throttle.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/goal.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/graph_health.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/__init__.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/aggregate.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/checks/__init__.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/checks/_ci_pin.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/checks/agent_install.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/checks/cargo_targets.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/checks/claude_binary.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/checks/config_drift.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/checks/coord_tui_ci_pin.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/checks/coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/checks/deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/checks/disk.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/checks/fleet_board.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/checks/fleet_deploy_lanes.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/checks/fleet_phantom.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/checks/fleet_unit_drift.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/checks/graph.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/checks/graphify_cli.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/checks/index_lock.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/checks/issues_sync_staleness.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/checks/local_machine_identity.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/checks/plan_usage.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/checks/pr_churn.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/checks/release_cordon.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/checks/repo_state.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/checks/spawned_coord.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/checks/stalled_pipeline.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/checks/timer_active.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/checks/toolchain.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/checks/unit_drift.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/checks/unit_enablement.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/checks/wedged_drive_queue.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/checks/worktrees.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/cli.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/context.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/fleet_snapshot.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/models.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/pypi.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/registry.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/render.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/health/units.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/hooks.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/interactive.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/invariant_alarms.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/issue_store.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/issues_sync_status.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/liveness_auditor.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/machine_fault.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/machine_metrics.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/machine_onboard.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/machine_pause.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/machine_stats.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/merge_queue.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/milestone_chat.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/milestone_dispatch.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/milestone_gate.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/milestone_order.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/mock_author.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/models.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/network.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/new_issue_chat.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/notifier/__init__.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/notifier/baseline.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/notifier/cli.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/notifier/collect.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/notifier/digest.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/notifier/models.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/notifier/predicate.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/notifier/service.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/notifier/store.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/notifier/transport.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/openapi.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/overlap_fence.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/overlap_predict.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/parentage.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/parentage_github.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/pipeline.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/plan_parser.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/plans.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/platform_paths.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/portal_bridge.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/portal_store.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/portal_sync.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/pr_body_lint.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/prereqs.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/progress.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/providers/__init__.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/providers/base.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/providers/claude.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/providers/claude_pty.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/providers/opencode.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/queue_diagnose.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/reconcile_tick.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/refine_chat.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/release_cordon.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/release_propagate.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/release_verify.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/release_window.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/repo_dormancy.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/repo_edit.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/repo_onboard.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/rest_schema.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/restart_cmd.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/revalidate.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/review.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/scorecard.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/self_health.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/serve_app.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/skills/coord-dispatch-verbs/SKILL.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/skills/drive-queue-preflight/SKILL.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/skills/fleet-restart-safety/SKILL.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/skills/merge-stuck-triage/SKILL.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/skills/pipeline-limbo-triage/SKILL.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/skills/portal-followup/SKILL.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/skills/release-now/SKILL.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/skills/review-verdict-recovery/SKILL.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/skills/tui-quadraui-workflow/SKILL.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/skills/update-issue/SKILL.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/smoke.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/spend_ceiling.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/split_work.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/sql.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/stage_projection.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/state.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/store_migrate.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/store_parity.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/templates/deploy-cloudflare.node.yml +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/test_author.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/test_chat.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/test_orchestrator.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/test_report.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/tui_release.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/uat_checks.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/usage.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/usage_limits.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/usage_rollup.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coord/worker_events.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/coordinator.example.yml +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/deploy/coord-backup.service +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/deploy/coord-backup.timer +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/deploy/coord-dr-verify.service +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/deploy/coord-dr-verify.timer +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/deploy/coord-failure-notify.service +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/deploy/coord-failure-notify.sh +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/deploy/coord-fleet-watchdog.service +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/deploy/coord-fleet-watchdog.timer +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/deploy/coord-web-dist-build.sh +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/deploy/coord-web-rollback.sh +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/deploy/node-shim.sh +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/ADR_COORD_TUI_CI.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/ADR_COORD_WEB_ACCEPTANCE_SUITE.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/ADR_COORD_WEB_CI.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/ADR_COORD_WEB_DIST.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/ADR_PY_RUST_MIRRORS.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/AGENT_OPERATIONS.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/ARCHITECTURE.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/ARCH_SECURITY_GATES.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/COCKPIT.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/COST_DISCIPLINE.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/CROSS_PLATFORM.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/CUSTOMER_FACING_APPS.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/CUSTOMER_PORTAL.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/DATA_STORE_SELECTION.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/DISASTER_RECOVERY.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/DRIVE_QUEUE.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/EPHEMERAL_WORKERS.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/FORGE_MIGRATION.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/GRAPHIFY_SETUP.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/ISSUE_GUIDANCE.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/MAC_MINI.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/NOTIFIER.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/OPENCODE_VERIFICATION.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/OPERATING_GOTCHAS.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/OPERATOR_GUIDES.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/ORACLE_LOOP.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/PHONE_WEBAPP.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/PIPELINE_V2.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/PLATFORM_EVOLUTION.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/SECOND_BACKEND.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/STORE_SERVICE.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/TEST_FIRST_BUG_LANE.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/WEB_CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/WSL_WINDOWS_WORKER.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/mocks/web/README.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/mocks/web/_tokens.css +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/mocks/web/issue-detail.html +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/mocks/web/pipeline-narrow.html +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/docs/mocks/web/pipeline-wide.html +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/graphify-out/.gitignore +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/install-agent.sh +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/pyproject.toml +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/audit_review_verdict_overrides.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/azure-workers/bootstrap-shared.sh +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/azure-workers/build-worker-image.sh +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/azure-workers/coordinator-machine.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/azure-workers/dr-down.sh +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/azure-workers/dr-up.sh +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/azure-workers/epic-down.sh +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/azure-workers/epic-up.sh +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/azure-workers/preflight.sh +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/azure-workers/provision-server.sh +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/azure-workers/provision-worker.sh +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/azure-workers/tailnet-acl.hujson +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/azure-workers/throwaway-vm.sh +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/azure-workers/verify-github-token.sh +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/check_gh_argv_containment.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/codegen.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/coord-tui-scaffold/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/coord-tui-scaffold/.github/workflows/cargo-test.yml +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/coord-tui-scaffold/.github/workflows/codegen-drift.yml +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/coord-tui-scaffold/CLAUDE.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/coord-venv-rollback.sh +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/drive-batch.sh +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/extract-coord-tui.sh +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/fleet_watchdog.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/gen_board_fixture.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/gen_mock_index.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/lib/provision-core.sh +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/next_release_tag.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/provision-machine.sh +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/run_tests_in_populated_home.sh +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/run_tests_without_gh.sh +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/setup-macmini.sh +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/smoke_437_interactive.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/verify-provision-noble.sh +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/verify_878_review_capture.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/verify_release_published.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/scripts/verify_release_wheel.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/setup.cfg +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/SMOKE_SET.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/__init__.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/acceptance/ms-37/conftest.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/acceptance/ms-37/contract.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/acceptance/ms-37/manifest.yml +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/acceptance/ms-51/contract.md +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/acceptance/ms-51/manifest.yml +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/acceptance/ms-51/tsconfig.json +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/backends.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/conftest.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/fixtures/board-pipeline-basic.json +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/fixtures/opencode_run_sample.jsonl +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/fixtures/playwright/all_pass.json +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/fixtures/playwright/global_setup_crash.json +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/fixtures/playwright/mixed_fail.json +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/fixtures/playwright/retry_then_pass.json +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/fixtures/playwright/skip.json +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/fixtures/playwright/truncated.json +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_acceptance.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_acceptance_drivers.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_agent.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_agent_api_error.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_agent_app.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_agent_branch_base.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_agent_branch_capture.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_agent_config_free_1712.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_agent_deploy_units_endpoint.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_agent_dirty_worktree.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_agent_drive_queue_reconcile_2373.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_agent_graph_self_heal.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_agent_health_h3.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_agent_idle_restart.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_agent_push_failure.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_agent_reap.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_agent_repos_and_pull.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_agent_restart_services_endpoint.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_agent_skills_self_heal.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_agent_startup_diagnostics.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_agent_update.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_agent_update_bluegreen.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_agent_usage_limit.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_agent_zero_commit.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_ambient_home_isolation.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_approve_capability_reroute_3241.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_approve_dependency_busy_2804.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_approve_reject_plan.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_approve_usage_gate.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_approved_work_2532.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_approved_work_2996.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_assignment_already_recorded_daemon.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_audit_log.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_audit_outcome.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_audit_query.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_auto_loop.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_auto_release_publish_2035.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_backend_selection.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_backup.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_base_checkout_restore.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_block_log.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_board_cap_762.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_board_fixture.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_board_read_path.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_board_schema.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_board_service.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_board_state.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_board_wire.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_brain.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_branch_model.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_bug_intake.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_build_worker_image_env_update.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cargo_cache.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_check_gh_argv_containment.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_ci_acceptance_gate_1950.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_ci_fix.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_ci_github.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_ci_gitlab.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_ci_parity_2091.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_ci_store.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_claim.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_claude_md_budget.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_claude_setup_token.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_acceptance.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_assign.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_assign_interactive_remote.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_assign_provider.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_assign_repo_drift_2219.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_audit.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_chat_continue.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_ci.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_codegen.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_decide.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_diagnose_capability_rules.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_diagnose_config_provenance.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_diagnose_forge_availability.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_diagnose_graph.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_diagnose_self.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_diagnose_test_coverage.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_doctor.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_doctor_config_free_1801.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_doctor_store_backend_3084.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_drive.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_drive_queue.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_escalate.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_fix_headless_review.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_gate_a.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_install_drift.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_install_skills.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_issue_comment.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_issue_create_label.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_issue_reopen.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_issue_view_list.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_issues.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_merge.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_milestone_assign.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_milestone_capture.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_milestone_chat_add_child.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_milestone_gate_b.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_milestone_gate_c.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_milestone_order.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_milestone_ship.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_network.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_new_issue_chat.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_plans.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_portal.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_pr.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_pull_artifact.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_queue.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_reattach_sessions.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_refine_board.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_release_preflight.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_release_propagate.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_release_window.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_repo_2220.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_review_test_author_tracking_epic_2639.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_scorecard.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_serve_store_backend_3084.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_set_review_findings.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_status_advisory_terminal.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_status_contested_tag.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_status_invariant_alarms.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_status_machine_fault.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_status_merge_queue.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_status_provider.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_status_retried_3340.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_status_review_finalizing.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_status_supervisor_3366.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_status_test_failed_tag.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_status_usage_limit.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_sync_comments_873.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_test_plan.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_track.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_tui_update.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cli_wait.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_client.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_client_base_install.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_client_config_cache_atomic_3052.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_client_resource_migration_1946.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_commands_common.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_comments.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_completion_summary.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_config.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_config_acceptance.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_config_audit.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_config_drift_check.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_config_effective.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_config_pricing.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_config_usage_gate.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_confirm_test.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_conflict_fix_semantic.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_coord_log_daemon_fallback_2547.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_coord_test.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_coord_test_runner_acceptance_toolchain_2936.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_coord_test_runner_populated_home.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_coord_test_runner_routing.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_coord_test_runner_toolchain.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_coord_uat.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_coord_web_sse_restart_live.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_coordinator_machine.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_cross_platform_imports.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_dao.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_dashboard.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_dashboard_api.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_dashboard_fixture.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_dashboard_server.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_dashboard_terminal.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_dashboard_terminal_live.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_dead_end.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_decomposition_chat.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_deploy_coord_db_backup.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_deploy_coord_web_dist.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_deploy_coord_web_rollback.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_deploy_db_backup_unit.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_deploy_drive_queue_unit.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_deploy_failure_notify_unit.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_deploy_manifest.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_deploy_notify_unit.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_deploy_units_lane.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_deploy_web_unit.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_deprecation_telemetry.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_deps.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_diagnose.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_dispatch.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_dispatch_liveness.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_dispatch_target_validation.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_dispatch_workers.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_dist_name.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_done_housekeeping.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_dr_azure_scripts.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_dr_promote.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_dr_verify.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_drive.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_drive_machine_fault.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_drive_queue.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_drive_queue_blocked_rendering.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_drive_queue_launch_argv.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_drive_queue_max_parallel_config.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_drive_queue_max_parallel_per_repo_config.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_drive_queue_roll_pending.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_drive_queue_self_cordon_escalation.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_drive_sessions_snapshot.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_drive_state.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_drive_tmux.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_epic_up_capability_detection.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_epic_up_image_provenance.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_errors.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_events.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_failure_class.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_failure_classifier.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_filelock.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_fix_escalation_classifier.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_fix_of_force_override.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_fleet_config_health.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_fleet_health_probes.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_fleet_health_snapshot.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_fleet_watchdog.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_forge_availability.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_freshness.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_gate_a.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_gate_b.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_gate_snapshot_staleness.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_gates.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_gather_fleet_tmux_sessions.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_gen_mock_index.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_generated_rust_fixture.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_generated_rust_requests.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_generated_types_fixture.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_github_ops.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_github_throttle.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_goal.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_graph_health.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_graph_selfheal_absent_2237.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_handoff.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_health_checks.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_health_cli.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_health_cli_graph.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_health_config.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_health_context.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_health_coord_tui_ci_pin.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_health_coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_health_deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_health_fix.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_health_incident_regression.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_health_issues_sync_staleness.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_health_pr_churn.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_health_pypi.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_health_registry.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_health_release_cordon_probe.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_health_timer_active.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_health_toolchain.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_health_unit_drift.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_health_unit_enablement.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_health_wedged_drive_queue.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_hooks.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_housekeeping.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_human_attended_437.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_init.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_install_agent_venv_2911.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_integration.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_interactive.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_interactive_briefing_echo.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_interactive_pane_log_2541.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_interactive_prefill_state.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_interactive_session_relaunch.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_interactive_test_verdict_backstop.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_interactive_token_attribution.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_interactive_worktree.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_invariant_alarms.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_issue_store_seam.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_issues_sync_status.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_liveness_auditor.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_liveness_notify.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_lock_contention_ratchet.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_machine_fault.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_machine_metrics.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_machine_onboard.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_machine_pause.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_machine_stats.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_merge_queue.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_merge_verify.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_milestone_chat.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_milestone_gate.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_milestone_order.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_milestone_seam.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_mock_author.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_model_tiering.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_models.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_models_config_labels.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_needs_attention.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_network.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_new_issue_chat.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_next_release_tag.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_node_shim.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_notifier_baseline.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_notifier_cli.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_notifier_collect.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_notifier_config.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_notifier_drive_seam.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_notifier_isolation.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_notifier_predicate.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_notifier_quiet_hours.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_notifier_service.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_notify_drain.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_openapi.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_operational_defaults.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_overlap_fence.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_overlap_predict.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_packaged_deploy_units.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_parentage.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_paste_landed.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_phantom_heal_venv_independence_2570.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_pipeline.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_plan_followup_approve_plan_command.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_plan_followup_pr_command.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_plan_followup_review_command.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_plan_only.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_plan_parser.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_platform_paths.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_portal_bridge.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_portal_config.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_portal_store.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_portal_sync.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_pr_body_lint.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_prereqs.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_production_db_guard.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_progress.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_provider_seam.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_providers.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_providers_config_labels.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_providers_pty.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_provision_core.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_provision_machine.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_py_rust_mirror_inventory.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_quiet_hours.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_quiet_hours_store_2146.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_reap_merged_sessions.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_reap_stale_interactive_tick.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_reconcile_branch.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_reconcile_completions.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_reconcile_late_agent_reports_2547.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_reconcile_merges.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_reconcile_no_agent_record.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_reconcile_tick.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_reconcile_usage_limit_done.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_refine_chat.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_release_cordon_2101.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_release_cordon_deadlock_2240.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_release_cordon_drain_stall_3336.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_release_cordon_stuck_2490.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_release_propagate.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_release_propagate_threshold.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_release_roll_between_legs_2854.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_release_roll_window_handoff.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_release_unified_1242.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_release_verify.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_release_window.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_remote_auto_prune.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_remote_interactive_reaper.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_repo_add.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_repo_dormancy.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_repo_edit_2220.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_repo_graph_fleet_2237.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_repo_max_parallel_3423.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_repo_onboard_2220.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_report_result_push.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_restart_cmd.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_retry.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_retry_advisory_1606.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_retry_escalation_classify_3360.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_retry_type_1636.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_revalidate.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_review.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_review_end_review_without_verdict.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_review_parse_failure_diagnostic.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_review_reaffirm.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_review_state.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_review_verdict_backstop.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_review_verdict_override_audit.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_review_verdict_relay.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_review_zero_commits.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_scoped_review_wiring.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_scorecard.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_self_health.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_serve.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_serve_app.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_serve_app_board_trim.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_serve_rest_routes.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_session.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_slice_issue_attribution.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_smoke.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_smoke_fanout_manifest_3333.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_smoke_live_checkout_restore.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_smoke_workflow.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_spend_ceiling.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_spend_ceiling_coordinator.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_split.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_split_work.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_sql_dialect.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_sqlite_connect_ratchet.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_stage_projection.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_stale_busy_reviewer_697.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_stalled_pipeline.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_state.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_state_review_findings_daemon.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_status_fleet_footer.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_stop_1567.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_store_contract.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_store_migrate.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_stuck.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_stuck_test_state_watchdog_2803.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_terminal_command.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_test_author.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_test_chat.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_test_orchestrator.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_test_verdict_parsing.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_test_verdict_transcript_floor.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_text_io_encoding_audit.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_thin_client_board_audit.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_thin_client_config_load_1080.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_thin_client_daemon_routing_906.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_throwaway_vm.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_tmux_host.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_tmux_session.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_transcript_floor.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_uat_checks.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_usage.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_usage_limits.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_usage_rollup.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_venv_live_install_2121.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_version_single_source.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_watch.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_worker_env_venv_isolation.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_worker_events.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_worker_image_pin_sync.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_worker_safety.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_worker_test_scoping.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_worktree.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_worktree_rmtree_chokepoint.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/test_write_parity.py +0 -0
- {code_coordinator-0.5.528 → code_coordinator-0.5.530}/tests/write_parity.py +0 -0
|
@@ -902,6 +902,7 @@ tests/fixtures/test_report/cargo_compile_error.txt
|
|
|
902
902
|
tests/fixtures/test_report/cargo_multi_target_failures.txt
|
|
903
903
|
tests/fixtures/test_report/cargo_no_parseable_failures.txt
|
|
904
904
|
tests/fixtures/test_report/pytest_collection_error.txt
|
|
905
|
+
tests/fixtures/test_report/pytest_error_log_record.txt
|
|
905
906
|
tests/fixtures/test_report/pytest_error_string_in_body.txt
|
|
906
907
|
tests/fixtures/test_report/pytest_internal_error.txt
|
|
907
908
|
tests/fixtures/test_report/pytest_mixed_failures.txt
|
{code_coordinator-0.5.528 → code_coordinator-0.5.530}/code_coordinator.egg-info/scm_file_list.json
RENAMED
|
@@ -438,6 +438,7 @@
|
|
|
438
438
|
"tests/fixtures/test_report/cargo_multi_target_failures.txt",
|
|
439
439
|
"tests/fixtures/test_report/cargo_no_parseable_failures.txt",
|
|
440
440
|
"tests/fixtures/test_report/pytest_collection_error.txt",
|
|
441
|
+
"tests/fixtures/test_report/pytest_error_log_record.txt",
|
|
441
442
|
"tests/fixtures/test_report/pytest_error_string_in_body.txt",
|
|
442
443
|
"tests/fixtures/test_report/pytest_internal_error.txt",
|
|
443
444
|
"tests/fixtures/test_report/pytest_mixed_failures.txt",
|
|
@@ -41,6 +41,18 @@ this same worker for that case, briefed narrowly (see
|
|
|
41
41
|
rebase and refuse — rather than resolve — the instant a real conflict or a
|
|
42
42
|
content change (a ``git patch-id --stable`` mismatch) shows up, since that
|
|
43
43
|
would mean the "just stale" premise was wrong.
|
|
44
|
+
|
|
45
|
+
#3462: a patch-id mismatch caught by the stale-rebase worker has TWO
|
|
46
|
+
distinct causes, not one — a genuine overlapping edit against the moved
|
|
47
|
+
base, OR the branch being SUPERSEDED (its content already landed on the
|
|
48
|
+
target through another change, so ``git pull --rebase`` drops the now-
|
|
49
|
+
empty commit, or the post-rebase diff is a strict subset of the original).
|
|
50
|
+
:func:`build_stale_rebase_briefing` checks patch-equivalence against the
|
|
51
|
+
target (``git merge-tree``, before and after the rebase) and emits a
|
|
52
|
+
distinct :data:`ALREADY_UPSTREAM_MARKER` for the superseded case, so
|
|
53
|
+
:func:`coord.reconcile.on_conflict_fix_done` can park the entry with
|
|
54
|
+
accurate "nothing to merge" text instead of escalating a conflict that
|
|
55
|
+
does not exist.
|
|
44
56
|
"""
|
|
45
57
|
|
|
46
58
|
from __future__ import annotations
|
|
@@ -514,6 +526,16 @@ def sealed_conflict_could_touch_manifest(files: list[str]) -> bool:
|
|
|
514
526
|
# MARKER: a fixed, machine-parseable string, not prose.
|
|
515
527
|
STALE_REBASE_MISMATCH_MARKER = "coord:conflict=stale-rebase-mismatch"
|
|
516
528
|
|
|
529
|
+
# Marker a stale-rebase conflict-fix worker's log carries when it finds the
|
|
530
|
+
# branch's content is already fully present on the target branch — a
|
|
531
|
+
# patch-id (or diff) mismatch that comes from the branch being SUPERSEDED
|
|
532
|
+
# (the same change landed via another issue, maybe with extra tests) rather
|
|
533
|
+
# than from a real overlapping edit (#3462). This is the twin of
|
|
534
|
+
# STALE_REBASE_MISMATCH_MARKER: both fire on a patch-id difference, but only
|
|
535
|
+
# one of them means there is a genuine conflict to resolve — this one means
|
|
536
|
+
# there is nothing left to land at all.
|
|
537
|
+
ALREADY_UPSTREAM_MARKER = "coord:conflict=already-upstream"
|
|
538
|
+
|
|
517
539
|
# Title prefix for a stale-rebase conflict-fix dispatch — visible in the TUI
|
|
518
540
|
# Pipeline row so an operator can tell at a glance this used the narrower,
|
|
519
541
|
# no-conflict-expected briefing rather than the ordinary one.
|
|
@@ -531,23 +553,40 @@ Rules:
|
|
|
531
553
|
Don't try to use them — the harness will reject the call.
|
|
532
554
|
- Stay on the worker's branch — do NOT push to main / develop / target.
|
|
533
555
|
- Use git push --force-with-lease (NOT --force).
|
|
534
|
-
-
|
|
535
|
-
|
|
536
|
-
|
|
556
|
+
- BEFORE rebasing, check whether this branch's content is already fully \
|
|
557
|
+
present on the target (the same change landed via another issue, maybe \
|
|
558
|
+
with extra tests): compare `git merge-tree --write-tree origin/<target> \
|
|
559
|
+
HEAD` against `git rev-parse origin/<target>^{tree}`. If they match, \
|
|
560
|
+
merging this branch would add nothing — there is no conflict AND nothing \
|
|
561
|
+
to rebase. Stop immediately (do not rebase, do not push) and end your turn \
|
|
562
|
+
with a STUCK: line starting with the marker `coord:conflict=already-upstream`.
|
|
563
|
+
- Otherwise, before pushing, confirm the rebase changed nothing: compare \
|
|
564
|
+
the branch's content-addressed `git patch-id --stable` against the target \
|
|
565
|
+
branch BEFORE and AFTER the rebase. They must match exactly.
|
|
566
|
+
- AFTER rebasing, also check whether the branch ended up with zero commits \
|
|
567
|
+
ahead of the target (`git rev-list origin/<target>..HEAD` empty) or an \
|
|
568
|
+
empty diff (`git diff origin/<target> HEAD` empty) — `git pull --rebase` \
|
|
569
|
+
silently drops a commit that turned out to already be applied. That is the \
|
|
570
|
+
SAME already-upstream conclusion as the pre-rebase check, just caught \
|
|
571
|
+
later: stop, do NOT push, and use the same `coord:conflict=already-upstream` \
|
|
572
|
+
marker.
|
|
537
573
|
- If a real conflict marker appears during the rebase, OR the before/after \
|
|
538
|
-
patch-id differs
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
574
|
+
patch-id differs and the branch is NOT already-upstream by the checks \
|
|
575
|
+
above, DO NOT resolve it and DO NOT push. This dispatch is only authorized \
|
|
576
|
+
for a clean, content-preserving rebase — a real conflict means the base's \
|
|
577
|
+
move genuinely overlaps this branch's own changes, which needs a human \
|
|
578
|
+
judgment call, not a guess. Stop and end your turn with a STUCK: line \
|
|
542
579
|
that starts with the marker `coord:conflict=stale-rebase-mismatch`, e.g.
|
|
543
580
|
STUCK: coord:conflict=stale-rebase-mismatch — patch-id before <hash>, \
|
|
544
581
|
after <hash> differ
|
|
545
|
-
The coordinator reads
|
|
546
|
-
exit code (which you cannot control), and escalates to a human
|
|
582
|
+
The coordinator reads these markers from your transcript, not your process \
|
|
583
|
+
exit code (which you cannot control), and escalates to a human either way \
|
|
584
|
+
— `coord:conflict=already-upstream` gets accurate "nothing to merge" \
|
|
585
|
+
text instead of being treated as a real conflict.
|
|
547
586
|
|
|
548
587
|
Progress reporting:
|
|
549
|
-
- After each significant step (
|
|
550
|
-
passed, pushed), output:
|
|
588
|
+
- After each significant step (already-upstream checked, rebase started, \
|
|
589
|
+
patch-id verified, tests passed, pushed), output:
|
|
551
590
|
STATUS: [what you just did] → [what you're about to do] → [confidence]
|
|
552
591
|
- If you stop, output the STUCK: line described above and wait for \
|
|
553
592
|
guidance.\
|
|
@@ -594,35 +633,72 @@ def build_stale_rebase_briefing(
|
|
|
594
633
|
"## Steps",
|
|
595
634
|
"",
|
|
596
635
|
"1. `git fetch origin`",
|
|
597
|
-
"2.
|
|
636
|
+
"2. Check whether this branch is already fully upstream BEFORE "
|
|
637
|
+
"rebasing (#3462): `git merge-tree --write-tree "
|
|
638
|
+
f"origin/{entry.target_branch} HEAD` and compare its output tree "
|
|
639
|
+
f"hash against `git rev-parse origin/{entry.target_branch}^{{tree}}`. "
|
|
640
|
+
"If they match, merging this branch adds NOTHING — the same change "
|
|
641
|
+
"already landed on the target (e.g. via another issue). Stop here: "
|
|
642
|
+
"do not rebase, do not push — see \"When the branch is already "
|
|
643
|
+
"upstream\" below.",
|
|
644
|
+
"3. Record the pre-rebase content fingerprint: "
|
|
598
645
|
f"`git diff origin/{entry.target_branch}...HEAD | git patch-id --stable`",
|
|
599
|
-
f"
|
|
600
|
-
"
|
|
646
|
+
f"4. `git pull --rebase origin {entry.target_branch}`",
|
|
647
|
+
"5. If a conflict marker appears ANYWHERE, stop — see \"When NOT to "
|
|
601
648
|
"guess\" below. Do not resolve it.",
|
|
602
|
-
"
|
|
649
|
+
"6. Check again whether the branch is already upstream, this time "
|
|
650
|
+
"AFTER rebasing: `git rev-list "
|
|
651
|
+
f"origin/{entry.target_branch}..HEAD` is empty, or "
|
|
652
|
+
f"`git diff origin/{entry.target_branch} HEAD` is empty. "
|
|
653
|
+
"`git pull --rebase` silently drops a commit that turns out to "
|
|
654
|
+
"already be applied, so this catches the same already-upstream "
|
|
655
|
+
"case step 2 might have missed (e.g. a subset diff that only "
|
|
656
|
+
"becomes empty once the rebase itself replays it). If either is "
|
|
657
|
+
"empty, stop here too — see \"When the branch is already upstream\" "
|
|
658
|
+
"below. Do not push.",
|
|
659
|
+
"7. Record the post-rebase fingerprint the same way as step 3: "
|
|
603
660
|
f"`git diff origin/{entry.target_branch}...HEAD | git patch-id --stable`. "
|
|
604
|
-
"It must EXACTLY match step
|
|
605
|
-
|
|
606
|
-
f"
|
|
607
|
-
"
|
|
661
|
+
"It must EXACTLY match step 3's. If it doesn't, stop — see \"When "
|
|
662
|
+
"NOT to guess\" below.",
|
|
663
|
+
f"8. Run tests: `{test_cmd}`",
|
|
664
|
+
f"9. `git push --force-with-lease origin {entry.branch}`",
|
|
665
|
+
"10. Exit 0 if push succeeds; non-zero otherwise.",
|
|
666
|
+
"",
|
|
667
|
+
"## When the branch is already upstream",
|
|
668
|
+
"",
|
|
669
|
+
"Steps 2 and 6 both exist to catch the SAME conclusion at different "
|
|
670
|
+
"points: this branch's content is already fully present on "
|
|
671
|
+
f"`{entry.target_branch}` — landed through another change, possibly "
|
|
672
|
+
"with extra tests added alongside it. There is nothing left to "
|
|
673
|
+
"merge, and this is NOT a conflict of any kind (mechanical or "
|
|
674
|
+
"genuine) — do not rebase further, do not resolve anything, and do "
|
|
675
|
+
"NOT push. Stop and end your turn with a `STUCK:` line that begins "
|
|
676
|
+
f"with the exact marker `{ALREADY_UPSTREAM_MARKER}` and names which "
|
|
677
|
+
"check caught it, e.g.",
|
|
678
|
+
"",
|
|
679
|
+
f" STUCK: {ALREADY_UPSTREAM_MARKER} — merge-tree matches target, "
|
|
680
|
+
"branch adds nothing",
|
|
608
681
|
"",
|
|
609
682
|
"## When NOT to guess",
|
|
610
683
|
"",
|
|
611
684
|
"This dispatch is authorized for a PURE, content-preserving rebase "
|
|
612
685
|
"only — not conflict resolution. If a conflict marker appears "
|
|
613
|
-
"during the rebase, or the patch-id from step
|
|
614
|
-
"
|
|
615
|
-
"
|
|
616
|
-
"
|
|
686
|
+
"during the rebase, or the patch-id from step 7 differs from step "
|
|
687
|
+
"3's, AND the branch is NOT already-upstream per steps 2/6 above, "
|
|
688
|
+
"DO NOT resolve it and DO NOT push: that means the base genuinely "
|
|
689
|
+
"overlaps this branch's own changes, which is a human judgment "
|
|
690
|
+
"call, not this worker's. Stop and end your turn with a "
|
|
617
691
|
"`STUCK:` line that begins with the exact marker "
|
|
618
692
|
f"`{STALE_REBASE_MISMATCH_MARKER}` and then names what happened, e.g.",
|
|
619
693
|
"",
|
|
620
694
|
f" STUCK: {STALE_REBASE_MISMATCH_MARKER} patch-id before <hash>, "
|
|
621
695
|
"after <hash> differ",
|
|
622
696
|
"",
|
|
623
|
-
"The coordinator reads
|
|
697
|
+
"The coordinator reads these markers from your transcript, not your",
|
|
624
698
|
"process exit code (which you cannot control), and escalates to a",
|
|
625
|
-
f"human on issue #{entry.issue_number}
|
|
699
|
+
f"human on issue #{entry.issue_number} either way — the "
|
|
700
|
+
f"`{ALREADY_UPSTREAM_MARKER}` marker gets accurate \"nothing to "
|
|
701
|
+
f"merge\" text instead of being treated as a real conflict.",
|
|
626
702
|
"",
|
|
627
703
|
"You will NOT use `gh` or `git push --force` — both are denied by",
|
|
628
704
|
"the harness. The coordinator owns PR retries and issue posting.",
|
|
@@ -642,6 +718,22 @@ def stale_rebase_mismatch_verdict_in_text(text: str | None) -> bool:
|
|
|
642
718
|
return STALE_REBASE_MISMATCH_MARKER in _decode_worker_text(text)
|
|
643
719
|
|
|
644
720
|
|
|
721
|
+
def already_upstream_verdict_in_text(text: str | None) -> bool:
|
|
722
|
+
"""True when a stale-rebase conflict-fix worker's log carries the
|
|
723
|
+
:data:`ALREADY_UPSTREAM_MARKER` — i.e. it found the branch's content
|
|
724
|
+
already fully present on the target (#3462), not a genuine conflict.
|
|
725
|
+
|
|
726
|
+
Deliberately does NOT also match :data:`STALE_REBASE_MISMATCH_MARKER` —
|
|
727
|
+
the two markers are distinct verdicts about the SAME underlying
|
|
728
|
+
patch-id difference, and callers need to tell them apart (see
|
|
729
|
+
:func:`detect_already_upstream`'s docstring for why order matters when
|
|
730
|
+
checking both).
|
|
731
|
+
"""
|
|
732
|
+
if not text:
|
|
733
|
+
return False
|
|
734
|
+
return ALREADY_UPSTREAM_MARKER in _decode_worker_text(text)
|
|
735
|
+
|
|
736
|
+
|
|
645
737
|
def build_conflict_fix_briefing(
|
|
646
738
|
*,
|
|
647
739
|
entry: QueuedMerge,
|
|
@@ -803,7 +895,7 @@ def detect_stale_rebase_mismatch(
|
|
|
803
895
|
) -> bool:
|
|
804
896
|
"""True when a finished stale-rebase conflict-fix worker refused to push
|
|
805
897
|
because its rebase was not content-preserving (a real conflict, or a
|
|
806
|
-
patch-id mismatch it caught in step
|
|
898
|
+
patch-id mismatch it caught in step 7 of :func:`build_stale_rebase_briefing`).
|
|
807
899
|
|
|
808
900
|
Mirrors :func:`detect_semantic_conflict` exactly (same local-log-then-
|
|
809
901
|
agent-endpoint lookup, same best-effort ``False`` on any read/transport
|
|
@@ -838,6 +930,57 @@ def detect_stale_rebase_mismatch(
|
|
|
838
930
|
return False
|
|
839
931
|
|
|
840
932
|
|
|
933
|
+
def detect_already_upstream(
|
|
934
|
+
*,
|
|
935
|
+
log_path: str | None = None,
|
|
936
|
+
host: str | None = None,
|
|
937
|
+
assignment_id: str | None = None,
|
|
938
|
+
port: int = AGENT_PORT,
|
|
939
|
+
timeout: float = 15.0,
|
|
940
|
+
) -> bool:
|
|
941
|
+
"""True when a finished stale-rebase conflict-fix worker found the
|
|
942
|
+
branch's content already fully present on the target (#3462) — the
|
|
943
|
+
``git merge-tree``/empty-diff checks in :func:`build_stale_rebase_briefing`
|
|
944
|
+
steps 2/6 caught the branch being SUPERSEDED rather than in genuine
|
|
945
|
+
conflict.
|
|
946
|
+
|
|
947
|
+
Mirrors :func:`detect_stale_rebase_mismatch` exactly (same local-log-
|
|
948
|
+
then-agent-endpoint lookup, same best-effort ``False`` on any read/
|
|
949
|
+
transport failure) but reads for :data:`ALREADY_UPSTREAM_MARKER` via
|
|
950
|
+
:func:`already_upstream_verdict_in_text`.
|
|
951
|
+
|
|
952
|
+
Callers that check both this and :func:`detect_stale_rebase_mismatch`
|
|
953
|
+
against the same log MUST check this one first (#3462 fix) — an
|
|
954
|
+
already-upstream verdict must win over a bare "genuine content
|
|
955
|
+
conflict" framing, since the two questions ("is there anything left to
|
|
956
|
+
merge at all?" vs. "does the rebase conflict?") are answered by
|
|
957
|
+
distinct, mutually exclusive markers in the same transcript.
|
|
958
|
+
"""
|
|
959
|
+
if log_path:
|
|
960
|
+
try:
|
|
961
|
+
from pathlib import Path # noqa: PLC0415
|
|
962
|
+
|
|
963
|
+
p = Path(log_path)
|
|
964
|
+
if p.exists():
|
|
965
|
+
raw = p.read_text(encoding="utf-8", errors="replace")
|
|
966
|
+
if already_upstream_verdict_in_text(raw):
|
|
967
|
+
return True
|
|
968
|
+
except OSError:
|
|
969
|
+
pass
|
|
970
|
+
|
|
971
|
+
if host and assignment_id:
|
|
972
|
+
try:
|
|
973
|
+
resp = httpx.get(
|
|
974
|
+
f"http://{host}:{port}/logs/{assignment_id}", timeout=timeout
|
|
975
|
+
)
|
|
976
|
+
resp.raise_for_status()
|
|
977
|
+
return already_upstream_verdict_in_text(resp.text)
|
|
978
|
+
except (httpx.HTTPError, httpx.TimeoutException):
|
|
979
|
+
return False
|
|
980
|
+
|
|
981
|
+
return False
|
|
982
|
+
|
|
983
|
+
|
|
841
984
|
def semantic_escalation_disabled(config: Config | None) -> bool:
|
|
842
985
|
"""True when a SEMANTIC give-up has nowhere to escalate to (#2566).
|
|
843
986
|
|
|
@@ -1383,9 +1526,11 @@ def dispatch_conflict_fix(
|
|
|
1383
1526
|
conflict-fix path (same briefing/system-prompt/title as the plain
|
|
1384
1527
|
``else`` branch below — this is not a distinct dispatch kind, just a
|
|
1385
1528
|
retry-cap carve-out) right after a stale-rebase worker's
|
|
1386
|
-
``stale-rebase-mismatch`` refusal
|
|
1387
|
-
|
|
1388
|
-
|
|
1529
|
+
``stale-rebase-mismatch`` refusal (not to be confused with an
|
|
1530
|
+
``already-upstream`` verdict, #3462 — that one is NOT a conflict and
|
|
1531
|
+
never reaches this function): that verdict means the *just-stale*
|
|
1532
|
+
premise was wrong — the rebase was not content-preserving, so this may
|
|
1533
|
+
be an ordinary conflict that deserves the ordinary mechanical attempt,
|
|
1389
1534
|
not an immediate HUMAN_REQUIRED. Passes
|
|
1390
1535
|
``ignore_stale_rebase_attempts=True`` to :func:`has_prior_conflict_fix`
|
|
1391
1536
|
so the just-failed stale-rebase attempt — which never even tried a
|
|
@@ -1065,7 +1065,29 @@ def retry_on_locked(
|
|
|
1065
1065
|
# can measure a row's own spend from ITS baseline rather than every
|
|
1066
1066
|
# predecessor row's lifetime total. See `coord.drive_queue.QueueEntry.
|
|
1067
1067
|
# legs_at_enqueue`.
|
|
1068
|
-
|
|
1068
|
+
#
|
|
1069
|
+
# #3470: bumped 20 -> 21 for the two new indexes appended to `_SCHEMA_SQL`
|
|
1070
|
+
# below — not a column, same shape as #3113/#3333's table-only bumps (
|
|
1071
|
+
# `_MIGRATE_ADD_COLUMNS`'s length is unchanged): `idx_assignments_repo_issue`
|
|
1072
|
+
# on `(repo_name, issue_number)` and `idx_assignments_dispatched_at` on
|
|
1073
|
+
# `dispatched_at`, for the `issue-cost` report's full-history scan of
|
|
1074
|
+
# `assignments` + `assignments_archive` (`coord.reports.
|
|
1075
|
+
# _default_issue_cost_source`). `CREATE INDEX IF NOT EXISTS` in `_SCHEMA_SQL`
|
|
1076
|
+
# is what actually creates them on an existing database, and that only runs
|
|
1077
|
+
# when `_ensure_schema` runs, which is gated on this version bump.
|
|
1078
|
+
#
|
|
1079
|
+
# `assignments_archive`'s own two matching indexes are NOT here:
|
|
1080
|
+
# `_ensure_schema`/`_SCHEMA_SQL` only ever runs against tables that exist at
|
|
1081
|
+
# schema-init time, and `assignments_archive` is created lazily by `coord
|
|
1082
|
+
# housekeeping` (`coord.housekeeping._ensure_archive_mirror`) — a database
|
|
1083
|
+
# that reaches this version before its first housekeeping sweep has no such
|
|
1084
|
+
# table yet, so a schema-version-gated `CREATE INDEX ... ON
|
|
1085
|
+
# assignments_archive(...)` here could never reliably retrofit onto every
|
|
1086
|
+
# database. They're created instead at the one chokepoint that actually
|
|
1087
|
+
# knows the table exists: `_ensure_archive_mirror` itself, unconditionally
|
|
1088
|
+
# and idempotently (`CREATE INDEX IF NOT EXISTS`) on every housekeeping
|
|
1089
|
+
# sweep — see that function's own comment in coord/housekeeping.py.
|
|
1090
|
+
_DB_SCHEMA_VERSION = 21
|
|
1069
1091
|
|
|
1070
1092
|
|
|
1071
1093
|
def _read_schema_version(conn: sqlite3.Connection) -> int:
|
|
@@ -1961,6 +1983,18 @@ _SCHEMA_SQL = """
|
|
|
1961
1983
|
|
|
1962
1984
|
CREATE INDEX IF NOT EXISTS idx_assignments_status ON assignments(status);
|
|
1963
1985
|
CREATE INDEX IF NOT EXISTS idx_assignments_machine ON assignments(machine_name);
|
|
1986
|
+
-- #3470: the `issue-cost` report's full-history scan groups every
|
|
1987
|
+
-- leg by (repo_name, issue_number) and orders by dispatched_at —
|
|
1988
|
+
-- see coord.reports._default_issue_cost_source /
|
|
1989
|
+
-- coord.usage_rollup.rollup's IssueKey grouping. `assignments_archive`
|
|
1990
|
+
-- gets the same two indexes via `_migrate_archive_indexes` below,
|
|
1991
|
+
-- since that table is created dynamically by `coord housekeeping`
|
|
1992
|
+
-- (coord.housekeeping._ensure_archive_mirror) rather than by this
|
|
1993
|
+
-- script, and may not exist yet on a fresh database.
|
|
1994
|
+
CREATE INDEX IF NOT EXISTS idx_assignments_repo_issue
|
|
1995
|
+
ON assignments(repo_name, issue_number);
|
|
1996
|
+
CREATE INDEX IF NOT EXISTS idx_assignments_dispatched_at
|
|
1997
|
+
ON assignments(dispatched_at);
|
|
1964
1998
|
CREATE INDEX IF NOT EXISTS idx_merge_queue_state ON merge_queue(state);
|
|
1965
1999
|
CREATE INDEX IF NOT EXISTS idx_issue_context_issue
|
|
1966
2000
|
ON issue_context(repo_name, issue_number);
|
|
@@ -130,10 +130,37 @@ def _columns(conn: sqlite3.Connection, table: str) -> list[tuple[str, str]]:
|
|
|
130
130
|
return sql.table_columns(conn, table)
|
|
131
131
|
|
|
132
132
|
|
|
133
|
+
# #3470: index(es) to create once a given archive table's mirror exists,
|
|
134
|
+
# keyed by DESTINATION table name so `_ensure_archive_mirror`'s generic
|
|
135
|
+
# column-mirroring below stays generic across every archive table this
|
|
136
|
+
# module knows about — only `assignments_archive` needs these, for the
|
|
137
|
+
# `issue-cost` report's full-history scan
|
|
138
|
+
# (`coord.reports._default_issue_cost_source`, which groups every leg by
|
|
139
|
+
# `(repo_name, issue_number)` and orders by `dispatched_at`). Same two
|
|
140
|
+
# columns `coord/db.py`'s `_SCHEMA_SQL` already indexes on the LIVE
|
|
141
|
+
# `assignments` table — see that module's `_DB_SCHEMA_VERSION` bump comment
|
|
142
|
+
# for why the archive side can't just live there too: this table is created
|
|
143
|
+
# lazily, by this module, not at `_ensure_schema` time.
|
|
144
|
+
_ARCHIVE_INDEXES: dict[str, tuple[str, ...]] = {
|
|
145
|
+
_ASSIGNMENTS_ARCHIVE: (
|
|
146
|
+
"CREATE INDEX IF NOT EXISTS idx_assignments_archive_repo_issue "
|
|
147
|
+
"ON assignments_archive(repo_name, issue_number)",
|
|
148
|
+
"CREATE INDEX IF NOT EXISTS idx_assignments_archive_dispatched_at "
|
|
149
|
+
"ON assignments_archive(dispatched_at)",
|
|
150
|
+
),
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
|
|
133
154
|
def _ensure_archive_mirror(conn: sqlite3.Connection, src: str, dst: str) -> list[str]:
|
|
134
155
|
"""Create/extend *dst* so it has every column of *src* (no constraints — the
|
|
135
156
|
archive is dumb storage). Robust to future ``ALTER TABLE`` on *src*.
|
|
136
157
|
|
|
158
|
+
Also applies :data:`_ARCHIVE_INDEXES` for *dst*, if any — idempotent
|
|
159
|
+
(``CREATE INDEX IF NOT EXISTS``) and cheap, so this runs on every sweep
|
|
160
|
+
that touches *dst*, not just the one that creates it: an archive table
|
|
161
|
+
that already existed before #3470 shipped still converges on the next
|
|
162
|
+
sweep, and a fresh one is indexed from its very first row.
|
|
163
|
+
|
|
137
164
|
Returns the shared column-name list to use for the copy.
|
|
138
165
|
"""
|
|
139
166
|
src_cols = _columns(conn, src)
|
|
@@ -145,6 +172,8 @@ def _ensure_archive_mirror(conn: sqlite3.Connection, src: str, dst: str) -> list
|
|
|
145
172
|
for name, ctype in src_cols:
|
|
146
173
|
if name not in dst_existing:
|
|
147
174
|
sql.execute(conn, f'ALTER TABLE {dst} ADD COLUMN "{name}" {ctype}') # noqa: S608
|
|
175
|
+
for ddl in _ARCHIVE_INDEXES.get(dst, ()):
|
|
176
|
+
sql.execute(conn, ddl)
|
|
148
177
|
return [name for name, _ in src_cols]
|
|
149
178
|
|
|
150
179
|
|
|
@@ -3960,9 +3960,17 @@ def post_transition(transition: Transition, record: dict, entry: dict) -> None:
|
|
|
3960
3960
|
# same way, without routing it through the SEMANTIC tier-2
|
|
3961
3961
|
# escalation path — see `coord.reconcile.on_conflict_fix_done`'s
|
|
3962
3962
|
# `stale_rebase_mismatch` docstring for why that's a separate arm.
|
|
3963
|
+
# #3462: a patch-id mismatch alone doesn't distinguish a real
|
|
3964
|
+
# overlap from a branch whose content already landed on the target
|
|
3965
|
+
# through another change — check `ALREADY_UPSTREAM_MARKER` first
|
|
3966
|
+
# (mutually exclusive with the plain mismatch marker, so only
|
|
3967
|
+
# checked when semantic is False too) and route it to its own
|
|
3968
|
+
# `already_upstream` arm, which never escalates to the ordinary
|
|
3969
|
+
# conflict-fix path and never says "genuine content conflict".
|
|
3963
3970
|
parent_id = record.get("review_of_assignment_id")
|
|
3964
3971
|
if parent_id:
|
|
3965
3972
|
from coord.conflict_fix import ( # noqa: PLC0415
|
|
3973
|
+
detect_already_upstream,
|
|
3966
3974
|
detect_semantic_conflict,
|
|
3967
3975
|
detect_stale_rebase_mismatch,
|
|
3968
3976
|
)
|
|
@@ -3979,16 +3987,30 @@ def post_transition(transition: Transition, record: dict, entry: dict) -> None:
|
|
|
3979
3987
|
except Exception: # noqa: BLE001 — best-effort, never break notify
|
|
3980
3988
|
semantic = False
|
|
3981
3989
|
|
|
3990
|
+
# #3462: check the already-upstream marker BEFORE the plain
|
|
3991
|
+
# mismatch marker — they're mutually exclusive per dispatch, but
|
|
3992
|
+
# an already-upstream verdict must win the framing (superseded,
|
|
3993
|
+
# not "genuine conflict") whenever both would otherwise apply.
|
|
3994
|
+
already_upstream = False
|
|
3982
3995
|
stale_rebase_mismatch = False
|
|
3983
3996
|
if not semantic:
|
|
3984
3997
|
try:
|
|
3985
|
-
|
|
3998
|
+
already_upstream = detect_already_upstream(
|
|
3986
3999
|
log_path=log_path,
|
|
3987
4000
|
host=host,
|
|
3988
4001
|
assignment_id=transition.assignment_id,
|
|
3989
4002
|
)
|
|
3990
4003
|
except Exception: # noqa: BLE001
|
|
3991
|
-
|
|
4004
|
+
already_upstream = False
|
|
4005
|
+
if not already_upstream:
|
|
4006
|
+
try:
|
|
4007
|
+
stale_rebase_mismatch = detect_stale_rebase_mismatch(
|
|
4008
|
+
log_path=log_path,
|
|
4009
|
+
host=host,
|
|
4010
|
+
assignment_id=transition.assignment_id,
|
|
4011
|
+
)
|
|
4012
|
+
except Exception: # noqa: BLE001
|
|
4013
|
+
stale_rebase_mismatch = False
|
|
3992
4014
|
|
|
3993
4015
|
stuck_summary: str | None = None
|
|
3994
4016
|
board = None
|
|
@@ -4013,6 +4035,19 @@ def post_transition(transition: Transition, record: dict, entry: dict) -> None:
|
|
|
4013
4035
|
config = _load_config()
|
|
4014
4036
|
except Exception: # noqa: BLE001
|
|
4015
4037
|
board, config = None, None
|
|
4038
|
+
elif already_upstream:
|
|
4039
|
+
# #3462: no escalation dispatch happens for this verdict
|
|
4040
|
+
# (it's not a conflict), so board/config aren't strictly
|
|
4041
|
+
# needed — but grab the stuck summary the same way so
|
|
4042
|
+
# `on_conflict_fix_done`'s HUMAN_REQUIRED text is specific.
|
|
4043
|
+
progress = entry.get("progress") or {}
|
|
4044
|
+
stuck_summary = progress.get("stuck")
|
|
4045
|
+
if not stuck_summary and log_path:
|
|
4046
|
+
try:
|
|
4047
|
+
from coord.progress import parse_progress # noqa: PLC0415
|
|
4048
|
+
stuck_summary = parse_progress(log_path).stuck
|
|
4049
|
+
except Exception: # noqa: BLE001
|
|
4050
|
+
stuck_summary = None
|
|
4016
4051
|
elif stale_rebase_mismatch:
|
|
4017
4052
|
# #3444: board/config ARE needed here now — a stale-rebase
|
|
4018
4053
|
# mismatch escalates to the ORDINARY conflict-fix path
|
|
@@ -4042,8 +4077,11 @@ def post_transition(transition: Transition, record: dict, entry: dict) -> None:
|
|
|
4042
4077
|
parent_assignment_id=parent_id,
|
|
4043
4078
|
fix_assignment_id=transition.assignment_id,
|
|
4044
4079
|
machine_name=transition.machine_name,
|
|
4045
|
-
succeeded=not semantic
|
|
4080
|
+
succeeded=not semantic
|
|
4081
|
+
and not already_upstream
|
|
4082
|
+
and not stale_rebase_mismatch,
|
|
4046
4083
|
semantic=semantic,
|
|
4084
|
+
already_upstream=already_upstream,
|
|
4047
4085
|
stale_rebase_mismatch=stale_rebase_mismatch,
|
|
4048
4086
|
board=board,
|
|
4049
4087
|
config=config,
|