code-coordinator 0.5.297__tar.gz → 0.5.298__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.297 → code_coordinator-0.5.298}/PKG-INFO +1 -1
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/code_coordinator.egg-info/PKG-INFO +1 -1
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/code_coordinator.egg-info/scm_version.json +2 -2
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/deploy/coord-agent.service +27 -2
- {code_coordinator-0.5.297 → code_coordinator-0.5.298/coord}/deploy/coord-serve.service +14 -2
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/deploy/coord-web.service +14 -1
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/deploy/coord-agent.service +27 -2
- {code_coordinator-0.5.297/coord → code_coordinator-0.5.298}/deploy/coord-serve.service +14 -2
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/deploy/coord-web.service +14 -1
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/CUSTOMER_FACING_APPS.md +118 -42
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/install-agent.sh +11 -1
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/.claude/commands/board.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/.claude/commands/complete-session.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/.claude/commands/coordinator.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/.githooks/_lib.sh +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/.githooks/post-checkout +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/.githooks/post-commit +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/.githooks/post-merge +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/.github/workflows/auto-release.yml +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/.github/workflows/publish.yml +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/.github/workflows/test.yml +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/.gitignore +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/CLAUDE.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/GOAL.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/LICENSE +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/MANIFEST.in +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/README.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/code_coordinator.egg-info/SOURCES.txt +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/code_coordinator.egg-info/dependency_links.txt +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/code_coordinator.egg-info/entry_points.txt +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/code_coordinator.egg-info/requires.txt +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/code_coordinator.egg-info/scm_file_list.json +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/code_coordinator.egg-info/top_level.txt +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/__init__.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/_board_mapping.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/acceptance.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/acceptance_drivers.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/agent.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/agent_app.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/agent_update.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/agents/opencode/.gitignore +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/agents/opencode/agents/work.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/agents/opencode/routing.jsonc +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/approved_work.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/audit.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/auto_loop.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/block_log.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/board_schema.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/board_service.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/board_wire.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/brain.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/branch_model.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/bug_intake.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/cargo_cache.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/ci_fix.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/ci_github.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/ci_gitlab.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/ci_store.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/claim.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/cli.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/client.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/commands/__init__.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/commands/_common.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/commands/acceptance.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/commands/agent_ops.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/commands/audit.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/commands/chat.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/commands/dispatch.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/commands/dispatch_workers.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/commands/drive.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/commands/drive_queue.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/commands/gate_a.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/commands/gates.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/commands/issues.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/commands/lifecycle.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/commands/machine.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/commands/merge.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/commands/milestone.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/commands/plan_followup.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/commands/plans.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/commands/portal.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/commands/pr.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/commands/release.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/commands/repo.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/commands/report.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/commands/review.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/commands/scorecard.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/commands/sessions.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/commands/setup.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/commands/status.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/commands/store_migrate.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/commands/terminal.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/commands/test_gate.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/commands/tui.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/comments.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/config.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/config_reload.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/confirm_test.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/conflict_fix.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/dao.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/dashboard/__init__.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/dashboard/fixture.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/dashboard/index.html +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/dashboard/server.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/dashboard/terminal.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/db.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/dead_end.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/decomposition_chat.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/deploy/README.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/deploy/coord-failure-notify.service +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/deploy/coord-fleet-watchdog.service +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/deploy/coord-fleet-watchdog.timer +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/deploy_manifest.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/deploy_units.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/deprecation_telemetry.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/deps.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/diagnose.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/dispatch.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/dist_name.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/drive.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/drive_queue.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/drive_state.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/events.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/failure_class.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/filelock.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/fleet_config_health.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/forge_availability.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/freshness.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/gate_a.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/gate_b.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/gate_snapshot.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/gates.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/github_ops.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/github_throttle.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/goal.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/graph_health.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/health/__init__.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/health/aggregate.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/health/checks/__init__.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/health/checks/agent_install.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/health/checks/cargo_targets.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/health/checks/claude_binary.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/health/checks/coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/health/checks/deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/health/checks/disk.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/health/checks/fleet_board.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/health/checks/fleet_deploy_lanes.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/health/checks/fleet_phantom.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/health/checks/fleet_unit_drift.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/health/checks/graph.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/health/checks/graphify_cli.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/health/checks/index_lock.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/health/checks/issues_sync_staleness.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/health/checks/plan_usage.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/health/checks/release_cordon.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/health/checks/repo_state.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/health/checks/spawned_coord.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/health/checks/stalled_pipeline.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/health/checks/timer_active.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/health/checks/toolchain.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/health/checks/unit_drift.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/health/checks/unit_enablement.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/health/checks/worktrees.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/health/cli.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/health/context.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/health/fleet_snapshot.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/health/models.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/health/pypi.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/health/registry.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/health/render.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/health/units.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/hooks.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/housekeeping.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/interactive.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/issue_store.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/issues_sync_status.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/liveness_auditor.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/machine_onboard.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/machine_pause.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/merge_queue.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/milestone_chat.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/milestone_dispatch.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/milestone_gate.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/milestone_order.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/mock_author.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/models.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/network.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/new_issue_chat.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/notifier/__init__.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/notifier/baseline.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/notifier/cli.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/notifier/collect.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/notifier/digest.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/notifier/models.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/notifier/predicate.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/notifier/service.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/notifier/store.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/notifier/transport.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/notify.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/openapi.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/overlap_fence.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/overlap_predict.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/parentage.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/parentage_github.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/pipeline.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/plan_parser.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/plans.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/platform_paths.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/portal_bridge.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/portal_store.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/portal_sync.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/pr_body_lint.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/prereqs.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/progress.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/providers/__init__.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/providers/base.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/providers/claude.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/providers/claude_pty.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/providers/opencode.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/queue_diagnose.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/reconcile.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/reconcile_tick.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/refine_chat.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/release_cordon.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/release_propagate.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/release_verify.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/release_window.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/repo_edit.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/repo_onboard.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/reports.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/rest_schema.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/revalidate.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/review.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/scorecard.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/self_health.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/serve_app.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/skills/coord-dispatch-verbs/SKILL.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/skills/drive-queue-preflight/SKILL.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/skills/fleet-restart-safety/SKILL.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/skills/merge-stuck-triage/SKILL.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/skills/pipeline-limbo-triage/SKILL.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/skills/portal-followup/SKILL.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/skills/release-now/SKILL.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/skills/review-verdict-recovery/SKILL.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/skills/tui-quadraui-workflow/SKILL.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/skills/update-issue/SKILL.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/smoke.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/spend_ceiling.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/split_work.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/sql.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/stage_projection.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/state.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/store_migrate.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/test_author.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/test_chat.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/test_orchestrator.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/test_report.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/tui_release.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/usage.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/usage_limits.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/usage_rollup.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coord/worker_events.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/coordinator.example.yml +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/deploy/coord-failure-notify.service +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/deploy/coord-failure-notify.sh +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/deploy/coord-fleet-watchdog.service +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/deploy/coord-fleet-watchdog.timer +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/deploy/coord-web-dist-build.sh +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/deploy/coord-web-rollback.sh +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/deploy/node-shim.sh +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/ADR_COORD_TUI_CI.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/ADR_COORD_WEB_ACCEPTANCE_SUITE.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/ADR_COORD_WEB_CI.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/ADR_COORD_WEB_DIST.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/AGENT_OPERATIONS.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/ARCHITECTURE.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/ARCH_SECURITY_GATES.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/COCKPIT.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/COST_DISCIPLINE.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/CROSS_PLATFORM.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/CUSTOMER_PORTAL.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/DRIVE_QUEUE.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/EPHEMERAL_WORKERS.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/FORGE_MIGRATION.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/GRAPHIFY_SETUP.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/ISSUE_GUIDANCE.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/MAC_MINI.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/NOTIFIER.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/OPENCODE_VERIFICATION.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/OPERATING_GOTCHAS.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/OPERATOR_GUIDES.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/ORACLE_LOOP.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/PHONE_WEBAPP.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/PIPELINE_V2.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/PLATFORM_EVOLUTION.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/SECOND_BACKEND.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/STORE_SERVICE.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/TEST_FIRST_BUG_LANE.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/WEB_CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/WSL_WINDOWS_WORKER.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/mocks/web/README.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/mocks/web/_tokens.css +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/mocks/web/issue-detail.html +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/mocks/web/pipeline-narrow.html +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/docs/mocks/web/pipeline-wide.html +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/graphify-out/.gitignore +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/pyproject.toml +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/scripts/audit_review_verdict_overrides.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/scripts/azure-workers/bootstrap-shared.sh +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/scripts/azure-workers/build-worker-image.sh +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/scripts/azure-workers/coordinator-machine.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/scripts/azure-workers/epic-down.sh +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/scripts/azure-workers/epic-up.sh +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/scripts/azure-workers/preflight.sh +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/scripts/azure-workers/provision-worker.sh +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/scripts/azure-workers/tailnet-acl.hujson +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/scripts/azure-workers/verify-github-token.sh +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/scripts/check_gh_argv_containment.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/scripts/codegen.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/scripts/coord-test-runner.sh +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/scripts/coord-tui-scaffold/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/scripts/coord-tui-scaffold/.github/workflows/cargo-test.yml +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/scripts/coord-tui-scaffold/.github/workflows/codegen-drift.yml +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/scripts/coord-tui-scaffold/CLAUDE.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/scripts/coord-venv-rollback.sh +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/scripts/drive-batch.sh +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/scripts/extract-coord-tui.sh +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/scripts/fleet_watchdog.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/scripts/gen_board_fixture.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/scripts/gen_mock_index.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/scripts/next_release_tag.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/scripts/run_tests_in_populated_home.sh +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/scripts/run_tests_without_gh.sh +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/scripts/smoke_437_interactive.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/scripts/verify_878_review_capture.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/scripts/verify_release_published.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/scripts/verify_release_wheel.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/setup.cfg +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/SMOKE_SET.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/__init__.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/acceptance/ms-37/conftest.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/acceptance/ms-37/contract.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/acceptance/ms-37/manifest.yml +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/acceptance/ms-51/contract.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/acceptance/ms-51/manifest.yml +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/acceptance/ms-51/tsconfig.json +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/backends.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/conftest.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/fixtures/board-pipeline-basic.json +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/fixtures/opencode_run_sample.jsonl +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/fixtures/playwright/all_pass.json +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/fixtures/playwright/global_setup_crash.json +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/fixtures/playwright/mixed_fail.json +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/fixtures/playwright/retry_then_pass.json +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/fixtures/playwright/skip.json +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/fixtures/playwright/truncated.json +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_acceptance.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_acceptance_drivers.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_agent.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_agent_api_error.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_agent_app.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_agent_branch_base.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_agent_branch_capture.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_agent_config_free_1712.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_agent_deploy_units_endpoint.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_agent_dirty_worktree.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_agent_drive_queue_reconcile_2373.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_agent_graph_self_heal.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_agent_health_h3.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_agent_idle_restart.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_agent_push_failure.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_agent_reap.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_agent_repos_and_pull.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_agent_restart_services_endpoint.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_agent_skills_self_heal.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_agent_startup_diagnostics.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_agent_update.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_agent_update_bluegreen.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_agent_usage_limit.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_agent_zero_commit.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_ambient_home_isolation.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_approve_dependency_busy_2804.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_approve_reject_plan.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_approve_usage_gate.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_approved_work_2532.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_assignment_already_recorded_daemon.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_audit_log.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_audit_outcome.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_audit_query.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_auto_loop.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_auto_release_publish_2035.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_backend_selection.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_base_checkout_restore.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_block_log.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_board_cap_762.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_board_fixture.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_board_read_path.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_board_schema.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_board_service.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_board_state.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_board_wire.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_brain.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_branch_model.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_bug_intake.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_build_worker_image_env_update.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cargo_cache.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_check_gh_argv_containment.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_ci_acceptance_gate_1950.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_ci_fix.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_ci_gitlab.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_ci_parity_2091.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_ci_store.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_claim.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_claude_md_budget.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_acceptance.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_assign.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_assign_interactive_remote.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_assign_provider.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_assign_repo_drift_2219.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_audit.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_chat_continue.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_decide.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_diagnose_config_provenance.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_diagnose_forge_availability.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_diagnose_graph.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_diagnose_self.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_doctor.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_doctor_config_free_1801.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_drive.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_drive_queue.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_escalate.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_fix_headless_review.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_gate_a.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_install_drift.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_install_skills.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_issue_comment.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_issue_create_label.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_issue_reopen.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_issue_view_list.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_merge.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_milestone_assign.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_milestone_capture.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_milestone_chat_add_child.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_milestone_gate_b.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_milestone_gate_c.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_milestone_order.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_milestone_ship.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_network.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_new_issue_chat.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_plans.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_portal.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_pr.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_pull_artifact.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_queue.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_reattach_sessions.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_refine_board.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_release_preflight.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_release_propagate.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_release_window.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_repo_2220.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_review_test_author_tracking_epic_2639.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_scorecard.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_set_review_findings.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_status_advisory_terminal.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_status_contested_tag.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_status_merge_queue.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_status_provider.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_status_review_finalizing.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_status_test_failed_tag.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_status_usage_limit.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_sync_comments_873.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_test_plan.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_track.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_tui_update.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cli_wait.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_client_base_install.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_client_resource_migration_1946.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_commands_common.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_comments.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_completion_summary.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_config.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_config_acceptance.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_config_audit.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_config_pricing.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_config_usage_gate.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_confirm_test.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_conflict_fix.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_conflict_fix_semantic.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_coord_log_daemon_fallback_2547.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_coord_test.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_coord_test_runner_acceptance_toolchain_2936.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_coord_test_runner_baseline.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_coord_test_runner_populated_home.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_coord_test_runner_routing.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_coord_test_runner_toolchain.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_coord_uat.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_coord_web_sse_restart_live.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_coordinator_machine.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_cross_platform_imports.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_dao.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_dashboard.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_dashboard_fixture.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_dashboard_terminal.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_dashboard_terminal_live.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_db.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_dead_end.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_decomposition_chat.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_deploy_coord_db_backup.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_deploy_coord_web_dist.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_deploy_coord_web_rollback.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_deploy_drive_queue_unit.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_deploy_failure_notify_unit.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_deploy_manifest.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_deploy_notify_unit.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_deploy_units_lane.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_deploy_web_unit.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_deprecation_telemetry.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_deps.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_diagnose.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_dispatch.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_dispatch_target_validation.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_dist_name.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_done_housekeeping.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_drive.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_drive_queue.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_drive_queue_blocked_rendering.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_drive_queue_launch_argv.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_drive_queue_max_parallel_per_repo_config.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_drive_queue_roll_pending.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_drive_queue_self_cordon_escalation.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_drive_state.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_drive_tmux.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_epic_up_capability_detection.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_epic_up_image_provenance.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_errors.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_events.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_failure_class.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_filelock.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_fix_of_force_override.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_fleet_config_health.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_fleet_health_probes.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_fleet_health_snapshot.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_fleet_watchdog.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_forge_availability.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_freshness.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_gate_a.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_gate_b.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_gate_snapshot_staleness.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_gates.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_gather_fleet_tmux_sessions.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_gen_mock_index.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_generated_rust_fixture.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_generated_types_fixture.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_github_ops.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_github_throttle.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_goal.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_graph_health.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_graph_selfheal_absent_2237.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_handoff.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_health_checks.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_health_cli.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_health_cli_graph.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_health_config.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_health_context.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_health_coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_health_deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_health_fix.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_health_incident_regression.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_health_issues_sync_staleness.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_health_pypi.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_health_registry.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_health_release_cordon_probe.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_health_timer_active.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_health_toolchain.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_health_unit_drift.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_health_unit_enablement.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_hooks.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_human_attended_437.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_init.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_install_agent_venv_2911.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_integration.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_interactive_briefing_echo.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_interactive_pane_log_2541.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_interactive_prefill_state.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_interactive_session_relaunch.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_interactive_test_verdict_backstop.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_interactive_token_attribution.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_interactive_worktree.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_issue_store_seam.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_issues_sync_status.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_liveness_auditor.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_liveness_notify.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_lock_contention_ratchet.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_machine_onboard.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_machine_pause.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_merge_queue.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_merge_verify.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_milestone_chat.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_milestone_gate.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_milestone_order.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_milestone_seam.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_mock_author.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_model_tiering.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_models.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_models_config_labels.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_needs_attention.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_network.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_new_issue_chat.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_next_release_tag.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_node_shim.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_notifier_baseline.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_notifier_cli.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_notifier_collect.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_notifier_config.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_notifier_drive_seam.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_notifier_isolation.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_notifier_predicate.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_notifier_quiet_hours.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_notifier_service.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_notify.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_notify_drain.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_openapi.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_operational_defaults.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_overlap_fence.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_overlap_predict.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_packaged_deploy_units.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_parentage.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_paste_landed.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_phantom_heal_venv_independence_2570.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_pipeline.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_plan_followup_approve_plan_command.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_plan_followup_pr_command.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_plan_followup_review_command.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_plan_only.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_plan_parser.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_platform_paths.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_portal_bridge.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_portal_config.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_portal_store.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_portal_sync.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_pr_body_lint.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_prereqs.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_production_db_guard.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_progress.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_provider_seam.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_providers.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_providers_config_labels.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_providers_pty.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_quiet_hours.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_quiet_hours_store_2146.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_reap_merged_sessions.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_reap_stale_interactive_tick.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_reconcile.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_reconcile_branch.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_reconcile_completions.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_reconcile_late_agent_reports_2547.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_reconcile_merges.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_reconcile_no_agent_record.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_reconcile_tick.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_reconcile_usage_limit_done.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_refine_chat.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_release_cordon_2101.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_release_cordon_deadlock_2240.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_release_cordon_stuck_2490.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_release_propagate.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_release_propagate_threshold.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_release_roll_between_legs_2854.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_release_roll_window_handoff.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_release_unified_1242.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_release_verify.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_release_window.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_remote_auto_prune.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_remote_interactive_reaper.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_repo_add.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_repo_edit_2220.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_repo_graph_fleet_2237.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_repo_onboard_2220.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_report_result_push.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_reports.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_retry.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_retry_advisory_1606.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_retry_type_1636.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_revalidate.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_review.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_review_end_review_without_verdict.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_review_parse_failure_diagnostic.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_review_reaffirm.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_review_state.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_review_verdict_backstop.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_review_verdict_override_audit.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_review_verdict_relay.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_review_zero_commits.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_scoped_review_wiring.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_scorecard.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_self_health.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_serve.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_serve_app_board_trim.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_serve_rest_routes.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_session.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_slice_issue_attribution.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_smoke.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_smoke_live_checkout_restore.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_smoke_workflow.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_spend_ceiling.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_spend_ceiling_coordinator.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_split.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_split_work.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_sql_dialect.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_sqlite_connect_ratchet.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_stage_projection.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_stale_busy_reviewer_697.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_stalled_pipeline.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_state.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_state_review_findings_daemon.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_status_fleet_footer.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_stop_1567.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_store_contract.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_store_migrate.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_stuck.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_stuck_test_state_watchdog_2803.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_terminal_command.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_test_author.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_test_chat.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_test_orchestrator.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_test_report.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_test_verdict_parsing.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_test_verdict_transcript_floor.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_text_io_encoding_audit.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_thin_client_board_audit.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_thin_client_config_load_1080.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_thin_client_daemon_routing_906.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_tmux_host.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_tmux_session.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_transcript_floor.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_usage.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_usage_limits.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_usage_rollup.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_venv_live_install_2121.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_version_single_source.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_watch.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_worker_env_venv_isolation.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_worker_events.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_worker_image_pin_sync.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_worker_safety.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_worker_test_scoping.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_worktree.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_worktree_rmtree_chokepoint.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/test_write_parity.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tests/write_parity.py +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-33/audit_1039.rs +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-33/contract.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-33/manifest.yml +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-33/mocks/audit-panel-detail.screen +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-33/mocks/audit-panel-empty.screen +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-33/mocks/audit-panel-filters.screen +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-33/mocks/audit-panel-populated.screen +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-38/contract.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-38/manifest.yml +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-38/mocks/plans-base.screen +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-38/mocks/plans-detail-pane.screen +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-38/mocks/plans-help-overlay.screen +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-38/mocks/plans-palette.screen +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-38/mocks/plans-rightclick-epic.screen +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-38/mocks/plans-rightclick-header.screen +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-38/mocks/plans-rightclick-stub.screen +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-38/plans_detail_1122.rs +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-38/plans_help_1124.rs +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-38/plans_rightclick_1123.rs +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-65/board_split_2288.rs +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-65/board_tabs_2282.rs +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-65/board_tabs_close_2283.rs +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-65/contract.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-65/detail_substate_2285.rs +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-65/manifest.yml +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-65/mocks/board-baseline-no-tabs.screen +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-65/mocks/board-pinned-3-tabs.screen +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-65/mocks/board-preview-tab.screen +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-65/mocks/board-split-side-by-side.screen +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-65/mocks/board-tab-context-menu.screen +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-65/mocks/board-tabs-help-overlay.screen +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-65/mocks/board-tabs-overflow.screen +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-65/mocks/pipeline-tabs-independent.screen +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-65/pipeline_tabs_2284.rs +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-65/tabs_discoverability_2287.rs +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-65/tabs_persistence_2286.rs +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-67/approved_items_2532.rs +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-67/contract.md +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-67/manifest.d/2533.yml +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-67/manifest.yml +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-67/mocks/approved-items-chat-opened.screen +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-67/mocks/approved-items-context-menu.screen +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-67/mocks/approved-items-detail.screen +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-67/mocks/approved-items-empty.screen +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-67/mocks/approved-items-populated.screen +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance/ms-67/pull_decomposition_2533.rs +0 -0
- {code_coordinator-0.5.297 → code_coordinator-0.5.298}/tui/tests/acceptance.rs +0 -0
|
@@ -74,15 +74,40 @@
|
|
|
74
74
|
# systemctl --user restart coord-agent
|
|
75
75
|
#
|
|
76
76
|
# See docs/AGENT_OPERATIONS.md → "Install a new agent (first time)".
|
|
77
|
-
|
|
77
|
+
#
|
|
78
|
+
# #2938: Restart=always, not on-failure. `POST /update` stops this unit's
|
|
79
|
+
# own process so it can come back on the swapped venv — the agent IS its own
|
|
80
|
+
# recovery channel here, via an explicit `systemctl --user restart` the
|
|
81
|
+
# process fires at itself just before exiting (coord/agent_app.py's
|
|
82
|
+
# `_default_exec_restart`). When that explicit restart lands, this process
|
|
83
|
+
# exits 0 either way (a clean stop) and `Restart=on-failure` — correctly, by
|
|
84
|
+
# its own definition — declines to act on a clean exit. If the explicit
|
|
85
|
+
# restart request is ever lost (a dropped systemd/D-Bus call, a race with
|
|
86
|
+
# the process's own exit, anything), NOTHING brings the unit back: it sits
|
|
87
|
+
# `enabled`/`inactive` forever, port 7433 refused, and the fleet has lost
|
|
88
|
+
# its only remote-control channel to that host. `Restart=always` makes
|
|
89
|
+
# systemd itself the backstop for a clean exit, independent of whether the
|
|
90
|
+
# self-restart call landed — dell64, 2026-08-29, ~23 minutes of that exact
|
|
91
|
+
# outage, recovered only because someone could walk to the machine.
|
|
92
|
+
#
|
|
93
|
+
# StartLimitIntervalSec/StartLimitBurst (#2938) bound it: 5 restarts inside
|
|
94
|
+
# 5 minutes and systemd stops trying, landing the unit in `failed` with
|
|
95
|
+
# `Result: start-limit-hit` — visible in `systemctl --user status` and the
|
|
96
|
+
# journal — rather than crash-looping forever. A binary that is genuinely
|
|
97
|
+
# broken (not just "the explicit restart didn't land") must fail loud, not
|
|
98
|
+
# spin silently; `Restart=always` without a limit would trade one silent
|
|
99
|
+
# failure (never restarts) for another (restarts forever with no signal
|
|
100
|
+
# anything is wrong).
|
|
78
101
|
[Unit]
|
|
79
102
|
Description=Coordinator agent server (port <PORT>)
|
|
80
103
|
After=network-online.target
|
|
104
|
+
StartLimitIntervalSec=300
|
|
105
|
+
StartLimitBurst=5
|
|
81
106
|
|
|
82
107
|
[Service]
|
|
83
108
|
Type=simple
|
|
84
109
|
ExecStart=%h/.coord-venv/bin/coord agent --machine <MACHINE_NAME> --port <PORT>
|
|
85
|
-
Restart=
|
|
110
|
+
Restart=always
|
|
86
111
|
RestartSec=5
|
|
87
112
|
Environment=PATH=%h/.coord-venv/bin:%h/.cargo/bin:%h/.local/bin:/usr/local/bin:/usr/bin:/bin
|
|
88
113
|
|
|
@@ -36,11 +36,23 @@
|
|
|
36
36
|
# put --token on ExecStart — it would leak via `ps`).
|
|
37
37
|
#
|
|
38
38
|
# See docs/AGENT_OPERATIONS.md → "Control-center daemon (coord serve)".
|
|
39
|
-
|
|
39
|
+
#
|
|
40
|
+
# #2938: Restart=always (was on-failure), + a StartLimitIntervalSec/
|
|
41
|
+
# StartLimitBurst backstop — see deploy/coord-agent.service's header for the
|
|
42
|
+
# full incident this closes (a clean stop that Restart=on-failure correctly
|
|
43
|
+
# declines to act on, with no other recovery path, leaving the unit
|
|
44
|
+
# `enabled`/`inactive` forever). coord-serve restarts through the same
|
|
45
|
+
# `_restart_sibling_unit` caller as coord-agent's own self-restart
|
|
46
|
+
# (coord/agent_app.py, #2069), so it is exposed to the identical failure
|
|
47
|
+
# shape if that restart request is ever lost. 5 restarts / 5 minutes before
|
|
48
|
+
# systemd gives up and lands the unit in `failed` (`start-limit-hit`) —
|
|
49
|
+
# visible, not a silent crash-loop.
|
|
40
50
|
[Unit]
|
|
41
51
|
Description=coord serve — portable control-center daemon (#584)
|
|
42
52
|
After=network-online.target
|
|
43
53
|
Wants=network-online.target
|
|
54
|
+
StartLimitIntervalSec=300
|
|
55
|
+
StartLimitBurst=5
|
|
44
56
|
|
|
45
57
|
[Service]
|
|
46
58
|
Type=simple
|
|
@@ -78,7 +90,7 @@ Type=simple
|
|
|
78
90
|
# ahead of ~/.local/bin or ~/.coord-venv/bin.
|
|
79
91
|
Environment=PATH=%h/.cargo/bin:%h/.local/bin:%h/src/code-coordinator/.venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
|
|
80
92
|
ExecStart=%h/.coord-venv/bin/coord serve --config %h/.coord/coordinator.yml --host 0.0.0.0 --port 7435
|
|
81
|
-
Restart=
|
|
93
|
+
Restart=always
|
|
82
94
|
RestartSec=3
|
|
83
95
|
# #2095: coord-web (its sibling on the same host, restarted through the same
|
|
84
96
|
# `_restart_sibling_unit` caller) went down for the length of a fleet roll
|
|
@@ -92,11 +92,24 @@
|
|
|
92
92
|
# (#1830), even though the underlying reason differs (that one protects a
|
|
93
93
|
# spawned tmux server from this unit's own cgroup teardown; this one avoids
|
|
94
94
|
# ever having to signal a nonexistent auxiliary process group at all).
|
|
95
|
+
#
|
|
96
|
+
# #2938: Restart=always (was on-failure), + a StartLimitIntervalSec/
|
|
97
|
+
# StartLimitBurst backstop — see deploy/coord-agent.service's header for the
|
|
98
|
+
# full incident this closes (a clean stop that Restart=on-failure correctly
|
|
99
|
+
# declines to act on, with no other recovery path, leaving the unit
|
|
100
|
+
# `enabled`/`inactive` forever). coord-web restarts through the same
|
|
101
|
+
# `_restart_sibling_unit` caller as coord-agent's own self-restart
|
|
102
|
+
# (coord/agent_app.py, #2069), so it is exposed to the identical failure
|
|
103
|
+
# shape if that restart request is ever lost. 5 restarts / 5 minutes before
|
|
104
|
+
# systemd gives up and lands the unit in `failed` (`start-limit-hit`) —
|
|
105
|
+
# visible, not a silent crash-loop.
|
|
95
106
|
|
|
96
107
|
[Unit]
|
|
97
108
|
Description=coord web — phone/web control-center dashboard (#700)
|
|
98
109
|
After=network-online.target
|
|
99
110
|
Wants=network-online.target
|
|
111
|
+
StartLimitIntervalSec=300
|
|
112
|
+
StartLimitBurst=5
|
|
100
113
|
|
|
101
114
|
[Service]
|
|
102
115
|
Type=simple
|
|
@@ -118,7 +131,7 @@ ExecStart=%h/.coord-venv/bin/coord web --config %h/.coord/coordinator.yml --host
|
|
|
118
131
|
# setting it here too ensures any other subprocess spawned by coord web also
|
|
119
132
|
# has a sane terminal type without requiring a code fix for each callsite.
|
|
120
133
|
Environment=TERM=xterm-256color
|
|
121
|
-
Restart=
|
|
134
|
+
Restart=always
|
|
122
135
|
RestartSec=3
|
|
123
136
|
# #2095 — see the header comment above. Bounds the SSE-drain hang that took
|
|
124
137
|
# the dashboard down during the 2026-08-10 fleet roll.
|
|
@@ -74,15 +74,40 @@
|
|
|
74
74
|
# systemctl --user restart coord-agent
|
|
75
75
|
#
|
|
76
76
|
# See docs/AGENT_OPERATIONS.md → "Install a new agent (first time)".
|
|
77
|
-
|
|
77
|
+
#
|
|
78
|
+
# #2938: Restart=always, not on-failure. `POST /update` stops this unit's
|
|
79
|
+
# own process so it can come back on the swapped venv — the agent IS its own
|
|
80
|
+
# recovery channel here, via an explicit `systemctl --user restart` the
|
|
81
|
+
# process fires at itself just before exiting (coord/agent_app.py's
|
|
82
|
+
# `_default_exec_restart`). When that explicit restart lands, this process
|
|
83
|
+
# exits 0 either way (a clean stop) and `Restart=on-failure` — correctly, by
|
|
84
|
+
# its own definition — declines to act on a clean exit. If the explicit
|
|
85
|
+
# restart request is ever lost (a dropped systemd/D-Bus call, a race with
|
|
86
|
+
# the process's own exit, anything), NOTHING brings the unit back: it sits
|
|
87
|
+
# `enabled`/`inactive` forever, port 7433 refused, and the fleet has lost
|
|
88
|
+
# its only remote-control channel to that host. `Restart=always` makes
|
|
89
|
+
# systemd itself the backstop for a clean exit, independent of whether the
|
|
90
|
+
# self-restart call landed — dell64, 2026-08-29, ~23 minutes of that exact
|
|
91
|
+
# outage, recovered only because someone could walk to the machine.
|
|
92
|
+
#
|
|
93
|
+
# StartLimitIntervalSec/StartLimitBurst (#2938) bound it: 5 restarts inside
|
|
94
|
+
# 5 minutes and systemd stops trying, landing the unit in `failed` with
|
|
95
|
+
# `Result: start-limit-hit` — visible in `systemctl --user status` and the
|
|
96
|
+
# journal — rather than crash-looping forever. A binary that is genuinely
|
|
97
|
+
# broken (not just "the explicit restart didn't land") must fail loud, not
|
|
98
|
+
# spin silently; `Restart=always` without a limit would trade one silent
|
|
99
|
+
# failure (never restarts) for another (restarts forever with no signal
|
|
100
|
+
# anything is wrong).
|
|
78
101
|
[Unit]
|
|
79
102
|
Description=Coordinator agent server (port <PORT>)
|
|
80
103
|
After=network-online.target
|
|
104
|
+
StartLimitIntervalSec=300
|
|
105
|
+
StartLimitBurst=5
|
|
81
106
|
|
|
82
107
|
[Service]
|
|
83
108
|
Type=simple
|
|
84
109
|
ExecStart=%h/.coord-venv/bin/coord agent --machine <MACHINE_NAME> --port <PORT>
|
|
85
|
-
Restart=
|
|
110
|
+
Restart=always
|
|
86
111
|
RestartSec=5
|
|
87
112
|
Environment=PATH=%h/.coord-venv/bin:%h/.cargo/bin:%h/.local/bin:/usr/local/bin:/usr/bin:/bin
|
|
88
113
|
|
|
@@ -36,11 +36,23 @@
|
|
|
36
36
|
# put --token on ExecStart — it would leak via `ps`).
|
|
37
37
|
#
|
|
38
38
|
# See docs/AGENT_OPERATIONS.md → "Control-center daemon (coord serve)".
|
|
39
|
-
|
|
39
|
+
#
|
|
40
|
+
# #2938: Restart=always (was on-failure), + a StartLimitIntervalSec/
|
|
41
|
+
# StartLimitBurst backstop — see deploy/coord-agent.service's header for the
|
|
42
|
+
# full incident this closes (a clean stop that Restart=on-failure correctly
|
|
43
|
+
# declines to act on, with no other recovery path, leaving the unit
|
|
44
|
+
# `enabled`/`inactive` forever). coord-serve restarts through the same
|
|
45
|
+
# `_restart_sibling_unit` caller as coord-agent's own self-restart
|
|
46
|
+
# (coord/agent_app.py, #2069), so it is exposed to the identical failure
|
|
47
|
+
# shape if that restart request is ever lost. 5 restarts / 5 minutes before
|
|
48
|
+
# systemd gives up and lands the unit in `failed` (`start-limit-hit`) —
|
|
49
|
+
# visible, not a silent crash-loop.
|
|
40
50
|
[Unit]
|
|
41
51
|
Description=coord serve — portable control-center daemon (#584)
|
|
42
52
|
After=network-online.target
|
|
43
53
|
Wants=network-online.target
|
|
54
|
+
StartLimitIntervalSec=300
|
|
55
|
+
StartLimitBurst=5
|
|
44
56
|
|
|
45
57
|
[Service]
|
|
46
58
|
Type=simple
|
|
@@ -78,7 +90,7 @@ Type=simple
|
|
|
78
90
|
# ahead of ~/.local/bin or ~/.coord-venv/bin.
|
|
79
91
|
Environment=PATH=%h/.cargo/bin:%h/.local/bin:%h/src/code-coordinator/.venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
|
|
80
92
|
ExecStart=%h/.coord-venv/bin/coord serve --config %h/.coord/coordinator.yml --host 0.0.0.0 --port 7435
|
|
81
|
-
Restart=
|
|
93
|
+
Restart=always
|
|
82
94
|
RestartSec=3
|
|
83
95
|
# #2095: coord-web (its sibling on the same host, restarted through the same
|
|
84
96
|
# `_restart_sibling_unit` caller) went down for the length of a fleet roll
|
|
@@ -92,11 +92,24 @@
|
|
|
92
92
|
# (#1830), even though the underlying reason differs (that one protects a
|
|
93
93
|
# spawned tmux server from this unit's own cgroup teardown; this one avoids
|
|
94
94
|
# ever having to signal a nonexistent auxiliary process group at all).
|
|
95
|
+
#
|
|
96
|
+
# #2938: Restart=always (was on-failure), + a StartLimitIntervalSec/
|
|
97
|
+
# StartLimitBurst backstop — see deploy/coord-agent.service's header for the
|
|
98
|
+
# full incident this closes (a clean stop that Restart=on-failure correctly
|
|
99
|
+
# declines to act on, with no other recovery path, leaving the unit
|
|
100
|
+
# `enabled`/`inactive` forever). coord-web restarts through the same
|
|
101
|
+
# `_restart_sibling_unit` caller as coord-agent's own self-restart
|
|
102
|
+
# (coord/agent_app.py, #2069), so it is exposed to the identical failure
|
|
103
|
+
# shape if that restart request is ever lost. 5 restarts / 5 minutes before
|
|
104
|
+
# systemd gives up and lands the unit in `failed` (`start-limit-hit`) —
|
|
105
|
+
# visible, not a silent crash-loop.
|
|
95
106
|
|
|
96
107
|
[Unit]
|
|
97
108
|
Description=coord web — phone/web control-center dashboard (#700)
|
|
98
109
|
After=network-online.target
|
|
99
110
|
Wants=network-online.target
|
|
111
|
+
StartLimitIntervalSec=300
|
|
112
|
+
StartLimitBurst=5
|
|
100
113
|
|
|
101
114
|
[Service]
|
|
102
115
|
Type=simple
|
|
@@ -118,7 +131,7 @@ ExecStart=%h/.coord-venv/bin/coord web --config %h/.coord/coordinator.yml --host
|
|
|
118
131
|
# setting it here too ensures any other subprocess spawned by coord web also
|
|
119
132
|
# has a sane terminal type without requiring a code fix for each callsite.
|
|
120
133
|
Environment=TERM=xterm-256color
|
|
121
|
-
Restart=
|
|
134
|
+
Restart=always
|
|
122
135
|
RestartSec=3
|
|
123
136
|
# #2095 — see the header comment above. Bounds the SSE-drain hang that took
|
|
124
137
|
# the dashboard down during the 2026-08-10 fleet roll.
|
|
@@ -109,10 +109,23 @@ natal-chart (Preview) ref=issue-39-transit-page-annual-profections-mock-up
|
|
|
109
109
|
https://ed9f21ad.natal-chart-3ew.pages.dev
|
|
110
110
|
```
|
|
111
111
|
|
|
112
|
-
The hash is not derivable from the branch name, and
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
112
|
+
The hash is not derivable from the branch name, and **there is no branch-alias
|
|
113
|
+
URL to fall back on** — measured 2026-08-29 against this project, aliasing is off
|
|
114
|
+
entirely, `main` included:
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
404 https://issue-56-transit-chart-add-a.natal-chart-3ew.pages.dev
|
|
118
|
+
404 https://main.natal-chart-3ew.pages.dev
|
|
119
|
+
200 https://f432dd47.natal-chart-3ew.pages.dev
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Note the domain too: it is `natal-chart-3ew.pages.dev`, while
|
|
123
|
+
`deploy-cloudflare.yml` says `projectName: natal-chart`. Cloudflare's `-3ew`
|
|
124
|
+
suffix is not derivable from anything coord holds, so a repo's preview host has
|
|
125
|
+
to be *read*, never *constructed* — see #2948, which is this exact assumption
|
|
126
|
+
shipped as a config template. Read it from the forge instead —
|
|
127
|
+
`cloudflare/pages-action` creates a GitHub Deployment per PR whose latest status
|
|
128
|
+
carries the real URL:
|
|
116
129
|
|
|
117
130
|
```bash
|
|
118
131
|
gh api "repos/{owner}/{repo}/deployments?ref={branch}" --jq '.[0].id'
|
|
@@ -122,21 +135,58 @@ gh api "repos/{owner}/{repo}/deployments/{id}/statuses" --jq '.[0].environment_u
|
|
|
122
135
|
Match on the **environment name** (`"<project> (Preview)"`), not on recency —
|
|
123
136
|
production deploys are hash URLs too and interleave with previews in that list.
|
|
124
137
|
|
|
125
|
-
### 2. A `uat` gate between Review and Merge · **
|
|
138
|
+
### 2. A `uat` gate between Review and Merge · **shipped (#2687) · ON for natal-chart since 2026-08-29**
|
|
126
139
|
|
|
127
|
-
|
|
128
|
-
`max_per_tick: 1`
|
|
129
|
-
green
|
|
130
|
-
pre-merge operator hold anywhere in coord
|
|
131
|
-
routing, and drive-queue's `--hold-after` (#1757) fires *after*
|
|
132
|
-
for an auto-deploying repo is after the customer can already
|
|
140
|
+
This was the gap that let everything else fail, and it is closed. Before it,
|
|
141
|
+
`merge.auto_drain: true` with `max_per_tick: 1` meant the daemon merged the
|
|
142
|
+
moment Test + Review + CI went green and the push to `main` fired production,
|
|
143
|
+
with **no per-repo, pre-merge operator hold anywhere in coord** — `coord pause`
|
|
144
|
+
only stops agent routing, and drive-queue's `--hold-after` (#1757) fires *after*
|
|
145
|
+
the merge, which for an auto-deploying repo is after the customer can already
|
|
146
|
+
see it.
|
|
133
147
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
148
|
+
`coord merge` now refuses a PR whose UAT verdict is missing or failed, printing
|
|
149
|
+
the preview URL and the exact command to clear it:
|
|
150
|
+
|
|
151
|
+
```
|
|
152
|
+
uat verdict missing — preview: <url> — run: coord uat <assignment-id> --passed
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
**Enabling it is a two-part opt-in, and one half alone does nothing:**
|
|
156
|
+
|
|
157
|
+
```yaml
|
|
158
|
+
pipeline:
|
|
159
|
+
default_gates: [test, review, uat, merge] # fleet-wide half — inert on its own
|
|
160
|
+
repos:
|
|
161
|
+
- name: natal-chart
|
|
162
|
+
uat_preview: "https://github.com/JDonaghy/natal-chart/pull/{pr_number}"
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
`coord.merge_queue.requires_uat` demands **both**, so listing `uat` fleet-wide is
|
|
166
|
+
safe: a repo without `uat_preview` never blocks, no matter what `default_gates`
|
|
167
|
+
says. Clear the gate with `coord uat <assignment-id> --passed|--failed` (an
|
|
168
|
+
assignment id, not repo/issue) — modelled on `coord test`.
|
|
169
|
+
|
|
170
|
+
**Two follow-ups are open, and both matter before you enable this for a second
|
|
171
|
+
repo:**
|
|
172
|
+
|
|
173
|
+
- **#2948 — `uat_preview` cannot build a working Cloudflare URL.** The
|
|
174
|
+
`{pr_branch_slug}` placeholder assumes branch aliases that this project does
|
|
175
|
+
not publish (see §1). It renders a plausible dead link and
|
|
176
|
+
`resolve_uat_preview_url` never raises, so the failure is silent. natal-chart's
|
|
177
|
+
template therefore points at the **PR page**, whose timeline carries the live
|
|
178
|
+
`natal-chart (Preview)` deployment — one click from the real build, and it
|
|
179
|
+
cannot 404.
|
|
180
|
+
- **#2947 — `coord drive` does not classify the gate.** `_merge_gate_kind`
|
|
181
|
+
knows `smoke`/`review`/`unknown_head` and returns `None` for a uat block, so an
|
|
182
|
+
unattended drive spends its merge attempts blind and lands the drive-queue
|
|
183
|
+
entry in terminal `blocked` rather than parking. Until it lands, expect to
|
|
184
|
+
`remove` + `add` the queue entry after recording the verdict.
|
|
185
|
+
|
|
186
|
+
The part #2687 called the deciding one — **the preview URL surfaced in `coord
|
|
187
|
+
status` and the TUI**, next to the command that clears the gate — is what #2947
|
|
188
|
+
and #2948 between them still owe. A gate that makes the operator go hunting for
|
|
189
|
+
the link will be routed around inside a week.
|
|
140
190
|
|
|
141
191
|
### 3. Sign-off reaches the customer without you relaying it · **partially built**
|
|
142
192
|
|
|
@@ -148,12 +198,27 @@ explicitly out of scope for #2588 and never filed.
|
|
|
148
198
|
Until it exists, step 3 is you, by hand, in the runbook below. That is fine at
|
|
149
199
|
one customer and does not survive two.
|
|
150
200
|
|
|
151
|
-
### 4. Visual regression baselines · **
|
|
201
|
+
### 4. Visual regression baselines · **shipped (natal-chart#47)**
|
|
152
202
|
|
|
153
203
|
So the human is the *second* line of defence, not the first. Screenshot the
|
|
154
204
|
core screens against a **fixed fixture** — one hardcoded chart, a frozen clock —
|
|
155
205
|
and diff them in CI.
|
|
156
206
|
|
|
207
|
+
Built as Playwright screenshot specs in `packages/web/e2e/`, with committed
|
|
208
|
+
baselines beside each spec:
|
|
209
|
+
|
|
210
|
+
```
|
|
211
|
+
packages/web/playwright.config.ts
|
|
212
|
+
packages/web/e2e/chart-wheel.spec.ts + chart-wheel.spec.ts-snapshots/chart-wheel-chromium-linux.png
|
|
213
|
+
packages/web/e2e/positions.spec.ts + positions.spec.ts-snapshots/positions-chromium-linux.png
|
|
214
|
+
packages/web/e2e/zr-tab.spec.ts + zr-tab.spec.ts-snapshots/zr-tab-chromium-linux.png
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
**A deliberate restyle of a covered screen therefore fails CI until its baseline
|
|
218
|
+
is re-recorded, and that is the harness working.** Say so in the issue when you
|
|
219
|
+
file one — a worker that reads a red baseline diff as a defect will spend fix
|
|
220
|
+
rounds trying to restore the look you asked it to change.
|
|
221
|
+
|
|
157
222
|
The honest caveat, worth stating because it is the trap: pixel diffing is flaky
|
|
158
223
|
across font rendering and browser versions, and **font fallback is exactly the
|
|
159
224
|
defect this is meant to catch**, so a tolerance loose enough to ignore font
|
|
@@ -206,33 +271,41 @@ the preview" is the control that already failed on 2026-08-23. This file
|
|
|
206
271
|
documents a *mechanism*; where the mechanism does not exist yet it says so, in
|
|
207
272
|
bold, with the issue number.
|
|
208
273
|
|
|
209
|
-
## The
|
|
210
|
-
|
|
211
|
-
For a customer-facing repo, right now, with no gate to help you:
|
|
274
|
+
## The runbook — a repo with the gate on
|
|
212
275
|
|
|
213
276
|
1. **Queue the work as normal** (`coord drive-queue add`). Nothing special.
|
|
214
|
-
2. **
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
277
|
+
2. **Wait for `coord merge` to refuse.** That refusal *is* the notification —
|
|
278
|
+
it names the gate, the preview link and the command. You are no longer racing
|
|
279
|
+
`auto_drain`; the merge cannot happen without your verdict.
|
|
280
|
+
3. **Get the real preview URL** with the two `gh api` calls in §1. Until #2948
|
|
281
|
+
lands the gate's own link points at the PR, so in practice: open the PR and
|
|
282
|
+
click the `natal-chart (Preview)` deployment in its timeline. The URL does not
|
|
283
|
+
exist the instant the PR opens; the preview build has to finish.
|
|
218
284
|
4. **Look at it yourself first.** Walk the screens the change touched. You will
|
|
219
285
|
catch most of it here, and it costs a minute.
|
|
220
|
-
5. **Send the customer the URL** and wait for a yes.
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
286
|
+
5. **Send the customer the URL** and wait for a yes. Through the portal, that is
|
|
287
|
+
`coord portal enqueue-preview <SUB-ID> <url>` then `coord portal
|
|
288
|
+
enqueue-status <SUB-ID> quality-check`, both on the daemon host, and her
|
|
289
|
+
answer arrives as a `preview.approved` / `preview.changes_requested` event
|
|
290
|
+
(`docs/CUSTOMER_PORTAL.md`).
|
|
291
|
+
6. **Record the verdict and let it merge:** `coord uat <assignment-id> --passed`.
|
|
292
|
+
|
|
293
|
+
**What is still weak, and why.** Nothing auto-fires off `preview.approved` — it
|
|
294
|
+
is not wired into `coord merge` or the merge queue, so step 6 remains a
|
|
295
|
+
deliberate human act. And per #2947 an unattended drive will have burned its
|
|
296
|
+
merge attempts against the block and parked the queue entry in terminal
|
|
297
|
+
`blocked` by the time you get here, so expect a `remove` + `add` after recording
|
|
298
|
+
the verdict.
|
|
299
|
+
|
|
300
|
+
**For a repo with the gate off, you cannot reliably hold a merge at all.**
|
|
301
|
+
`auto_drain` takes the PR as soon as its gates are green, whether or not you
|
|
302
|
+
have heard back. The available holds are all bad in different ways — draft the
|
|
303
|
+
PR on GitHub (targeted, but strands the merge-queue entry in
|
|
304
|
+
`NEEDS_ATTENTION`), or flip `merge.auto_drain: false` (a hard guarantee that
|
|
305
|
+
stalls auto-merge for every other repo in flight, and is easy to forget to
|
|
306
|
+
switch back). That is what the gate replaces, and it is not hypothetical: on
|
|
307
|
+
2026-08-24 natal-chart#42 merged and deployed to production *during the
|
|
308
|
+
conversation about how to review it before it shipped*.
|
|
236
309
|
|
|
237
310
|
## Adopting this for a new repo
|
|
238
311
|
|
|
@@ -242,7 +315,10 @@ production during the conversation about how to review it before it shipped.
|
|
|
242
315
|
per-deploy hashes.
|
|
243
316
|
3. Add the repo's visual-regression harness *before* the first customer-visible
|
|
244
317
|
feature, not after the first complaint. Fixed fixture, frozen clock.
|
|
245
|
-
4. Turn on the `uat` gate for the repo
|
|
318
|
+
4. Turn on the `uat` gate for the repo — the two-part opt-in in §2. Resolve its
|
|
319
|
+
`uat_preview` against a **real** deployment before you trust it (§1): a
|
|
320
|
+
template that renders a dead link is worse than no gate, because the operator
|
|
321
|
+
learns to waive it.
|
|
246
322
|
5. Point the repo's own `CLAUDE.md` at this file, and make sure its deployment
|
|
247
323
|
section is **true** — natal-chart's said "GitHub Pages" for a week after
|
|
248
324
|
production moved to Cloudflare (fixed in #47).
|
|
@@ -169,11 +169,21 @@ cat > "$UNIT_DIR/coord-agent.service" << UNIT
|
|
|
169
169
|
[Unit]
|
|
170
170
|
Description=Coordinator agent server (port $PORT)
|
|
171
171
|
After=network-online.target
|
|
172
|
+
# #2938: bound Restart=always below so a genuinely broken binary fails loud
|
|
173
|
+
# (systemd 'failed'/start-limit-hit) instead of crash-looping silently
|
|
174
|
+
# forever — see deploy/coord-agent.service's header for the full incident.
|
|
175
|
+
StartLimitIntervalSec=300
|
|
176
|
+
StartLimitBurst=5
|
|
172
177
|
|
|
173
178
|
[Service]
|
|
174
179
|
Type=simple
|
|
175
180
|
ExecStart=$VENV_DIR/bin/coord agent --machine $MACHINE_NAME --port $PORT
|
|
176
|
-
Restart=on-failure
|
|
181
|
+
# #2938: was Restart=on-failure. POST /update stops this process cleanly so
|
|
182
|
+
# it can come back on the swapped venv via an explicit self-restart
|
|
183
|
+
# (coord/agent_app.py); if that explicit restart is ever lost, on-failure
|
|
184
|
+
# never fires for a clean exit and the unit is gone for good, port 7433
|
|
185
|
+
# refused, no remote-control channel left. Restart=always is the backstop.
|
|
186
|
+
Restart=always
|
|
177
187
|
RestartSec=5
|
|
178
188
|
# #1671: include ~/.cargo/bin so a rustup-installed toolchain resolves to
|
|
179
189
|
# both this agent process (the "rust" capability probe, coord/prereqs.py)
|
|
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.297 → code_coordinator-0.5.298}/code_coordinator.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{code_coordinator-0.5.297 → code_coordinator-0.5.298}/code_coordinator.egg-info/entry_points.txt
RENAMED
|
File without changes
|
{code_coordinator-0.5.297 → code_coordinator-0.5.298}/code_coordinator.egg-info/requires.txt
RENAMED
|
File without changes
|
{code_coordinator-0.5.297 → code_coordinator-0.5.298}/code_coordinator.egg-info/scm_file_list.json
RENAMED
|
File without changes
|
{code_coordinator-0.5.297 → code_coordinator-0.5.298}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|