code-coordinator 0.5.524__tar.gz → 0.5.525__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.524 → code_coordinator-0.5.525}/PKG-INFO +1 -1
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/code_coordinator.egg-info/PKG-INFO +1 -1
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/code_coordinator.egg-info/scm_version.json +2 -2
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/ci_fix.py +85 -1
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/ci_github.py +97 -17
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_ci_fix.py +179 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/.claude/commands/board.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/.claude/commands/complete-session.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/.claude/commands/coordinator.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/.githooks/_lib.sh +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/.githooks/post-checkout +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/.githooks/post-commit +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/.githooks/post-merge +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/.github/workflows/auto-release.yml +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/.github/workflows/publish.yml +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/.github/workflows/test.yml +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/.gitignore +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/CLAUDE.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/GOAL.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/LICENSE +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/MANIFEST.in +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/README.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/code_coordinator.egg-info/SOURCES.txt +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/code_coordinator.egg-info/dependency_links.txt +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/code_coordinator.egg-info/entry_points.txt +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/code_coordinator.egg-info/requires.txt +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/code_coordinator.egg-info/scm_file_list.json +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/code_coordinator.egg-info/top_level.txt +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/__init__.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/_board_mapping.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/acceptance.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/acceptance_drivers.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/agent.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/agent_app.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/agent_update.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/agents/opencode/.gitignore +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/agents/opencode/agents/work.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/agents/opencode/routing.jsonc +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/approved_work.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/audit.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/auto_loop.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/backup.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/block_log.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/board_schema.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/board_service.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/board_wire.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/brain.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/branch_model.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/bug_intake.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/cargo_cache.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/ci_gitlab.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/ci_store.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/claim.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/claude_setup_token.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/cli.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/client.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/codegen.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/__init__.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/_common.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/acceptance.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/agent_ops.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/audit.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/backup.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/chat.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/ci.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/codegen.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/dispatch.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/dispatch_workers.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/dr.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/drive.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/drive_queue.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/gate_a.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/gates.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/issues.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/lifecycle.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/machine.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/merge.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/milestone.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/plan_followup.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/plans.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/portal.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/pr.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/release.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/repo.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/report.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/review.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/scorecard.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/sessions.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/setup.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/status.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/store_migrate.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/terminal.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/test_gate.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/commands/tui.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/comments.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/config.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/config_reload.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/confirm_test.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/conflict_fix.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/dao.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/dashboard/__init__.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/dashboard/fixture.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/dashboard/index.html +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/dashboard/server.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/dashboard/terminal.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/db.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/dead_end.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/decomposition_chat.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/deploy/README.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/deploy/coord-backup.service +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/deploy/coord-backup.timer +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/deploy/coord-dr-verify.service +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/deploy/coord-dr-verify.timer +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/deploy/coord-failure-notify.service +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/deploy/coord-fleet-watchdog.service +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/deploy/coord-fleet-watchdog.timer +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/deploy_manifest.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/deploy_units.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/deprecation_telemetry.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/deps.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/diagnose.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/dispatch.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/dispatch_liveness.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/dist_name.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/dr_promote.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/dr_verify.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/drive.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/drive_queue.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/drive_sessions_snapshot.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/drive_state.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/events.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/failure_class.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/failure_classifier.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/filelock.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/fleet_config_health.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/forge_availability.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/freshness.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/gate_a.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/gate_b.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/gate_snapshot.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/gates.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/gen_board_fixture.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/github_ops.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/github_throttle.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/goal.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/graph_health.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/__init__.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/aggregate.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/checks/__init__.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/checks/_ci_pin.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/checks/agent_install.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/checks/cargo_targets.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/checks/claude_binary.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/checks/config_drift.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/checks/coord_tui_ci_pin.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/checks/coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/checks/deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/checks/disk.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/checks/fleet_board.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/checks/fleet_deploy_lanes.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/checks/fleet_phantom.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/checks/fleet_unit_drift.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/checks/graph.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/checks/graphify_cli.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/checks/index_lock.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/checks/issues_sync_staleness.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/checks/local_machine_identity.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/checks/plan_usage.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/checks/pr_churn.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/checks/release_cordon.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/checks/repo_state.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/checks/spawned_coord.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/checks/stalled_pipeline.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/checks/timer_active.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/checks/toolchain.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/checks/unit_drift.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/checks/unit_enablement.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/checks/wedged_drive_queue.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/checks/worktrees.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/cli.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/context.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/fleet_snapshot.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/models.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/pypi.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/registry.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/render.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/health/units.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/hooks.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/housekeeping.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/interactive.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/invariant_alarms.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/issue_store.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/issues_sync_status.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/liveness_auditor.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/machine_fault.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/machine_metrics.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/machine_onboard.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/machine_pause.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/machine_stats.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/merge_queue.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/milestone_chat.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/milestone_dispatch.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/milestone_gate.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/milestone_order.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/mock_author.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/models.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/network.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/new_issue_chat.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/notifier/__init__.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/notifier/baseline.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/notifier/cli.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/notifier/collect.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/notifier/digest.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/notifier/models.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/notifier/predicate.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/notifier/service.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/notifier/store.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/notifier/transport.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/notify.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/openapi.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/overlap_fence.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/overlap_predict.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/parentage.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/parentage_github.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/pipeline.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/plan_parser.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/plans.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/platform_paths.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/portal_bridge.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/portal_store.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/portal_sync.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/pr_body_lint.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/prereqs.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/progress.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/providers/__init__.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/providers/base.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/providers/claude.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/providers/claude_pty.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/providers/opencode.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/queue_diagnose.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/reconcile.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/reconcile_tick.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/refine_chat.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/release_cordon.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/release_propagate.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/release_verify.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/release_window.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/repo_dormancy.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/repo_edit.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/repo_onboard.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/reports.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/rest_schema.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/restart_cmd.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/revalidate.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/review.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/scorecard.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/self_health.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/serve_app.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/skills/coord-dispatch-verbs/SKILL.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/skills/drive-queue-preflight/SKILL.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/skills/fleet-restart-safety/SKILL.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/skills/merge-stuck-triage/SKILL.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/skills/pipeline-limbo-triage/SKILL.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/skills/portal-followup/SKILL.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/skills/release-now/SKILL.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/skills/review-verdict-recovery/SKILL.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/skills/tui-quadraui-workflow/SKILL.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/skills/update-issue/SKILL.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/smoke.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/spend_ceiling.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/split_work.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/sql.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/stage_projection.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/state.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/store_migrate.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/store_parity.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/templates/deploy-cloudflare.node.yml +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/test_author.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/test_chat.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/test_orchestrator.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/test_report.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/tui_release.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/uat_checks.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/usage.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/usage_limits.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/usage_rollup.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coord/worker_events.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/coordinator.example.yml +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/deploy/coord-backup.service +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/deploy/coord-backup.timer +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/deploy/coord-dr-verify.service +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/deploy/coord-dr-verify.timer +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/deploy/coord-failure-notify.service +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/deploy/coord-failure-notify.sh +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/deploy/coord-fleet-watchdog.service +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/deploy/coord-fleet-watchdog.timer +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/deploy/coord-web-dist-build.sh +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/deploy/coord-web-rollback.sh +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/deploy/node-shim.sh +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/ADR_COORD_TUI_CI.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/ADR_COORD_WEB_ACCEPTANCE_SUITE.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/ADR_COORD_WEB_CI.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/ADR_COORD_WEB_DIST.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/ADR_PY_RUST_MIRRORS.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/AGENT_OPERATIONS.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/ARCHITECTURE.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/ARCH_SECURITY_GATES.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/COCKPIT.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/COST_DISCIPLINE.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/CROSS_PLATFORM.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/CUSTOMER_FACING_APPS.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/CUSTOMER_PORTAL.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/DATA_STORE_SELECTION.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/DISASTER_RECOVERY.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/DRIVE_QUEUE.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/EPHEMERAL_WORKERS.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/FORGE_MIGRATION.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/GRAPHIFY_SETUP.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/ISSUE_GUIDANCE.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/MAC_MINI.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/NOTIFIER.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/OPENCODE_VERIFICATION.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/OPERATING_GOTCHAS.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/OPERATOR_GUIDES.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/ORACLE_LOOP.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/PHONE_WEBAPP.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/PIPELINE_V2.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/PLATFORM_EVOLUTION.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/SECOND_BACKEND.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/STORE_SERVICE.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/TEST_FIRST_BUG_LANE.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/WEB_CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/WSL_WINDOWS_WORKER.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/mocks/web/README.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/mocks/web/_tokens.css +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/mocks/web/issue-detail.html +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/mocks/web/pipeline-narrow.html +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/docs/mocks/web/pipeline-wide.html +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/graphify-out/.gitignore +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/install-agent.sh +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/pyproject.toml +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/audit_review_verdict_overrides.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/azure-workers/bootstrap-shared.sh +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/azure-workers/build-worker-image.sh +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/azure-workers/coordinator-machine.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/azure-workers/dr-down.sh +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/azure-workers/dr-up.sh +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/azure-workers/epic-down.sh +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/azure-workers/epic-up.sh +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/azure-workers/preflight.sh +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/azure-workers/provision-server.sh +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/azure-workers/provision-worker.sh +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/azure-workers/tailnet-acl.hujson +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/azure-workers/throwaway-vm.sh +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/azure-workers/verify-github-token.sh +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/check_gh_argv_containment.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/codegen.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/coord-test-runner.sh +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/coord-tui-scaffold/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/coord-tui-scaffold/.github/workflows/cargo-test.yml +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/coord-tui-scaffold/.github/workflows/codegen-drift.yml +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/coord-tui-scaffold/CLAUDE.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/coord-venv-rollback.sh +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/drive-batch.sh +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/extract-coord-tui.sh +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/fleet_watchdog.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/gen_board_fixture.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/gen_mock_index.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/lib/provision-core.sh +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/next_release_tag.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/provision-machine.sh +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/run_tests_in_populated_home.sh +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/run_tests_without_gh.sh +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/setup-macmini.sh +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/smoke_437_interactive.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/verify-provision-noble.sh +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/verify_878_review_capture.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/verify_release_published.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/scripts/verify_release_wheel.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/setup.cfg +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/SMOKE_SET.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/__init__.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/acceptance/ms-37/conftest.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/acceptance/ms-37/contract.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/acceptance/ms-37/manifest.yml +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/acceptance/ms-51/contract.md +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/acceptance/ms-51/manifest.yml +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/acceptance/ms-51/tsconfig.json +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/backends.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/conftest.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/fixtures/board-pipeline-basic.json +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/fixtures/opencode_run_sample.jsonl +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/fixtures/playwright/all_pass.json +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/fixtures/playwright/global_setup_crash.json +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/fixtures/playwright/mixed_fail.json +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/fixtures/playwright/retry_then_pass.json +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/fixtures/playwright/skip.json +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/fixtures/playwright/truncated.json +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_acceptance.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_acceptance_drivers.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_agent.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_agent_api_error.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_agent_app.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_agent_branch_base.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_agent_branch_capture.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_agent_config_free_1712.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_agent_deploy_units_endpoint.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_agent_dirty_worktree.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_agent_drive_queue_reconcile_2373.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_agent_graph_self_heal.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_agent_health_h3.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_agent_idle_restart.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_agent_push_failure.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_agent_reap.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_agent_repos_and_pull.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_agent_restart_services_endpoint.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_agent_skills_self_heal.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_agent_startup_diagnostics.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_agent_update.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_agent_update_bluegreen.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_agent_usage_limit.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_agent_zero_commit.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_ambient_home_isolation.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_approve_capability_reroute_3241.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_approve_dependency_busy_2804.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_approve_reject_plan.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_approve_usage_gate.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_approved_work_2532.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_approved_work_2996.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_assignment_already_recorded_daemon.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_audit_log.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_audit_outcome.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_audit_query.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_auto_loop.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_auto_release_publish_2035.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_backend_selection.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_backup.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_base_checkout_restore.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_block_log.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_board_cap_762.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_board_fixture.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_board_read_path.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_board_schema.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_board_service.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_board_state.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_board_wire.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_brain.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_branch_model.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_bug_intake.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_build_worker_image_env_update.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cargo_cache.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_check_gh_argv_containment.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_ci_acceptance_gate_1950.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_ci_github.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_ci_gitlab.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_ci_parity_2091.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_ci_store.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_claim.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_claude_md_budget.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_claude_setup_token.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_acceptance.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_assign.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_assign_interactive_remote.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_assign_provider.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_assign_repo_drift_2219.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_audit.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_chat_continue.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_ci.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_codegen.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_decide.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_diagnose_capability_rules.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_diagnose_config_provenance.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_diagnose_forge_availability.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_diagnose_graph.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_diagnose_self.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_diagnose_test_coverage.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_doctor.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_doctor_config_free_1801.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_doctor_store_backend_3084.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_drive.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_drive_queue.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_escalate.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_fix_headless_review.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_gate_a.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_install_drift.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_install_skills.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_issue_comment.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_issue_create_label.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_issue_reopen.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_issue_view_list.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_issues.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_merge.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_milestone_assign.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_milestone_capture.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_milestone_chat_add_child.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_milestone_gate_b.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_milestone_gate_c.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_milestone_order.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_milestone_ship.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_network.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_new_issue_chat.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_plans.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_portal.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_pr.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_pull_artifact.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_queue.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_reattach_sessions.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_refine_board.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_release_preflight.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_release_propagate.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_release_window.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_repo_2220.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_review_test_author_tracking_epic_2639.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_scorecard.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_serve_store_backend_3084.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_set_review_findings.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_status_advisory_terminal.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_status_contested_tag.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_status_invariant_alarms.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_status_machine_fault.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_status_merge_queue.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_status_provider.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_status_retried_3340.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_status_review_finalizing.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_status_supervisor_3366.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_status_test_failed_tag.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_status_usage_limit.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_sync_comments_873.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_test_plan.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_track.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_tui_update.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cli_wait.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_client.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_client_base_install.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_client_config_cache_atomic_3052.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_client_resource_migration_1946.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_commands_common.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_comments.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_completion_summary.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_config.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_config_acceptance.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_config_audit.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_config_drift_check.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_config_effective.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_config_pricing.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_config_usage_gate.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_confirm_test.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_conflict_fix.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_conflict_fix_semantic.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_coord_log_daemon_fallback_2547.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_coord_test.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_coord_test_runner_acceptance_toolchain_2936.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_coord_test_runner_baseline.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_coord_test_runner_populated_home.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_coord_test_runner_routing.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_coord_test_runner_toolchain.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_coord_uat.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_coord_web_sse_restart_live.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_coordinator_machine.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_cross_platform_imports.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_dao.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_dashboard.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_dashboard_api.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_dashboard_fixture.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_dashboard_server.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_dashboard_terminal.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_dashboard_terminal_live.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_db.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_dead_end.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_decomposition_chat.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_deploy_coord_db_backup.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_deploy_coord_web_dist.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_deploy_coord_web_rollback.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_deploy_db_backup_unit.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_deploy_drive_queue_unit.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_deploy_failure_notify_unit.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_deploy_manifest.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_deploy_notify_unit.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_deploy_units_lane.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_deploy_web_unit.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_deprecation_telemetry.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_deps.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_diagnose.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_dispatch.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_dispatch_liveness.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_dispatch_target_validation.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_dispatch_workers.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_dist_name.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_done_housekeeping.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_dr_azure_scripts.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_dr_promote.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_dr_verify.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_drive.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_drive_machine_fault.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_drive_queue.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_drive_queue_blocked_rendering.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_drive_queue_launch_argv.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_drive_queue_max_parallel_config.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_drive_queue_max_parallel_per_repo_config.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_drive_queue_roll_pending.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_drive_queue_self_cordon_escalation.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_drive_sessions_snapshot.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_drive_state.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_drive_tmux.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_epic_up_capability_detection.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_epic_up_image_provenance.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_errors.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_events.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_failure_class.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_failure_classifier.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_filelock.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_fix_escalation_classifier.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_fix_of_force_override.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_fleet_config_health.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_fleet_health_probes.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_fleet_health_snapshot.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_fleet_watchdog.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_forge_availability.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_freshness.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_gate_a.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_gate_b.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_gate_snapshot_staleness.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_gates.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_gather_fleet_tmux_sessions.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_gen_mock_index.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_generated_rust_fixture.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_generated_rust_requests.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_generated_types_fixture.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_github_ops.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_github_throttle.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_goal.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_graph_health.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_graph_selfheal_absent_2237.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_handoff.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_health_checks.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_health_cli.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_health_cli_graph.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_health_config.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_health_context.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_health_coord_tui_ci_pin.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_health_coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_health_deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_health_fix.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_health_incident_regression.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_health_issues_sync_staleness.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_health_pr_churn.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_health_pypi.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_health_registry.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_health_release_cordon_probe.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_health_timer_active.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_health_toolchain.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_health_unit_drift.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_health_unit_enablement.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_health_wedged_drive_queue.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_hooks.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_housekeeping.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_human_attended_437.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_init.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_install_agent_venv_2911.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_integration.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_interactive.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_interactive_briefing_echo.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_interactive_pane_log_2541.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_interactive_prefill_state.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_interactive_session_relaunch.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_interactive_test_verdict_backstop.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_interactive_token_attribution.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_interactive_worktree.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_invariant_alarms.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_issue_store_seam.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_issues_sync_status.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_liveness_auditor.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_liveness_notify.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_lock_contention_ratchet.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_machine_fault.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_machine_metrics.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_machine_onboard.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_machine_pause.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_machine_stats.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_merge_queue.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_merge_verify.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_milestone_chat.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_milestone_gate.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_milestone_order.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_milestone_seam.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_mock_author.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_model_tiering.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_models.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_models_config_labels.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_needs_attention.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_network.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_new_issue_chat.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_next_release_tag.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_node_shim.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_notifier_baseline.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_notifier_cli.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_notifier_collect.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_notifier_config.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_notifier_drive_seam.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_notifier_isolation.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_notifier_predicate.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_notifier_quiet_hours.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_notifier_service.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_notify.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_notify_drain.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_openapi.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_operational_defaults.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_overlap_fence.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_overlap_predict.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_packaged_deploy_units.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_parentage.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_paste_landed.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_phantom_heal_venv_independence_2570.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_pipeline.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_plan_followup_approve_plan_command.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_plan_followup_pr_command.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_plan_followup_review_command.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_plan_only.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_plan_parser.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_platform_paths.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_portal_bridge.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_portal_config.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_portal_store.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_portal_sync.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_pr_body_lint.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_prereqs.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_production_db_guard.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_progress.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_provider_seam.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_providers.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_providers_config_labels.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_providers_pty.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_provision_core.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_provision_machine.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_py_rust_mirror_inventory.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_quiet_hours.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_quiet_hours_store_2146.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_reap_merged_sessions.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_reap_stale_interactive_tick.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_reconcile.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_reconcile_branch.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_reconcile_completions.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_reconcile_late_agent_reports_2547.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_reconcile_merges.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_reconcile_no_agent_record.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_reconcile_tick.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_reconcile_usage_limit_done.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_refine_chat.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_release_cordon_2101.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_release_cordon_deadlock_2240.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_release_cordon_drain_stall_3336.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_release_cordon_stuck_2490.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_release_propagate.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_release_propagate_threshold.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_release_roll_between_legs_2854.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_release_roll_window_handoff.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_release_unified_1242.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_release_verify.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_release_window.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_remote_auto_prune.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_remote_interactive_reaper.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_repo_add.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_repo_dormancy.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_repo_edit_2220.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_repo_graph_fleet_2237.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_repo_max_parallel_3423.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_repo_onboard_2220.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_report_result_push.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_reports.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_restart_cmd.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_retry.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_retry_advisory_1606.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_retry_escalation_classify_3360.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_retry_type_1636.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_revalidate.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_review.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_review_end_review_without_verdict.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_review_parse_failure_diagnostic.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_review_reaffirm.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_review_state.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_review_verdict_backstop.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_review_verdict_override_audit.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_review_verdict_relay.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_review_zero_commits.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_scoped_review_wiring.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_scorecard.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_self_health.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_serve.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_serve_app.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_serve_app_board_trim.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_serve_rest_routes.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_session.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_slice_issue_attribution.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_smoke.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_smoke_fanout_manifest_3333.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_smoke_live_checkout_restore.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_smoke_workflow.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_spend_ceiling.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_spend_ceiling_coordinator.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_split.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_split_work.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_sql_dialect.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_sqlite_connect_ratchet.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_stage_projection.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_stale_busy_reviewer_697.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_stalled_pipeline.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_state.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_state_review_findings_daemon.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_status_fleet_footer.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_stop_1567.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_store_contract.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_store_migrate.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_stuck.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_stuck_test_state_watchdog_2803.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_terminal_command.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_test_author.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_test_chat.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_test_orchestrator.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_test_report.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_test_verdict_parsing.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_test_verdict_transcript_floor.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_text_io_encoding_audit.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_thin_client_board_audit.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_thin_client_config_load_1080.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_thin_client_daemon_routing_906.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_throwaway_vm.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_tmux_host.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_tmux_session.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_transcript_floor.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_uat_checks.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_usage.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_usage_limits.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_usage_rollup.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_venv_live_install_2121.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_version_single_source.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_watch.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_worker_env_venv_isolation.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_worker_events.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_worker_image_pin_sync.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_worker_safety.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_worker_test_scoping.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_worktree.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_worktree_rmtree_chokepoint.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/test_write_parity.py +0 -0
- {code_coordinator-0.5.524 → code_coordinator-0.5.525}/tests/write_parity.py +0 -0
|
@@ -37,6 +37,7 @@ import logging
|
|
|
37
37
|
|
|
38
38
|
import httpx
|
|
39
39
|
|
|
40
|
+
from coord import github_ops
|
|
40
41
|
from coord.ci_store import CIFailureDetail
|
|
41
42
|
from coord.config import Config
|
|
42
43
|
from coord.merge_queue import QueuedMerge, _chain_work_ids
|
|
@@ -144,12 +145,87 @@ def _format_ci_failure_detail(detail: CIFailureDetail) -> list[str]:
|
|
|
144
145
|
return lines
|
|
145
146
|
|
|
146
147
|
|
|
148
|
+
# #3456: cap on the issue body threaded into a ci-fix briefing. Large
|
|
149
|
+
# enough that a typical issue description plus an operator's follow-up
|
|
150
|
+
# diagnosis both fit without truncation in the common case — only a
|
|
151
|
+
# genuinely long body (or a long back-and-forth of appended notes) hits
|
|
152
|
+
# the cap at all.
|
|
153
|
+
ISSUE_BODY_MAX_CHARS = 6000
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
def _bound_issue_body(body: str) -> tuple[str, bool]:
|
|
157
|
+
"""Truncate *body* to the last :data:`ISSUE_BODY_MAX_CHARS` characters
|
|
158
|
+
when it exceeds that cap (#3456).
|
|
159
|
+
|
|
160
|
+
Keeps the TAIL, not the head: an operator's diagnosis on a CI-fix
|
|
161
|
+
streak is written INTO the issue body after the failure is understood
|
|
162
|
+
— i.e. appended below the original description (see the issue's own
|
|
163
|
+
evidence: "After the root cause was written into the issue body,
|
|
164
|
+
requeueing would have routed the next attempt through the same ci-fix
|
|
165
|
+
path"). Keeping the tail is what makes sure that operator-added
|
|
166
|
+
content survives a cut; the cost is that the original description
|
|
167
|
+
(often already echoed by the issue title anyway) is what gets dropped
|
|
168
|
+
for a body long enough to need cutting at all.
|
|
169
|
+
|
|
170
|
+
Returns ``(text, truncated)`` — mirrors
|
|
171
|
+
:func:`coord.ci_github._bound_log_excerpt`'s contract: *truncated* is
|
|
172
|
+
``True`` iff the cut actually removed content, so the caller can make
|
|
173
|
+
the cut visible in the briefing text rather than silently handing over
|
|
174
|
+
a partial body.
|
|
175
|
+
"""
|
|
176
|
+
if len(body) <= ISSUE_BODY_MAX_CHARS:
|
|
177
|
+
return body, False
|
|
178
|
+
return body[-ISSUE_BODY_MAX_CHARS:], True
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
def _format_issue_body(issue_body: str) -> list[str]:
|
|
182
|
+
"""Render *issue_body* into briefing lines (#3456) — see
|
|
183
|
+
:func:`_bound_issue_body` for the truncation contract.
|
|
184
|
+
"""
|
|
185
|
+
body, truncated = _bound_issue_body(issue_body)
|
|
186
|
+
lines: list[str] = ["## Issue body", ""]
|
|
187
|
+
if truncated:
|
|
188
|
+
lines.append(
|
|
189
|
+
f"(truncated to the last {ISSUE_BODY_MAX_CHARS} characters — "
|
|
190
|
+
"operator notes are typically appended below the original "
|
|
191
|
+
"description, so keeping the tail keeps those over the part "
|
|
192
|
+
"already echoed by the issue title)"
|
|
193
|
+
)
|
|
194
|
+
lines.append("")
|
|
195
|
+
lines.append(body)
|
|
196
|
+
lines.append("")
|
|
197
|
+
return lines
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
def _fetch_issue_body(entry: QueuedMerge) -> str:
|
|
201
|
+
"""Best-effort fetch of *entry*'s issue body for the ci-fix briefing
|
|
202
|
+
(#3456) — the same body a Work-stage dispatch already auto-includes
|
|
203
|
+
(``coord.commands.dispatch``'s auto-briefing, ``coord.commands.
|
|
204
|
+
dispatch_workers``' smoke briefing) but a ci-fix dispatch never did:
|
|
205
|
+
any diagnosis an operator records on the issue (e.g. after reading the
|
|
206
|
+
real CI logs by hand) was invisible to the worker most likely to need
|
|
207
|
+
it, since workers can't run ``gh`` themselves to read it any other way.
|
|
208
|
+
|
|
209
|
+
Fails soft to ``""`` on any read failure (``gh`` missing, rate-limited,
|
|
210
|
+
a network blip, a malformed response) — same posture as
|
|
211
|
+
:func:`coord.ci_github.build_ci_failure_detail`: this is enrichment,
|
|
212
|
+
never a dispatch precondition, and a body fetch failure must never
|
|
213
|
+
block or delay the actual fix dispatch.
|
|
214
|
+
"""
|
|
215
|
+
try:
|
|
216
|
+
issue_data = github_ops.get_issue(entry.repo_github, entry.issue_number)
|
|
217
|
+
except Exception: # noqa: BLE001 — best-effort, see docstring
|
|
218
|
+
return ""
|
|
219
|
+
return str(issue_data.get("body") or "")
|
|
220
|
+
|
|
221
|
+
|
|
147
222
|
def build_ci_fix_briefing(
|
|
148
223
|
*,
|
|
149
224
|
entry: QueuedMerge,
|
|
150
225
|
checks_summary: str,
|
|
151
226
|
attempt: int,
|
|
152
227
|
detail: CIFailureDetail | None = None,
|
|
228
|
+
issue_body: str | None = None,
|
|
153
229
|
) -> str:
|
|
154
230
|
"""Assemble the CI-fix worker's briefing. Pure function — testable.
|
|
155
231
|
|
|
@@ -159,6 +235,11 @@ def build_ci_fix_briefing(
|
|
|
159
235
|
empty of anything beyond the check name (see :func:`_detail_has_content`),
|
|
160
236
|
the briefing is byte-identical to before #3114, still carrying
|
|
161
237
|
``checks_summary``.
|
|
238
|
+
|
|
239
|
+
*issue_body* (#3456) is the issue's current body, fetched by
|
|
240
|
+
:func:`_fetch_issue_body` at dispatch time — optional and additive,
|
|
241
|
+
same shape as *detail*: ``None`` or blank leaves the briefing
|
|
242
|
+
byte-identical to before #3456.
|
|
162
243
|
"""
|
|
163
244
|
lines: list[str] = [
|
|
164
245
|
f"# CI failure fix: {entry.repo_github} branch `{entry.branch}`",
|
|
@@ -172,6 +253,8 @@ def build_ci_fix_briefing(
|
|
|
172
253
|
f" {checks_summary}",
|
|
173
254
|
"",
|
|
174
255
|
]
|
|
256
|
+
if issue_body is not None and issue_body.strip():
|
|
257
|
+
lines.extend(_format_issue_body(issue_body))
|
|
175
258
|
if detail is not None and _detail_has_content(detail):
|
|
176
259
|
lines.extend(_format_ci_failure_detail(detail))
|
|
177
260
|
lines += [
|
|
@@ -353,9 +436,10 @@ def dispatch_ci_fix(
|
|
|
353
436
|
return None
|
|
354
437
|
|
|
355
438
|
summary = checks_summary or entry.error or "CI checks failed"
|
|
439
|
+
issue_body = _fetch_issue_body(entry)
|
|
356
440
|
briefing = build_ci_fix_briefing(
|
|
357
441
|
entry=entry, checks_summary=summary, attempt=entry.ci_fix_dispatches + 1,
|
|
358
|
-
detail=detail,
|
|
442
|
+
detail=detail, issue_body=issue_body,
|
|
359
443
|
)
|
|
360
444
|
|
|
361
445
|
from coord.auto_loop import _dispatch_fix # noqa: PLC0415
|
|
@@ -120,19 +120,50 @@ _RUST_ERROR_RE = re.compile(r"\berror(\[E\d+\])?:")
|
|
|
120
120
|
_RUST_LOCATION_RE = re.compile(r"-->")
|
|
121
121
|
_RUST_WARNING_RE = re.compile(r"\bwarning:")
|
|
122
122
|
|
|
123
|
+
# #3456: GitHub Actions appends this EXACT line to every failing step's log,
|
|
124
|
+
# regardless of what actually failed — it is the annotation `_ERROR_
|
|
125
|
+
# ANNOTATION_RE` would otherwise happily match as tier-1 signal, and on a
|
|
126
|
+
# job whose real failure produces no OTHER `##[error]` line (e.g. a `cargo
|
|
127
|
+
# test` failure — rustc's own test-harness panic output carries no `##[
|
|
128
|
+
# error]` prefix at all), this generic wrapper line was the ONLY thing
|
|
129
|
+
# selected: "exit code 1", not the failing test. Excluded from the
|
|
130
|
+
# `annotation` tier entirely so the more specific `rust_test_failure` tier
|
|
131
|
+
# below (or, failing that, `no_diagnostics_matched`) wins instead.
|
|
132
|
+
_EXIT_CODE_ANNOTATION_RE = re.compile(r"##\[error\]Process completed with exit code \d+\.?\s*$")
|
|
133
|
+
|
|
134
|
+
# #3456: a rust test-harness failure never carries a `##[error]` prefix, so
|
|
135
|
+
# none of it was reachable by any tier before this — the harness prints a
|
|
136
|
+
# per-test `---- <test path> stdout ----` header immediately followed by the
|
|
137
|
+
# `panicked at ...` message, then (once every test has run) a `failures:`
|
|
138
|
+
# roll-up naming every failing test, then a final `test result: FAILED. ...`
|
|
139
|
+
# summary line. All four are treated as one priority tier: whichever of
|
|
140
|
+
# them shows up is unambiguously more useful than the generic exit-code
|
|
141
|
+
# annotation above.
|
|
142
|
+
_RUST_TEST_STDOUT_HEADER_RE = re.compile(r"^-+\s.*\sstdout\s-+\s*$")
|
|
143
|
+
_RUST_PANICKED_RE = re.compile(r"panicked at")
|
|
144
|
+
_RUST_TEST_RESULT_RE = re.compile(r"\btest result: FAILED\b")
|
|
145
|
+
_RUST_FAILURES_HEADER_RE = re.compile(r"^failures:\s*$")
|
|
146
|
+
|
|
123
147
|
# How many lines past a matched rust-diagnostic line to look for its `-->`
|
|
124
148
|
# location before giving up — rustc always emits it on the very next
|
|
125
149
|
# non-blank line; a small window tolerates the odd blank line without
|
|
126
150
|
# accidentally stealing a `-->` that belongs to a LATER diagnostic.
|
|
127
151
|
_RUST_LOCATION_LOOKAHEAD = 4
|
|
128
152
|
|
|
153
|
+
# How many lines past a `---- <test> stdout ----` header to sweep into the
|
|
154
|
+
# same unit — enough to capture the `thread '...' panicked at ...:LINE:COL:`
|
|
155
|
+
# line plus a short assertion message, without running so far that a SECOND
|
|
156
|
+
# test's header (or unrelated harness noise) gets swept in too.
|
|
157
|
+
_RUST_TEST_FAILURE_LOOKAHEAD = 6
|
|
158
|
+
|
|
129
159
|
|
|
130
160
|
def _select_diagnostic_units(lines: list[str]) -> tuple[
|
|
131
|
-
list[list[str]], list[list[str]], list[list[str]]
|
|
161
|
+
list[list[str]], list[list[str]], list[list[str]], list[list[str]]
|
|
132
162
|
]:
|
|
133
|
-
"""Classify *lines* into (annotation, rust_diagnostic,
|
|
134
|
-
lists, each unit a small list of original line strings
|
|
135
|
-
budget truncation never splits an `error:`/`-->` pair
|
|
163
|
+
"""Classify *lines* into (annotation, rust_test_failure, rust_diagnostic,
|
|
164
|
+
warning) unit lists, each unit a small list of original line strings
|
|
165
|
+
kept atomic so budget truncation never splits an `error:`/`-->` pair —
|
|
166
|
+
or a rust test panic header/message pair — apart (#3245, #3456).
|
|
136
167
|
|
|
137
168
|
Each source line is claimed by at most one bucket, checked in priority
|
|
138
169
|
order, so a line matching a higher-priority pattern is never
|
|
@@ -142,10 +173,47 @@ def _select_diagnostic_units(lines: list[str]) -> tuple[
|
|
|
142
173
|
|
|
143
174
|
annotation: list[list[str]] = []
|
|
144
175
|
for i, line in enumerate(lines):
|
|
176
|
+
# #3456: the generic "step failed" wrapper line is deliberately
|
|
177
|
+
# never claimed here (see `_EXIT_CODE_ANNOTATION_RE`'s comment) —
|
|
178
|
+
# left unclaimed (not even added to `claimed`) since nothing else
|
|
179
|
+
# matches it anyway.
|
|
180
|
+
if _EXIT_CODE_ANNOTATION_RE.search(line):
|
|
181
|
+
continue
|
|
145
182
|
if _ERROR_ANNOTATION_RE.search(line):
|
|
146
183
|
annotation.append([line])
|
|
147
184
|
claimed.add(i)
|
|
148
185
|
|
|
186
|
+
# #3456: rust test-harness failures — a stdout header sweeps in the
|
|
187
|
+
# panic message that follows it; a bare `panicked at`/`test result:
|
|
188
|
+
# FAILED`/`failures:` line (no preceding header, e.g. a `cargo run`
|
|
189
|
+
# panic outside the test harness) stands alone as its own unit.
|
|
190
|
+
rust_test_failure: list[list[str]] = []
|
|
191
|
+
for i, line in enumerate(lines):
|
|
192
|
+
if i in claimed:
|
|
193
|
+
continue
|
|
194
|
+
if _RUST_TEST_STDOUT_HEADER_RE.match(line.strip()):
|
|
195
|
+
claimed.add(i)
|
|
196
|
+
unit = [line]
|
|
197
|
+
end = min(i + 1 + _RUST_TEST_FAILURE_LOOKAHEAD, len(lines))
|
|
198
|
+
for j in range(i + 1, end):
|
|
199
|
+
if j in claimed:
|
|
200
|
+
break
|
|
201
|
+
candidate = lines[j]
|
|
202
|
+
if not candidate.strip() or _RUST_TEST_STDOUT_HEADER_RE.match(candidate.strip()):
|
|
203
|
+
# Blank line or the next test's header — stop before
|
|
204
|
+
# sweeping in unrelated content.
|
|
205
|
+
break
|
|
206
|
+
unit.append(candidate)
|
|
207
|
+
claimed.add(j)
|
|
208
|
+
rust_test_failure.append(unit)
|
|
209
|
+
elif (
|
|
210
|
+
_RUST_PANICKED_RE.search(line)
|
|
211
|
+
or _RUST_TEST_RESULT_RE.search(line)
|
|
212
|
+
or _RUST_FAILURES_HEADER_RE.match(line.strip())
|
|
213
|
+
):
|
|
214
|
+
claimed.add(i)
|
|
215
|
+
rust_test_failure.append([line])
|
|
216
|
+
|
|
149
217
|
rust_diag: list[list[str]] = []
|
|
150
218
|
for i, line in enumerate(lines):
|
|
151
219
|
if i in claimed or not _RUST_ERROR_RE.search(line):
|
|
@@ -173,7 +241,7 @@ def _select_diagnostic_units(lines: list[str]) -> tuple[
|
|
|
173
241
|
claimed.add(i)
|
|
174
242
|
warning.append([line])
|
|
175
243
|
|
|
176
|
-
return annotation, rust_diag, warning
|
|
244
|
+
return annotation, rust_test_failure, rust_diag, warning
|
|
177
245
|
|
|
178
246
|
|
|
179
247
|
def _extract_relevant_log_lines(text: str) -> tuple[str, bool, bool]:
|
|
@@ -189,30 +257,42 @@ def _extract_relevant_log_lines(text: str) -> tuple[str, bool, bool]:
|
|
|
189
257
|
Extraction is by relevance, in priority order, matching the issue's fix
|
|
190
258
|
shape:
|
|
191
259
|
|
|
192
|
-
1. ``##[error]`` GitHub Actions annotation lines
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
260
|
+
1. ``##[error]`` GitHub Actions annotation lines — EXCEPT the generic
|
|
261
|
+
``Process completed with exit code N.`` wrapper GitHub Actions
|
|
262
|
+
appends to every failing step regardless of cause (#3456): it
|
|
263
|
+
carries zero diagnostic value, and on a job whose real failure
|
|
264
|
+
never emits any OTHER ``##[error]`` line (a rust test panic, say),
|
|
265
|
+
it used to be the ONLY thing this function ever surfaced.
|
|
266
|
+
2. Rust test-harness failures (#3456) — a ``---- <test> stdout ----``
|
|
267
|
+
header (with the ``panicked at ...`` message that follows it), a
|
|
268
|
+
bare ``panicked at`` line, a ``failures:`` roll-up, or the final
|
|
269
|
+
``test result: FAILED`` summary line
|
|
270
|
+
3. Rust compiler diagnostics — ``error[E....]:``/``error:`` paired with
|
|
271
|
+
the ``-->`` file:line that follows
|
|
272
|
+
4. ``warning:`` lines, only if budget remains after 1-3
|
|
196
273
|
|
|
197
274
|
Everything else — including the runner's own echo of a script step's
|
|
198
|
-
source and post-job cleanup
|
|
199
|
-
only ever match one of these
|
|
200
|
-
coincidence.
|
|
275
|
+
source and post-job cleanup, and the excluded exit-code wrapper line —
|
|
276
|
+
is never a candidate, because it can only ever match one of these
|
|
277
|
+
patterns by (extremely unlikely) coincidence.
|
|
201
278
|
|
|
202
279
|
Returns ``(excerpt, truncated, matched)``:
|
|
203
280
|
|
|
204
281
|
- *matched* is ``False`` when nothing in any tier matched anywhere in
|
|
205
282
|
*text* — the caller renders an explicit "no diagnostics" note rather
|
|
206
|
-
than a misleadingly-empty excerpt.
|
|
283
|
+
than a misleadingly-empty excerpt. Note this can now be ``False`` for
|
|
284
|
+
a log whose ONLY `##[error]` line was the excluded exit-code wrapper —
|
|
285
|
+
correctly so, since that line alone told the caller nothing a
|
|
286
|
+
"no diagnostics matched" note doesn't already convey just as well.
|
|
207
287
|
- *truncated* is ``True`` when the matched units together exceed
|
|
208
288
|
:data:`CI_FIX_LOG_MAX_LINES`/:data:`CI_FIX_LOG_MAX_BYTES` and lower-
|
|
209
|
-
priority units (warnings first, then any tier
|
|
210
|
-
dropped to fit — same "make the cut visible" contract as
|
|
289
|
+
priority units (warnings first, then any earlier-tier overflow) had
|
|
290
|
+
to be dropped to fit — same "make the cut visible" contract as
|
|
211
291
|
:func:`_bound_log_excerpt`.
|
|
212
292
|
"""
|
|
213
293
|
lines = text.splitlines()
|
|
214
|
-
annotation, rust_diag, warning = _select_diagnostic_units(lines)
|
|
215
|
-
units = annotation + rust_diag + warning
|
|
294
|
+
annotation, rust_test_failure, rust_diag, warning = _select_diagnostic_units(lines)
|
|
295
|
+
units = annotation + rust_test_failure + rust_diag + warning
|
|
216
296
|
if not units:
|
|
217
297
|
return "", False, False
|
|
218
298
|
|
|
@@ -25,6 +25,7 @@ from coord.ci_fix import (
|
|
|
25
25
|
dispatch_was_noop,
|
|
26
26
|
refund_noop_ci_fix,
|
|
27
27
|
)
|
|
28
|
+
from coord.ci_github import _extract_relevant_log_lines
|
|
28
29
|
from coord.ci_store import CheckRun, CIFailureDetail, JobRun, JobStep
|
|
29
30
|
from coord.config import Config, ReviewsConfig
|
|
30
31
|
from coord.merge_queue import HUMAN_REQUIRED, PENDING, MergeEvent, QueuedMerge
|
|
@@ -247,6 +248,114 @@ class TestBuildBriefingWithDetail:
|
|
|
247
248
|
assert "no diagnostic lines matched" in briefing.lower()
|
|
248
249
|
|
|
249
250
|
|
|
251
|
+
class TestBuildBriefingWithIssueBody:
|
|
252
|
+
"""#3456: the CI-fix briefing must carry the issue body — the only way
|
|
253
|
+
an operator's diagnosis (recorded on the issue after reading the real
|
|
254
|
+
CI logs by hand) ever reaches a ci-fix worker, since workers can't run
|
|
255
|
+
`gh` themselves to read it any other way."""
|
|
256
|
+
|
|
257
|
+
def test_no_issue_body_is_byte_identical_to_pre_3456(self) -> None:
|
|
258
|
+
"""`issue_body=None` (the default) must not change the briefing at
|
|
259
|
+
all — every pre-#3456 caller (and every un-updated call site) keeps
|
|
260
|
+
getting exactly what it always got."""
|
|
261
|
+
without_kw = build_ci_fix_briefing(
|
|
262
|
+
entry=_entry(), checks_summary="x", attempt=1,
|
|
263
|
+
)
|
|
264
|
+
with_explicit_none = build_ci_fix_briefing(
|
|
265
|
+
entry=_entry(), checks_summary="x", attempt=1, issue_body=None,
|
|
266
|
+
)
|
|
267
|
+
assert without_kw == with_explicit_none
|
|
268
|
+
|
|
269
|
+
def test_blank_issue_body_adds_no_section(self) -> None:
|
|
270
|
+
briefing = build_ci_fix_briefing(
|
|
271
|
+
entry=_entry(), checks_summary="x", attempt=1, issue_body=" ",
|
|
272
|
+
)
|
|
273
|
+
assert "## Issue body" not in briefing
|
|
274
|
+
|
|
275
|
+
def test_issue_body_appears_in_briefing(self) -> None:
|
|
276
|
+
briefing = build_ci_fix_briefing(
|
|
277
|
+
entry=_entry(), checks_summary="x", attempt=1,
|
|
278
|
+
issue_body="## Root cause\n\nDirectWrite word-wrap/clip bug in "
|
|
279
|
+
"dialog.rs — see panic at dialog.rs:236:9.",
|
|
280
|
+
)
|
|
281
|
+
assert "## Issue body" in briefing
|
|
282
|
+
assert "DirectWrite word-wrap/clip bug" in briefing
|
|
283
|
+
assert "dialog.rs:236:9" in briefing
|
|
284
|
+
|
|
285
|
+
def test_long_issue_body_is_truncated_keeping_the_tail(self) -> None:
|
|
286
|
+
"""Operator diagnosis is appended to the BOTTOM of the issue body
|
|
287
|
+
after the original description — truncation must keep the tail so
|
|
288
|
+
that diagnosis survives, even if the (often title-redundant)
|
|
289
|
+
original description at the top gets cut."""
|
|
290
|
+
from coord.ci_fix import ISSUE_BODY_MAX_CHARS
|
|
291
|
+
|
|
292
|
+
original = "x" * (ISSUE_BODY_MAX_CHARS + 500)
|
|
293
|
+
diagnosis = "\n\n## Root cause\n\nThe actual bug is a DirectWrite clip issue."
|
|
294
|
+
body = original + diagnosis
|
|
295
|
+
|
|
296
|
+
briefing = build_ci_fix_briefing(
|
|
297
|
+
entry=_entry(), checks_summary="x", attempt=1, issue_body=body,
|
|
298
|
+
)
|
|
299
|
+
assert "The actual bug is a DirectWrite clip issue." in briefing
|
|
300
|
+
assert "truncated" in briefing.lower()
|
|
301
|
+
|
|
302
|
+
def test_short_issue_body_is_not_marked_truncated(self) -> None:
|
|
303
|
+
briefing = build_ci_fix_briefing(
|
|
304
|
+
entry=_entry(), checks_summary="x", attempt=1, issue_body="short body",
|
|
305
|
+
)
|
|
306
|
+
assert "## Issue body" in briefing
|
|
307
|
+
assert "truncated to the last" not in briefing.lower()
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
class TestDispatchCiFixFetchesIssueBody:
|
|
311
|
+
"""#3456: `dispatch_ci_fix` fetches the issue body itself (best-effort)
|
|
312
|
+
and threads it into the briefing — a worker has no other path to an
|
|
313
|
+
operator's diagnosis recorded on the issue."""
|
|
314
|
+
|
|
315
|
+
def test_fetched_issue_body_lands_in_the_dispatched_briefing(
|
|
316
|
+
self, two_machine_config: Config, coord_db,
|
|
317
|
+
) -> None:
|
|
318
|
+
board = Board()
|
|
319
|
+
board.completed.append(_work_assignment())
|
|
320
|
+
client = _FakeHTTPClient({"id": "ci-fix-body"})
|
|
321
|
+
|
|
322
|
+
with patch(
|
|
323
|
+
"coord.ci_fix.github_ops.get_issue",
|
|
324
|
+
return_value={"body": "## Root cause\n\nDirectWrite clip bug."},
|
|
325
|
+
) as get_issue:
|
|
326
|
+
dispatch_ci_fix(
|
|
327
|
+
_entry(), board, two_machine_config,
|
|
328
|
+
checks_summary="acceptance (failure)", http_client=client,
|
|
329
|
+
)
|
|
330
|
+
|
|
331
|
+
get_issue.assert_called_once_with("acme/api", 1)
|
|
332
|
+
_, payload = client.calls[0]
|
|
333
|
+
assert "DirectWrite clip bug" in payload["briefing"]
|
|
334
|
+
|
|
335
|
+
def test_issue_fetch_failure_is_fail_soft(
|
|
336
|
+
self, two_machine_config: Config, coord_db,
|
|
337
|
+
) -> None:
|
|
338
|
+
"""A failed issue-body fetch (rate-limited, `gh` unreachable, ...)
|
|
339
|
+
must never block the dispatch — same posture as the #3114 detail
|
|
340
|
+
fetch."""
|
|
341
|
+
board = Board()
|
|
342
|
+
board.completed.append(_work_assignment())
|
|
343
|
+
client = _FakeHTTPClient({"id": "ci-fix-body-fail"})
|
|
344
|
+
|
|
345
|
+
with patch(
|
|
346
|
+
"coord.ci_fix.github_ops.get_issue",
|
|
347
|
+
side_effect=RuntimeError("gh throttled"),
|
|
348
|
+
):
|
|
349
|
+
result = dispatch_ci_fix(
|
|
350
|
+
_entry(), board, two_machine_config,
|
|
351
|
+
checks_summary="acceptance (failure)", http_client=client,
|
|
352
|
+
)
|
|
353
|
+
|
|
354
|
+
assert result is not None
|
|
355
|
+
_, payload = client.calls[0]
|
|
356
|
+
assert "## Issue body" not in payload["briefing"]
|
|
357
|
+
|
|
358
|
+
|
|
250
359
|
# ── #3011: no-op leg detection/refund ────────────────────────────────────────
|
|
251
360
|
|
|
252
361
|
|
|
@@ -975,3 +1084,73 @@ class TestDispatchCiFixesWithCiStore:
|
|
|
975
1084
|
)
|
|
976
1085
|
second_detail = dispatch.call_args.kwargs["detail"]
|
|
977
1086
|
assert second_detail == first_detail
|
|
1087
|
+
|
|
1088
|
+
|
|
1089
|
+
# ── #3456: excerpt selection prefers the failing rust test over the ─────────
|
|
1090
|
+
# ── generic "exit code" wrapper line ─────────────────────────────────────────
|
|
1091
|
+
|
|
1092
|
+
|
|
1093
|
+
class TestExcerptPrefersFailingRustTestOverExitCode:
|
|
1094
|
+
"""quadraui#1077: both ci-fix legs were briefed with nothing but
|
|
1095
|
+
`##[error]Process completed with exit code 1.` — the least useful line
|
|
1096
|
+
in the log — instead of the failing test name and panic message
|
|
1097
|
+
(`panicked at ... dialog.rs:236:9: tinted button label should paint
|
|
1098
|
+
...`). `_extract_relevant_log_lines` must prefer the rust test-harness
|
|
1099
|
+
failure lines over that generic wrapper."""
|
|
1100
|
+
|
|
1101
|
+
def test_exit_code_line_alone_is_not_matched(self) -> None:
|
|
1102
|
+
"""The generic wrapper line carries no diagnostic value on its
|
|
1103
|
+
own — it must not be treated as a match at all (#3456), so the
|
|
1104
|
+
caller renders the explicit "no diagnostics matched" note instead
|
|
1105
|
+
of a briefing that looks substantive but says nothing."""
|
|
1106
|
+
text = (
|
|
1107
|
+
"running tests...\n"
|
|
1108
|
+
"##[error]Process completed with exit code 1.\n"
|
|
1109
|
+
)
|
|
1110
|
+
excerpt, truncated, matched = _extract_relevant_log_lines(text)
|
|
1111
|
+
assert matched is False
|
|
1112
|
+
assert excerpt == ""
|
|
1113
|
+
|
|
1114
|
+
def test_panic_and_test_result_preferred_over_exit_code(self) -> None:
|
|
1115
|
+
text = "\n".join([
|
|
1116
|
+
"running 42 tests",
|
|
1117
|
+
"---- dialog::tests::tinted_button_label_paints stdout ----",
|
|
1118
|
+
"thread 'main' panicked at dialog.rs:236:9:",
|
|
1119
|
+
"tinted button label should paint with the theme's accent color",
|
|
1120
|
+
"",
|
|
1121
|
+
"failures:",
|
|
1122
|
+
" dialog::tests::tinted_button_label_paints",
|
|
1123
|
+
"",
|
|
1124
|
+
"test result: FAILED. 41 passed; 1 failed; 0 ignored",
|
|
1125
|
+
"##[error]Process completed with exit code 1.",
|
|
1126
|
+
])
|
|
1127
|
+
excerpt, truncated, matched = _extract_relevant_log_lines(text)
|
|
1128
|
+
assert matched is True
|
|
1129
|
+
assert "panicked at dialog.rs:236:9" in excerpt
|
|
1130
|
+
assert "tinted button label should paint" in excerpt
|
|
1131
|
+
assert "test result: FAILED" in excerpt
|
|
1132
|
+
assert "Process completed with exit code" not in excerpt
|
|
1133
|
+
|
|
1134
|
+
def test_bare_panic_line_without_test_harness_header_still_matches(self) -> None:
|
|
1135
|
+
text = (
|
|
1136
|
+
"starting up...\n"
|
|
1137
|
+
"thread 'main' panicked at src/main.rs:10:5:\n"
|
|
1138
|
+
"index out of bounds\n"
|
|
1139
|
+
"##[error]Process completed with exit code 101.\n"
|
|
1140
|
+
)
|
|
1141
|
+
excerpt, truncated, matched = _extract_relevant_log_lines(text)
|
|
1142
|
+
assert matched is True
|
|
1143
|
+
assert "panicked at src/main.rs:10:5" in excerpt
|
|
1144
|
+
assert "Process completed with exit code" not in excerpt
|
|
1145
|
+
|
|
1146
|
+
def test_real_error_annotation_still_takes_priority(self) -> None:
|
|
1147
|
+
"""A genuinely diagnostic `##[error]` line (not the generic exit-
|
|
1148
|
+
code wrapper) is still top priority, unaffected by this change."""
|
|
1149
|
+
text = (
|
|
1150
|
+
"##[error]coord-tui fails to compile against this PR's quadraui\n"
|
|
1151
|
+
"##[error]Process completed with exit code 1.\n"
|
|
1152
|
+
)
|
|
1153
|
+
excerpt, truncated, matched = _extract_relevant_log_lines(text)
|
|
1154
|
+
assert matched is True
|
|
1155
|
+
assert "coord-tui fails to compile" in excerpt
|
|
1156
|
+
assert "Process completed with exit code" not in excerpt
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_coordinator-0.5.524 → code_coordinator-0.5.525}/code_coordinator.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{code_coordinator-0.5.524 → code_coordinator-0.5.525}/code_coordinator.egg-info/entry_points.txt
RENAMED
|
File without changes
|
{code_coordinator-0.5.524 → code_coordinator-0.5.525}/code_coordinator.egg-info/requires.txt
RENAMED
|
File without changes
|
{code_coordinator-0.5.524 → code_coordinator-0.5.525}/code_coordinator.egg-info/scm_file_list.json
RENAMED
|
File without changes
|
{code_coordinator-0.5.524 → code_coordinator-0.5.525}/code_coordinator.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|