code-coordinator 0.5.527__tar.gz → 0.5.529__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.527 → code_coordinator-0.5.529}/PKG-INFO +1 -1
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/code_coordinator.egg-info/PKG-INFO +1 -1
- code_coordinator-0.5.529/code_coordinator.egg-info/scm_version.json +8 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/conflict_fix.py +174 -29
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/drive_queue.py +95 -9
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/notify.py +41 -3
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/reconcile.py +163 -33
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_conflict_fix.py +163 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_drive_queue.py +156 -5
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_notify.py +144 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_reconcile.py +173 -0
- code_coordinator-0.5.527/code_coordinator.egg-info/scm_version.json +0 -8
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/.claude/commands/board.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/.claude/commands/complete-session.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/.claude/commands/coordinator.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/.githooks/_lib.sh +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/.githooks/post-checkout +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/.githooks/post-commit +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/.githooks/post-merge +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/.github/workflows/auto-release.yml +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/.github/workflows/publish.yml +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/.github/workflows/test.yml +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/.gitignore +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/CLAUDE.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/GOAL.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/LICENSE +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/MANIFEST.in +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/README.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/code_coordinator.egg-info/SOURCES.txt +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/code_coordinator.egg-info/dependency_links.txt +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/code_coordinator.egg-info/entry_points.txt +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/code_coordinator.egg-info/requires.txt +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/code_coordinator.egg-info/scm_file_list.json +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/code_coordinator.egg-info/top_level.txt +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/__init__.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/_board_mapping.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/acceptance.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/acceptance_drivers.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/agent.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/agent_app.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/agent_update.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/agents/opencode/.gitignore +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/agents/opencode/agents/work.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/agents/opencode/routing.jsonc +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/approved_work.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/audit.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/auto_loop.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/backup.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/block_log.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/board_schema.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/board_service.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/board_wire.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/brain.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/branch_model.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/bug_intake.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/cargo_cache.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/ci_fix.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/ci_github.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/ci_gitlab.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/ci_store.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/claim.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/claude_setup_token.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/cli.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/client.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/codegen.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/__init__.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/_common.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/acceptance.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/agent_ops.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/audit.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/backup.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/chat.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/ci.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/codegen.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/dispatch.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/dispatch_workers.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/dr.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/drive.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/drive_queue.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/gate_a.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/gates.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/issues.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/lifecycle.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/machine.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/merge.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/milestone.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/plan_followup.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/plans.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/portal.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/pr.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/release.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/repo.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/report.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/review.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/scorecard.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/sessions.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/setup.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/status.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/store_migrate.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/terminal.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/test_gate.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/commands/tui.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/comments.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/config.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/config_reload.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/confirm_test.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/dao.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/dashboard/__init__.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/dashboard/fixture.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/dashboard/index.html +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/dashboard/server.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/dashboard/terminal.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/db.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/dead_end.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/decomposition_chat.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/README.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-backup.service +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-backup.timer +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-dr-verify.service +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-dr-verify.timer +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-failure-notify.service +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-fleet-watchdog.service +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-fleet-watchdog.timer +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy_manifest.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deploy_units.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deprecation_telemetry.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/deps.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/diagnose.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/dispatch.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/dispatch_liveness.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/dist_name.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/dr_promote.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/dr_verify.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/drive.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/drive_sessions_snapshot.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/drive_state.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/events.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/failure_class.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/failure_classifier.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/filelock.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/fleet_config_health.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/forge_availability.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/freshness.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/gate_a.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/gate_b.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/gate_snapshot.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/gates.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/gen_board_fixture.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/github_ops.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/github_throttle.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/goal.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/graph_health.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/__init__.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/aggregate.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/__init__.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/_ci_pin.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/agent_install.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/cargo_targets.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/claude_binary.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/config_drift.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/coord_tui_ci_pin.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/disk.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/fleet_board.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/fleet_deploy_lanes.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/fleet_phantom.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/fleet_unit_drift.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/graph.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/graphify_cli.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/index_lock.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/issues_sync_staleness.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/local_machine_identity.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/plan_usage.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/pr_churn.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/release_cordon.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/repo_state.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/spawned_coord.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/stalled_pipeline.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/timer_active.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/toolchain.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/unit_drift.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/unit_enablement.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/wedged_drive_queue.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/checks/worktrees.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/cli.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/context.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/fleet_snapshot.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/models.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/pypi.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/registry.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/render.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/health/units.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/hooks.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/housekeeping.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/interactive.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/invariant_alarms.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/issue_store.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/issues_sync_status.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/liveness_auditor.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/machine_fault.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/machine_metrics.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/machine_onboard.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/machine_pause.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/machine_stats.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/merge_queue.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/milestone_chat.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/milestone_dispatch.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/milestone_gate.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/milestone_order.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/mock_author.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/models.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/network.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/new_issue_chat.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/notifier/__init__.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/notifier/baseline.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/notifier/cli.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/notifier/collect.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/notifier/digest.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/notifier/models.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/notifier/predicate.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/notifier/service.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/notifier/store.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/notifier/transport.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/openapi.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/overlap_fence.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/overlap_predict.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/parentage.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/parentage_github.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/pipeline.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/plan_parser.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/plans.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/platform_paths.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/portal_bridge.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/portal_store.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/portal_sync.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/pr_body_lint.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/prereqs.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/progress.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/providers/__init__.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/providers/base.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/providers/claude.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/providers/claude_pty.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/providers/opencode.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/queue_diagnose.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/reconcile_tick.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/refine_chat.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/release_cordon.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/release_propagate.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/release_verify.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/release_window.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/repo_dormancy.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/repo_edit.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/repo_onboard.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/reports.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/rest_schema.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/restart_cmd.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/revalidate.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/review.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/scorecard.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/self_health.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/serve_app.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/skills/coord-dispatch-verbs/SKILL.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/skills/drive-queue-preflight/SKILL.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/skills/fleet-restart-safety/SKILL.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/skills/merge-stuck-triage/SKILL.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/skills/pipeline-limbo-triage/SKILL.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/skills/portal-followup/SKILL.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/skills/release-now/SKILL.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/skills/review-verdict-recovery/SKILL.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/skills/tui-quadraui-workflow/SKILL.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/skills/update-issue/SKILL.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/smoke.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/spend_ceiling.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/split_work.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/sql.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/stage_projection.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/state.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/store_migrate.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/store_parity.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/templates/deploy-cloudflare.node.yml +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/test_author.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/test_chat.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/test_orchestrator.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/test_report.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/tui_release.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/uat_checks.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/usage.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/usage_limits.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/usage_rollup.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coord/worker_events.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/coordinator.example.yml +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-backup.service +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-backup.timer +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-dr-verify.service +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-dr-verify.timer +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-failure-notify.service +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-failure-notify.sh +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-fleet-watchdog.service +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-fleet-watchdog.timer +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-web-dist-build.sh +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-web-rollback.sh +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/deploy/node-shim.sh +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/ADR_COORD_TUI_CI.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/ADR_COORD_WEB_ACCEPTANCE_SUITE.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/ADR_COORD_WEB_CI.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/ADR_COORD_WEB_DIST.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/ADR_PY_RUST_MIRRORS.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/AGENT_OPERATIONS.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/ARCHITECTURE.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/ARCH_SECURITY_GATES.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/COCKPIT.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/COST_DISCIPLINE.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/CROSS_PLATFORM.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/CUSTOMER_FACING_APPS.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/CUSTOMER_PORTAL.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/DATA_STORE_SELECTION.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/DISASTER_RECOVERY.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/DRIVE_QUEUE.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/EPHEMERAL_WORKERS.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/FORGE_MIGRATION.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/GRAPHIFY_SETUP.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/ISSUE_GUIDANCE.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/MAC_MINI.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/NOTIFIER.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/OPENCODE_VERIFICATION.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/OPERATING_GOTCHAS.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/OPERATOR_GUIDES.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/ORACLE_LOOP.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/PHONE_WEBAPP.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/PIPELINE_V2.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/PLATFORM_EVOLUTION.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/SECOND_BACKEND.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/STORE_SERVICE.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/TEST_FIRST_BUG_LANE.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/WEB_CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/WSL_WINDOWS_WORKER.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/mocks/web/README.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/mocks/web/_tokens.css +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/mocks/web/issue-detail.html +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/mocks/web/pipeline-narrow.html +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/docs/mocks/web/pipeline-wide.html +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/graphify-out/.gitignore +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/install-agent.sh +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/pyproject.toml +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/audit_review_verdict_overrides.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/azure-workers/bootstrap-shared.sh +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/azure-workers/build-worker-image.sh +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/azure-workers/coordinator-machine.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/azure-workers/dr-down.sh +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/azure-workers/dr-up.sh +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/azure-workers/epic-down.sh +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/azure-workers/epic-up.sh +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/azure-workers/preflight.sh +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/azure-workers/provision-server.sh +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/azure-workers/provision-worker.sh +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/azure-workers/tailnet-acl.hujson +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/azure-workers/throwaway-vm.sh +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/azure-workers/verify-github-token.sh +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/check_gh_argv_containment.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/codegen.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/coord-test-runner.sh +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/coord-tui-scaffold/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/coord-tui-scaffold/.github/workflows/cargo-test.yml +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/coord-tui-scaffold/.github/workflows/codegen-drift.yml +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/coord-tui-scaffold/CLAUDE.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/coord-venv-rollback.sh +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/drive-batch.sh +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/extract-coord-tui.sh +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/fleet_watchdog.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/gen_board_fixture.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/gen_mock_index.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/lib/provision-core.sh +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/next_release_tag.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/provision-machine.sh +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/run_tests_in_populated_home.sh +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/run_tests_without_gh.sh +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/setup-macmini.sh +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/smoke_437_interactive.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/verify-provision-noble.sh +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/verify_878_review_capture.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/verify_release_published.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/scripts/verify_release_wheel.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/setup.cfg +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/SMOKE_SET.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/__init__.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/acceptance/ms-37/conftest.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/acceptance/ms-37/contract.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/acceptance/ms-37/manifest.yml +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/acceptance/ms-51/contract.md +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/acceptance/ms-51/manifest.yml +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/acceptance/ms-51/tsconfig.json +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/backends.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/conftest.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/board-pipeline-basic.json +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/opencode_run_sample.jsonl +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/playwright/all_pass.json +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/playwright/global_setup_crash.json +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/playwright/mixed_fail.json +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/playwright/retry_then_pass.json +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/playwright/skip.json +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/playwright/truncated.json +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_acceptance.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_acceptance_drivers.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_api_error.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_app.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_branch_base.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_branch_capture.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_config_free_1712.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_deploy_units_endpoint.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_dirty_worktree.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_drive_queue_reconcile_2373.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_graph_self_heal.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_health_h3.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_idle_restart.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_push_failure.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_reap.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_repos_and_pull.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_restart_services_endpoint.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_skills_self_heal.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_startup_diagnostics.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_update.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_update_bluegreen.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_usage_limit.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_agent_zero_commit.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_ambient_home_isolation.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_approve_capability_reroute_3241.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_approve_dependency_busy_2804.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_approve_reject_plan.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_approve_usage_gate.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_approved_work_2532.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_approved_work_2996.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_assignment_already_recorded_daemon.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_audit_log.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_audit_outcome.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_audit_query.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_auto_loop.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_auto_release_publish_2035.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_backend_selection.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_backup.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_base_checkout_restore.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_block_log.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_board_cap_762.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_board_fixture.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_board_read_path.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_board_schema.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_board_service.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_board_state.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_board_wire.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_brain.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_branch_model.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_bug_intake.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_build_worker_image_env_update.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cargo_cache.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_check_gh_argv_containment.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_ci_acceptance_gate_1950.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_ci_fix.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_ci_github.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_ci_gitlab.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_ci_parity_2091.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_ci_store.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_claim.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_claude_md_budget.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_claude_setup_token.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_acceptance.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_assign.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_assign_interactive_remote.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_assign_provider.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_assign_repo_drift_2219.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_audit.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_chat_continue.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_ci.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_codegen.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_decide.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_diagnose_capability_rules.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_diagnose_config_provenance.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_diagnose_forge_availability.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_diagnose_graph.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_diagnose_self.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_diagnose_test_coverage.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_doctor.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_doctor_config_free_1801.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_doctor_store_backend_3084.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_drive.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_drive_queue.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_escalate.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_fix_headless_review.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_gate_a.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_install_drift.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_install_skills.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_issue_comment.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_issue_create_label.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_issue_reopen.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_issue_view_list.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_issues.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_merge.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_milestone_assign.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_milestone_capture.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_milestone_chat_add_child.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_milestone_gate_b.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_milestone_gate_c.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_milestone_order.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_milestone_ship.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_network.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_new_issue_chat.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_plans.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_portal.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_pr.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_pull_artifact.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_queue.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_reattach_sessions.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_refine_board.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_release_preflight.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_release_propagate.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_release_window.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_repo_2220.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_review_test_author_tracking_epic_2639.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_scorecard.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_serve_store_backend_3084.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_set_review_findings.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_status_advisory_terminal.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_status_contested_tag.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_status_invariant_alarms.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_status_machine_fault.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_status_merge_queue.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_status_provider.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_status_retried_3340.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_status_review_finalizing.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_status_supervisor_3366.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_status_test_failed_tag.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_status_usage_limit.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_sync_comments_873.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_test_plan.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_track.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_tui_update.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cli_wait.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_client.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_client_base_install.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_client_config_cache_atomic_3052.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_client_resource_migration_1946.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_commands_common.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_comments.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_completion_summary.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_config.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_config_acceptance.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_config_audit.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_config_drift_check.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_config_effective.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_config_pricing.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_config_usage_gate.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_confirm_test.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_conflict_fix_semantic.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_coord_log_daemon_fallback_2547.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_coord_test.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_coord_test_runner_acceptance_toolchain_2936.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_coord_test_runner_baseline.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_coord_test_runner_populated_home.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_coord_test_runner_routing.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_coord_test_runner_toolchain.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_coord_uat.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_coord_web_sse_restart_live.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_coordinator_machine.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_cross_platform_imports.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_dao.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_dashboard.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_dashboard_api.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_dashboard_fixture.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_dashboard_server.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_dashboard_terminal.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_dashboard_terminal_live.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_db.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_dead_end.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_decomposition_chat.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_deploy_coord_db_backup.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_deploy_coord_web_dist.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_deploy_coord_web_rollback.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_deploy_db_backup_unit.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_deploy_drive_queue_unit.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_deploy_failure_notify_unit.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_deploy_manifest.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_deploy_notify_unit.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_deploy_units_lane.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_deploy_web_unit.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_deprecation_telemetry.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_deps.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_diagnose.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_dispatch.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_dispatch_liveness.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_dispatch_target_validation.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_dispatch_workers.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_dist_name.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_done_housekeeping.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_dr_azure_scripts.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_dr_promote.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_dr_verify.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_drive.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_drive_machine_fault.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_drive_queue_blocked_rendering.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_drive_queue_launch_argv.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_drive_queue_max_parallel_config.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_drive_queue_max_parallel_per_repo_config.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_drive_queue_roll_pending.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_drive_queue_self_cordon_escalation.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_drive_sessions_snapshot.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_drive_state.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_drive_tmux.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_epic_up_capability_detection.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_epic_up_image_provenance.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_errors.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_events.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_failure_class.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_failure_classifier.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_filelock.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_fix_escalation_classifier.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_fix_of_force_override.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_fleet_config_health.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_fleet_health_probes.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_fleet_health_snapshot.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_fleet_watchdog.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_forge_availability.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_freshness.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_gate_a.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_gate_b.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_gate_snapshot_staleness.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_gates.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_gather_fleet_tmux_sessions.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_gen_mock_index.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_generated_rust_fixture.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_generated_rust_requests.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_generated_types_fixture.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_github_ops.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_github_throttle.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_goal.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_graph_health.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_graph_selfheal_absent_2237.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_handoff.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_checks.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_cli.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_cli_graph.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_config.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_context.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_coord_tui_ci_pin.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_fix.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_incident_regression.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_issues_sync_staleness.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_pr_churn.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_pypi.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_registry.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_release_cordon_probe.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_timer_active.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_toolchain.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_unit_drift.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_unit_enablement.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_health_wedged_drive_queue.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_hooks.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_housekeeping.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_human_attended_437.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_init.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_install_agent_venv_2911.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_integration.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_interactive.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_interactive_briefing_echo.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_interactive_pane_log_2541.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_interactive_prefill_state.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_interactive_session_relaunch.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_interactive_test_verdict_backstop.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_interactive_token_attribution.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_interactive_worktree.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_invariant_alarms.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_issue_store_seam.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_issues_sync_status.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_liveness_auditor.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_liveness_notify.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_lock_contention_ratchet.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_machine_fault.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_machine_metrics.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_machine_onboard.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_machine_pause.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_machine_stats.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_merge_queue.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_merge_verify.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_milestone_chat.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_milestone_gate.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_milestone_order.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_milestone_seam.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_mock_author.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_model_tiering.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_models.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_models_config_labels.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_needs_attention.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_network.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_new_issue_chat.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_next_release_tag.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_node_shim.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_notifier_baseline.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_notifier_cli.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_notifier_collect.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_notifier_config.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_notifier_drive_seam.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_notifier_isolation.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_notifier_predicate.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_notifier_quiet_hours.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_notifier_service.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_notify_drain.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_openapi.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_operational_defaults.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_overlap_fence.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_overlap_predict.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_packaged_deploy_units.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_parentage.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_paste_landed.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_phantom_heal_venv_independence_2570.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_pipeline.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_plan_followup_approve_plan_command.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_plan_followup_pr_command.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_plan_followup_review_command.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_plan_only.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_plan_parser.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_platform_paths.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_portal_bridge.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_portal_config.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_portal_store.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_portal_sync.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_pr_body_lint.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_prereqs.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_production_db_guard.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_progress.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_provider_seam.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_providers.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_providers_config_labels.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_providers_pty.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_provision_core.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_provision_machine.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_py_rust_mirror_inventory.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_quiet_hours.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_quiet_hours_store_2146.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_reap_merged_sessions.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_reap_stale_interactive_tick.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_reconcile_branch.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_reconcile_completions.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_reconcile_late_agent_reports_2547.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_reconcile_merges.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_reconcile_no_agent_record.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_reconcile_tick.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_reconcile_usage_limit_done.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_refine_chat.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_release_cordon_2101.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_release_cordon_deadlock_2240.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_release_cordon_drain_stall_3336.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_release_cordon_stuck_2490.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_release_propagate.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_release_propagate_threshold.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_release_roll_between_legs_2854.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_release_roll_window_handoff.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_release_unified_1242.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_release_verify.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_release_window.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_remote_auto_prune.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_remote_interactive_reaper.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_repo_add.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_repo_dormancy.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_repo_edit_2220.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_repo_graph_fleet_2237.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_repo_max_parallel_3423.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_repo_onboard_2220.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_report_result_push.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_reports.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_restart_cmd.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_retry.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_retry_advisory_1606.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_retry_escalation_classify_3360.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_retry_type_1636.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_revalidate.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_review.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_review_end_review_without_verdict.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_review_parse_failure_diagnostic.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_review_reaffirm.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_review_state.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_review_verdict_backstop.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_review_verdict_override_audit.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_review_verdict_relay.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_review_zero_commits.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_scoped_review_wiring.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_scorecard.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_self_health.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_serve.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_serve_app.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_serve_app_board_trim.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_serve_rest_routes.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_session.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_slice_issue_attribution.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_smoke.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_smoke_fanout_manifest_3333.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_smoke_live_checkout_restore.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_smoke_workflow.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_spend_ceiling.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_spend_ceiling_coordinator.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_split.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_split_work.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_sql_dialect.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_sqlite_connect_ratchet.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_stage_projection.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_stale_busy_reviewer_697.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_stalled_pipeline.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_state.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_state_review_findings_daemon.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_status_fleet_footer.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_stop_1567.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_store_contract.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_store_migrate.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_stuck.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_stuck_test_state_watchdog_2803.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_terminal_command.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_test_author.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_test_chat.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_test_orchestrator.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_test_report.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_test_verdict_parsing.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_test_verdict_transcript_floor.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_text_io_encoding_audit.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_thin_client_board_audit.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_thin_client_config_load_1080.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_thin_client_daemon_routing_906.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_throwaway_vm.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_tmux_host.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_tmux_session.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_transcript_floor.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_uat_checks.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_usage.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_usage_limits.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_usage_rollup.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_venv_live_install_2121.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_version_single_source.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_watch.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_worker_env_venv_isolation.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_worker_events.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_worker_image_pin_sync.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_worker_safety.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_worker_test_scoping.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_worktree.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_worktree_rmtree_chokepoint.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/test_write_parity.py +0 -0
- {code_coordinator-0.5.527 → code_coordinator-0.5.529}/tests/write_parity.py +0 -0
|
@@ -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
|
|
@@ -6462,6 +6462,29 @@ def plan_tick(
|
|
|
6462
6462
|
# carries fresh, right below.
|
|
6463
6463
|
effective_last_reason: dict[str, str] = {e.key: e.last_reason for e in ordered}
|
|
6464
6464
|
|
|
6465
|
+
def _refresh_only(reason: str, current: str) -> dict[str, Any]:
|
|
6466
|
+
"""``{}`` unless *reason* is non-empty and differs from *current*.
|
|
6467
|
+
|
|
6468
|
+
#3461: a `counted=False` deferral must never bump `deferrals` or feed
|
|
6469
|
+
the queue-level alert (see `Deferral`'s own docstring on that flag) —
|
|
6470
|
+
but the descriptive TEXT still has to keep up with reality when the
|
|
6471
|
+
walk re-derives it for an entry that isn't actually competing for a
|
|
6472
|
+
slot this tick (the queue is at capacity, or this entry sits behind
|
|
6473
|
+
an already-chosen launch in the report-only tail). Writing ONLY on a
|
|
6474
|
+
real change means `reason_at` — stamped by
|
|
6475
|
+
`coord.state._update_drive_queue_entry_local` whenever `last_reason`
|
|
6476
|
+
is present in the same update, #2133 — only moves when the text
|
|
6477
|
+
actually does, so the `(Nm ago)` age it powers keeps meaning "how
|
|
6478
|
+
long this has been true" rather than "how long since some tick
|
|
6479
|
+
happened to re-walk this row". An empty *reason* (the fully-eligible,
|
|
6480
|
+
nothing-to-report shape `_Verdict(True)` returns) writes nothing —
|
|
6481
|
+
overwriting a real reason with blank text would be a regression, not
|
|
6482
|
+
a refresh.
|
|
6483
|
+
"""
|
|
6484
|
+
if not reason or reason == current:
|
|
6485
|
+
return {}
|
|
6486
|
+
return {"last_reason": reason}
|
|
6487
|
+
|
|
6465
6488
|
reconciles: list[Reconcile] = []
|
|
6466
6489
|
blocked: list[Blocked] = []
|
|
6467
6490
|
deferrals: list[Deferral] = []
|
|
@@ -7102,11 +7125,41 @@ def plan_tick(
|
|
|
7102
7125
|
)
|
|
7103
7126
|
|
|
7104
7127
|
if capacity - occupied <= 0:
|
|
7128
|
+
# #3461: at capacity is the NORMAL steady state of a deep queue, so
|
|
7129
|
+
# this early return can fire for many ticks in a row. Before this, it
|
|
7130
|
+
# produced no deferral at all, which meant a `waiting` entry's
|
|
7131
|
+
# `last_reason` — e.g. "waiting on X (queued, blocked, ...)" — never
|
|
7132
|
+
# got a chance to notice X had since flipped back to `waiting`, or
|
|
7133
|
+
# landed. `_resolve_prereqs` is cheap (no I/O, just the cached board
|
|
7134
|
+
# + this tick's `states`), so it still runs for every `waiting` entry
|
|
7135
|
+
# here; only the TEXT is refreshed (`_refresh_only` below is a no-op
|
|
7136
|
+
# unless it actually changed) and only via `counted=False` — no
|
|
7137
|
+
# attempt is spent, `deferrals` does not move, and the queue-level
|
|
7138
|
+
# alert (computed only in the launch walk below) is untouched, same
|
|
7139
|
+
# as every other early return in this function.
|
|
7140
|
+
for entry in ordered:
|
|
7141
|
+
if states.get(entry.key) != STATE_WAITING:
|
|
7142
|
+
continue
|
|
7143
|
+
verdict = _resolve_prereqs(
|
|
7144
|
+
entry,
|
|
7145
|
+
board,
|
|
7146
|
+
states,
|
|
7147
|
+
cycle_keys,
|
|
7148
|
+
held_gates,
|
|
7149
|
+
live_prereq_terminal,
|
|
7150
|
+
effective_last_reason,
|
|
7151
|
+
)
|
|
7152
|
+
updates = _refresh_only(verdict.reason, entry.last_reason)
|
|
7153
|
+
if not updates:
|
|
7154
|
+
continue
|
|
7155
|
+
deferrals.append(
|
|
7156
|
+
Deferral(entry.key, verdict.reason, counted=False, updates=updates)
|
|
7157
|
+
)
|
|
7105
7158
|
return TickPlan(
|
|
7106
7159
|
**plan_base,
|
|
7107
7160
|
reconciles=tuple(reconciles),
|
|
7108
7161
|
blocked=tuple(blocked),
|
|
7109
|
-
deferrals=(),
|
|
7162
|
+
deferrals=tuple(deferrals),
|
|
7110
7163
|
alert=None,
|
|
7111
7164
|
launch=None,
|
|
7112
7165
|
)
|
|
@@ -7237,17 +7290,35 @@ def plan_tick(
|
|
|
7237
7290
|
for entry in waiting:
|
|
7238
7291
|
if launch is not None:
|
|
7239
7292
|
# Report-only pass over the tail of the queue. The launch above
|
|
7240
|
-
# already won this tick, so
|
|
7241
|
-
#
|
|
7242
|
-
#
|
|
7293
|
+
# already won this tick, so `counted` stays `False` and neither
|
|
7294
|
+
# `deferrals` nor the queue-level alert moves for anything found
|
|
7295
|
+
# here — that part is unchanged. #3461: the descriptive TEXT is
|
|
7296
|
+
# no longer left frozen just because this entry never got to
|
|
7297
|
+
# compete for a slot — `_refresh_only` (defined near the top of
|
|
7298
|
+
# this function) still folds a changed reading into `updates` so
|
|
7299
|
+
# `--dry-run` AND a real tick both keep `last_reason` current for
|
|
7300
|
+
# every entry the walk reaches, not only the one that launched.
|
|
7243
7301
|
cooldown = _cooldown_reason(entry)
|
|
7244
7302
|
if cooldown:
|
|
7245
|
-
deferrals.append(
|
|
7303
|
+
deferrals.append(
|
|
7304
|
+
Deferral(
|
|
7305
|
+
entry.key,
|
|
7306
|
+
cooldown,
|
|
7307
|
+
counted=False,
|
|
7308
|
+
updates=_refresh_only(cooldown, entry.last_reason),
|
|
7309
|
+
)
|
|
7310
|
+
)
|
|
7246
7311
|
continue
|
|
7247
7312
|
backoff = _backoff_reason(entry)
|
|
7248
7313
|
if backoff:
|
|
7249
7314
|
deferrals.append(
|
|
7250
|
-
Deferral(
|
|
7315
|
+
Deferral(
|
|
7316
|
+
entry.key,
|
|
7317
|
+
backoff,
|
|
7318
|
+
counted=False,
|
|
7319
|
+
backing_off=True,
|
|
7320
|
+
updates=_refresh_only(backoff, entry.last_reason),
|
|
7321
|
+
)
|
|
7251
7322
|
)
|
|
7252
7323
|
continue
|
|
7253
7324
|
verdict = _resolve_prereqs(
|
|
@@ -7261,20 +7332,35 @@ def plan_tick(
|
|
|
7261
7332
|
)
|
|
7262
7333
|
if not verdict.satisfied:
|
|
7263
7334
|
deferrals.append(
|
|
7264
|
-
Deferral(
|
|
7335
|
+
Deferral(
|
|
7336
|
+
entry.key,
|
|
7337
|
+
verdict.reason,
|
|
7338
|
+
counted=False,
|
|
7339
|
+
updates=_refresh_only(verdict.reason, entry.last_reason),
|
|
7340
|
+
)
|
|
7265
7341
|
)
|
|
7266
7342
|
continue
|
|
7267
7343
|
cordoned = _cordon_reason(entry)
|
|
7268
7344
|
if cordoned:
|
|
7269
7345
|
deferrals.append(
|
|
7270
|
-
Deferral(
|
|
7346
|
+
Deferral(
|
|
7347
|
+
entry.key,
|
|
7348
|
+
cordoned,
|
|
7349
|
+
counted=False,
|
|
7350
|
+
cordoned=True,
|
|
7351
|
+
updates=_refresh_only(cordoned, entry.last_reason),
|
|
7352
|
+
)
|
|
7271
7353
|
)
|
|
7272
7354
|
continue
|
|
7273
7355
|
repo_limit = _repo_limit_reason(entry)
|
|
7274
7356
|
if repo_limit:
|
|
7275
7357
|
deferrals.append(
|
|
7276
7358
|
Deferral(
|
|
7277
|
-
entry.key,
|
|
7359
|
+
entry.key,
|
|
7360
|
+
repo_limit,
|
|
7361
|
+
counted=False,
|
|
7362
|
+
repo_limited=True,
|
|
7363
|
+
updates=_refresh_only(repo_limit, entry.last_reason),
|
|
7278
7364
|
)
|
|
7279
7365
|
)
|
|
7280
7366
|
continue
|
|
@@ -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,
|