code-coordinator 0.5.267__tar.gz → 0.5.268__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.267 → code_coordinator-0.5.268}/PKG-INFO +1 -1
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/code_coordinator.egg-info/PKG-INFO +1 -1
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/code_coordinator.egg-info/scm_version.json +2 -2
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/drive.py +117 -8
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/drive_queue.py +23 -9
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/drive_state.py +25 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_drive.py +65 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_drive_queue.py +17 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_drive_state.py +38 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/.claude/commands/board.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/.claude/commands/complete-session.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/.claude/commands/coordinator.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/.githooks/_lib.sh +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/.githooks/post-checkout +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/.githooks/post-commit +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/.githooks/post-merge +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/.github/workflows/auto-release.yml +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/.github/workflows/cargo-test.yml +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/.github/workflows/publish.yml +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/.github/workflows/release-tui.yml +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/.github/workflows/test.yml +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/.gitignore +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/CLAUDE.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/GOAL.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/LICENSE +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/MANIFEST.in +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/README.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/code_coordinator.egg-info/SOURCES.txt +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/code_coordinator.egg-info/dependency_links.txt +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/code_coordinator.egg-info/entry_points.txt +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/code_coordinator.egg-info/requires.txt +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/code_coordinator.egg-info/scm_file_list.json +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/code_coordinator.egg-info/top_level.txt +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/__init__.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/_board_mapping.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/acceptance.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/acceptance_drivers.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/agent.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/agent_app.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/agent_update.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/agents/opencode/.gitignore +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/agents/opencode/agents/work.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/agents/opencode/routing.jsonc +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/approved_work.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/audit.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/auto_loop.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/block_log.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/board_bool_guard.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/board_schema.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/board_service.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/board_wire.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/brain.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/branch_model.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/bug_intake.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/cargo_cache.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/ci_fix.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/ci_github.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/ci_gitlab.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/ci_store.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/claim.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/cli.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/client.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/commands/__init__.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/commands/_common.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/commands/acceptance.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/commands/agent_ops.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/commands/audit.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/commands/chat.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/commands/dispatch.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/commands/dispatch_workers.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/commands/drive.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/commands/drive_queue.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/commands/gate_a.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/commands/gates.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/commands/issues.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/commands/lifecycle.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/commands/merge.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/commands/milestone.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/commands/plan_followup.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/commands/plans.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/commands/portal.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/commands/pr.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/commands/release.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/commands/repo.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/commands/report.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/commands/review.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/commands/scorecard.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/commands/sessions.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/commands/setup.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/commands/status.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/commands/terminal.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/commands/test_gate.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/commands/tui.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/comments.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/config.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/config_reload.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/confirm_test.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/conflict_fix.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/dao.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/dashboard/__init__.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/dashboard/fixture.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/dashboard/index.html +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/dashboard/server.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/dashboard/terminal.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/db.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/dead_end.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/decomposition_chat.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/deploy/README.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/deploy/coord-failure-notify.service +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/deploy/coord-fleet-watchdog.service +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/deploy/coord-fleet-watchdog.timer +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/deploy_manifest.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/deploy_units.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/deps.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/diagnose.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/dispatch.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/dist_name.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/events.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/failure_class.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/filelock.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/fleet_config_health.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/forge_availability.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/freshness.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/gate_a.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/gate_b.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/gate_snapshot.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/gates.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/github_ops.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/github_throttle.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/goal.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/graph_health.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/health/__init__.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/health/aggregate.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/health/checks/__init__.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/health/checks/agent_install.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/health/checks/cargo_targets.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/health/checks/claude_binary.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/health/checks/coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/health/checks/deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/health/checks/disk.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/health/checks/fleet_board.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/health/checks/fleet_deploy_lanes.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/health/checks/fleet_phantom.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/health/checks/fleet_unit_drift.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/health/checks/graph.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/health/checks/graphify_cli.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/health/checks/index_lock.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/health/checks/issues_sync_staleness.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/health/checks/plan_usage.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/health/checks/release_cordon.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/health/checks/repo_state.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/health/checks/spawned_coord.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/health/checks/stalled_pipeline.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/health/checks/timer_active.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/health/checks/toolchain.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/health/checks/unit_drift.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/health/checks/unit_enablement.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/health/checks/worktrees.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/health/cli.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/health/context.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/health/fleet_snapshot.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/health/models.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/health/pypi.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/health/registry.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/health/render.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/health/units.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/hooks.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/housekeeping.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/interactive.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/issue_store.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/issues_sync_status.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/liveness_auditor.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/machine_pause.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/merge_queue.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/milestone_chat.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/milestone_dispatch.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/milestone_gate.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/milestone_order.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/mock_author.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/models.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/network.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/new_issue_chat.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/notifier/__init__.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/notifier/baseline.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/notifier/cli.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/notifier/collect.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/notifier/digest.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/notifier/models.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/notifier/predicate.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/notifier/service.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/notifier/store.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/notifier/transport.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/notify.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/openapi.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/overlap_fence.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/overlap_predict.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/parentage.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/parentage_github.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/pipeline.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/plan_parser.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/plans.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/platform_paths.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/portal_bridge.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/portal_store.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/portal_sync.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/pr_body_lint.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/prereqs.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/progress.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/providers/__init__.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/providers/base.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/providers/claude.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/providers/claude_pty.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/providers/opencode.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/queue_diagnose.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/reconcile.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/reconcile_tick.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/refine_chat.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/release_cordon.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/release_propagate.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/release_verify.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/release_window.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/repo_edit.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/repo_onboard.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/reports.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/revalidate.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/review.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/scorecard.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/self_health.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/serve_app.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/skills/coord-dispatch-verbs/SKILL.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/skills/drive-queue-preflight/SKILL.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/skills/fleet-restart-safety/SKILL.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/skills/merge-stuck-triage/SKILL.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/skills/pipeline-limbo-triage/SKILL.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/skills/portal-followup/SKILL.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/skills/release-now/SKILL.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/skills/review-verdict-recovery/SKILL.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/skills/tui-quadraui-workflow/SKILL.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/skills/update-issue/SKILL.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/smoke.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/spend_ceiling.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/split_work.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/sql.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/stage_projection.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/state.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/test_author.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/test_chat.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/test_orchestrator.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/test_report.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/tui_release.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/usage.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/usage_limits.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/usage_rollup.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coord/worker_events.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/coordinator.example.yml +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/deploy/coord-failure-notify.service +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/deploy/coord-failure-notify.sh +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/deploy/coord-fleet-watchdog.service +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/deploy/coord-fleet-watchdog.timer +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/deploy/coord-web-dist-build.sh +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/deploy/coord-web-rollback.sh +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/deploy/node-shim.sh +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/ADR_COORD_WEB_ACCEPTANCE_SUITE.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/ADR_COORD_WEB_CI.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/ADR_COORD_WEB_DIST.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/AGENT_OPERATIONS.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/ARCHITECTURE.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/ARCH_SECURITY_GATES.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/COCKPIT.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/COST_DISCIPLINE.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/CROSS_PLATFORM.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/CUSTOMER_FACING_APPS.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/CUSTOMER_PORTAL.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/DRIVE_QUEUE.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/EPHEMERAL_WORKERS.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/FORGE_MIGRATION.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/GRAPHIFY_SETUP.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/ISSUE_GUIDANCE.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/MAC_MINI.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/NOTIFIER.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/OPENCODE_VERIFICATION.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/OPERATING_GOTCHAS.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/OPERATOR_GUIDES.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/ORACLE_LOOP.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/PHONE_WEBAPP.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/PIPELINE_V2.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/PLATFORM_EVOLUTION.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/SECOND_BACKEND.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/STORE_SERVICE.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/TEST_FIRST_BUG_LANE.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/WEB_CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/WSL_WINDOWS_WORKER.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/mocks/web/README.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/mocks/web/_tokens.css +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/mocks/web/issue-detail.html +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/mocks/web/pipeline-narrow.html +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/docs/mocks/web/pipeline-wide.html +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/graphify-out/.gitignore +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/install-agent.sh +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/pyproject.toml +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/scripts/audit_review_verdict_overrides.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/scripts/azure-workers/bootstrap-shared.sh +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/scripts/azure-workers/build-worker-image.sh +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/scripts/azure-workers/coordinator-machine.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/scripts/azure-workers/epic-down.sh +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/scripts/azure-workers/epic-up.sh +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/scripts/azure-workers/preflight.sh +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/scripts/azure-workers/provision-worker.sh +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/scripts/azure-workers/tailnet-acl.hujson +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/scripts/azure-workers/verify-github-token.sh +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/scripts/check_gh_argv_containment.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/scripts/codegen.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/scripts/coord-test-runner.sh +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/scripts/coord-venv-rollback.sh +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/scripts/drive-batch.sh +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/scripts/fleet_watchdog.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/scripts/gen_board_fixture.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/scripts/gen_mock_index.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/scripts/next_release_tag.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/scripts/run_tests_in_populated_home.sh +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/scripts/run_tests_without_gh.sh +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/scripts/smoke_437_interactive.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/scripts/verify_878_review_capture.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/scripts/verify_release_published.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/scripts/verify_release_wheel.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/setup.cfg +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/SMOKE_SET.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/__init__.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-33/audit_1039.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-33/contract.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-33/manifest.yml +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-33/mocks/audit-panel-detail.screen +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-33/mocks/audit-panel-empty.screen +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-33/mocks/audit-panel-filters.screen +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-33/mocks/audit-panel-populated.screen +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-37/conftest.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-37/contract.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-37/manifest.yml +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-38/contract.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-38/manifest.yml +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-38/mocks/plans-base.screen +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-38/mocks/plans-detail-pane.screen +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-38/mocks/plans-help-overlay.screen +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-38/mocks/plans-palette.screen +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-38/mocks/plans-rightclick-epic.screen +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-38/mocks/plans-rightclick-header.screen +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-38/mocks/plans-rightclick-stub.screen +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-38/plans_detail_1122.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-38/plans_help_1124.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-38/plans_rightclick_1123.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-51/contract.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-51/manifest.yml +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-51/tsconfig.json +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-65/board_split_2288.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-65/board_tabs_2282.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-65/board_tabs_close_2283.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-65/contract.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-65/detail_substate_2285.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-65/manifest.yml +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-65/mocks/board-baseline-no-tabs.screen +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-65/mocks/board-pinned-3-tabs.screen +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-65/mocks/board-preview-tab.screen +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-65/mocks/board-split-side-by-side.screen +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-65/mocks/board-tab-context-menu.screen +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-65/mocks/board-tabs-help-overlay.screen +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-65/mocks/board-tabs-overflow.screen +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-65/mocks/pipeline-tabs-independent.screen +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-65/pipeline_tabs_2284.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-65/tabs_discoverability_2287.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-65/tabs_persistence_2286.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-67/approved_items_2532.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-67/contract.md +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-67/manifest.d/2533.yml +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-67/manifest.yml +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-67/mocks/approved-items-chat-opened.screen +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-67/mocks/approved-items-context-menu.screen +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-67/mocks/approved-items-detail.screen +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-67/mocks/approved-items-empty.screen +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-67/mocks/approved-items-populated.screen +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-67/pull_decomposition_2533.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/conftest.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/fixtures/board-pipeline-basic.json +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/fixtures/opencode_run_sample.jsonl +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/fixtures/playwright/all_pass.json +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/fixtures/playwright/global_setup_crash.json +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/fixtures/playwright/mixed_fail.json +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/fixtures/playwright/retry_then_pass.json +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/fixtures/playwright/skip.json +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/fixtures/playwright/truncated.json +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_acceptance.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_acceptance_drivers.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_agent.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_agent_api_error.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_agent_app.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_agent_branch_base.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_agent_branch_capture.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_agent_config_free_1712.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_agent_deploy_units_endpoint.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_agent_dirty_worktree.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_agent_drive_queue_reconcile_2373.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_agent_graph_self_heal.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_agent_health_h3.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_agent_idle_restart.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_agent_push_failure.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_agent_reap.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_agent_repos_and_pull.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_agent_restart_services_endpoint.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_agent_skills_self_heal.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_agent_startup_diagnostics.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_agent_update.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_agent_update_bluegreen.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_agent_usage_limit.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_agent_zero_commit.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_ambient_home_isolation.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_approve_dependency_busy_2804.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_approve_reject_plan.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_approve_usage_gate.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_approved_work_2532.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_assignment_already_recorded_daemon.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_audit_log.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_audit_outcome.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_audit_query.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_auto_loop.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_auto_release_publish_2035.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_base_checkout_restore.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_block_log.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_board_cap_762.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_board_fixture.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_board_read_path.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_board_schema.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_board_service.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_board_state.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_board_wire.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_brain.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_branch_model.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_bug_intake.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_build_worker_image_env_update.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cargo_cache.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_check_gh_argv_containment.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_ci_acceptance_gate_1950.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_ci_fix.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_ci_gitlab.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_ci_parity_2091.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_ci_store.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_claim.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_claude_md_budget.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_acceptance.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_assign.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_assign_interactive_remote.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_assign_provider.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_assign_repo_drift_2219.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_audit.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_chat_continue.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_decide.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_diagnose_config_provenance.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_diagnose_forge_availability.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_diagnose_graph.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_diagnose_self.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_doctor.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_doctor_config_free_1801.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_drive.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_drive_queue.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_escalate.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_fix_headless_review.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_gate_a.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_install_drift.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_install_skills.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_issue_comment.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_issue_create_label.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_issue_reopen.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_issue_view_list.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_merge.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_milestone_assign.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_milestone_capture.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_milestone_chat_add_child.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_milestone_gate_b.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_milestone_gate_c.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_milestone_order.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_milestone_ship.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_network.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_new_issue_chat.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_plans.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_portal.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_pr.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_pull_artifact.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_queue.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_reattach_sessions.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_refine_board.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_release_preflight.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_release_propagate.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_release_window.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_repo_2220.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_review_test_author_tracking_epic_2639.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_scorecard.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_set_review_findings.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_status_advisory_terminal.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_status_contested_tag.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_status_merge_queue.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_status_provider.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_status_review_finalizing.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_status_test_failed_tag.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_status_usage_limit.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_sync_comments_873.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_test_plan.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_track.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_tui_update.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cli_wait.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_client_base_install.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_commands_common.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_comments.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_completion_summary.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_config.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_config_acceptance.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_config_audit.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_config_pricing.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_config_usage_gate.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_confirm_test.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_conflict_fix.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_conflict_fix_semantic.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_coord_log_daemon_fallback_2547.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_coord_test.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_coord_test_runner_baseline.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_coord_test_runner_populated_home.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_coord_test_runner_routing.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_coord_test_runner_toolchain.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_coord_uat.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_coord_web_sse_restart_live.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_coordinator_machine.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_cross_platform_imports.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_dao.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_dashboard.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_dashboard_fixture.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_dashboard_terminal.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_dashboard_terminal_live.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_db.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_dead_end.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_decomposition_chat.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_deploy_coord_db_backup.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_deploy_coord_web_dist.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_deploy_coord_web_rollback.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_deploy_drive_queue_unit.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_deploy_failure_notify_unit.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_deploy_manifest.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_deploy_notify_unit.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_deploy_units_lane.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_deploy_web_unit.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_deps.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_diagnose.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_dispatch.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_dispatch_target_validation.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_dist_name.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_done_housekeeping.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_drive_queue_blocked_rendering.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_drive_queue_launch_argv.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_drive_queue_max_parallel_per_repo_config.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_drive_queue_roll_pending.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_drive_queue_self_cordon_escalation.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_drive_tmux.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_epic_up_capability_detection.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_epic_up_image_provenance.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_errors.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_events.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_failure_class.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_filelock.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_fix_of_force_override.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_fleet_config_health.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_fleet_health_probes.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_fleet_health_snapshot.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_fleet_watchdog.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_forge_availability.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_freshness.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_gate_a.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_gate_b.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_gate_snapshot_staleness.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_gates.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_gather_fleet_tmux_sessions.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_gen_mock_index.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_generated_rust_fixture.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_generated_types_fixture.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_github_ops.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_github_throttle.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_goal.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_graph_health.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_graph_selfheal_absent_2237.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_handoff.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_health_checks.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_health_cli.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_health_cli_graph.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_health_config.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_health_context.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_health_coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_health_deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_health_fix.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_health_incident_regression.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_health_issues_sync_staleness.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_health_pypi.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_health_registry.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_health_release_cordon_probe.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_health_timer_active.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_health_toolchain.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_health_unit_drift.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_health_unit_enablement.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_hooks.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_human_attended_437.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_init.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_integration.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_interactive_briefing_echo.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_interactive_pane_log_2541.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_interactive_prefill_state.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_interactive_session_relaunch.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_interactive_test_verdict_backstop.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_interactive_token_attribution.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_interactive_worktree.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_issue_store_seam.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_issues_sync_status.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_liveness_auditor.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_liveness_notify.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_lock_contention_ratchet.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_machine_pause.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_merge_queue.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_merge_verify.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_milestone_chat.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_milestone_gate.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_milestone_order.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_milestone_seam.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_mock_author.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_model_tiering.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_models.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_models_config_labels.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_needs_attention.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_network.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_new_issue_chat.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_next_release_tag.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_node_shim.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_notifier_baseline.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_notifier_cli.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_notifier_collect.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_notifier_config.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_notifier_drive_seam.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_notifier_isolation.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_notifier_predicate.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_notifier_quiet_hours.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_notifier_service.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_notify.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_notify_drain.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_openapi.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_operational_defaults.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_overlap_fence.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_overlap_predict.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_packaged_deploy_units.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_parentage.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_paste_landed.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_phantom_heal_venv_independence_2570.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_pipeline.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_plan_followup_approve_plan_command.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_plan_followup_pr_command.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_plan_followup_review_command.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_plan_only.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_plan_parser.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_platform_paths.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_portal_bridge.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_portal_config.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_portal_store.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_portal_sync.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_pr_body_lint.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_prereqs.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_production_db_guard.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_progress.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_provider_seam.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_providers.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_providers_config_labels.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_providers_pty.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_quiet_hours.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_quiet_hours_store_2146.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_reap_merged_sessions.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_reap_stale_interactive_tick.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_reconcile.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_reconcile_branch.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_reconcile_completions.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_reconcile_late_agent_reports_2547.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_reconcile_merges.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_reconcile_no_agent_record.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_reconcile_tick.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_reconcile_usage_limit_done.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_refine_chat.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_release_cordon_2101.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_release_cordon_deadlock_2240.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_release_cordon_stuck_2490.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_release_propagate.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_release_propagate_threshold.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_release_roll_between_legs_2854.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_release_roll_window_handoff.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_release_unified_1242.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_release_verify.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_release_window.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_remote_auto_prune.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_remote_interactive_reaper.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_repo_add.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_repo_edit_2220.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_repo_graph_fleet_2237.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_repo_onboard_2220.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_report_result_push.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_reports.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_retry.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_retry_advisory_1606.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_retry_type_1636.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_revalidate.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_review.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_review_end_review_without_verdict.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_review_parse_failure_diagnostic.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_review_reaffirm.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_review_state.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_review_verdict_backstop.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_review_verdict_override_audit.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_review_verdict_relay.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_review_zero_commits.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_scoped_review_wiring.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_scorecard.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_self_health.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_serve.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_serve_app_board_trim.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_session.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_slice_issue_attribution.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_smoke.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_smoke_live_checkout_restore.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_smoke_workflow.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_spend_ceiling.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_spend_ceiling_coordinator.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_split.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_split_work.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_sql_dialect.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_stage_projection.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_stalled_pipeline.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_state.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_state_review_findings_daemon.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_status_fleet_footer.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_stop_1567.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_store_contract.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_stuck.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_stuck_test_state_watchdog_2803.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_terminal_command.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_test_author.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_test_chat.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_test_orchestrator.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_test_report.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_test_verdict_parsing.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_test_verdict_transcript_floor.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_text_io_encoding_audit.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_thin_client_board_audit.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_thin_client_config_load_1080.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_thin_client_daemon_routing_906.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_tmux_host.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_tmux_session.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_transcript_floor.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_usage.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_usage_limits.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_usage_rollup.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_venv_live_install_2121.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_version_single_source.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_watch.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_worker_env_venv_isolation.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_worker_events.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_worker_image_pin_sync.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_worker_safety.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_worker_test_scoping.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_worktree.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tests/test_worktree_rmtree_chokepoint.py +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/Cargo.lock +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/Cargo.toml +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/cargo-config-local-quadraui.toml.example +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/src/app/approved.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/src/app/audit.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/src/app/chat.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/src/app/data.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/src/app/dialogs.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/src/app/doc_tabs.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/src/app/drive.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/src/app/drive_queue.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/src/app/escalation.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/src/app/events.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/src/app/fixtures.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/src/app/fleet_health.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/src/app/fleet_sessions.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/src/app/fleet_terminals.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/src/app/format.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/src/app/milestone_dag.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/src/app/mod.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/src/app/msv.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/src/app/pipeline.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/src/app/plans.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/src/app/render.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/src/app/reports.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/src/app/sessions.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/src/app/settings_ui.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/src/app/sidebar.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/src/app/terminal.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/src/app/tests.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/src/app/types/generated.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/src/app/types.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/src/app/workspace.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/src/bin/gtk.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/src/commands.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/src/lib.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/src/main.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/src/settings.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/tests/acceptance.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/tests/cli.rs +0 -0
- {code_coordinator-0.5.267 → code_coordinator-0.5.268}/tui/tests/fixtures/board_sample.json +0 -0
|
@@ -587,6 +587,14 @@ class Action:
|
|
|
587
587
|
# the work row's own last attempt reported, or `_decide_merge` would
|
|
588
588
|
# diagnose one PR using the other PR's gates.
|
|
589
589
|
merge_scope: str = "work"
|
|
590
|
+
# #2871: an explicit ``(event_type, summary, details)`` for `Driver._loop`
|
|
591
|
+
# to write via `_record_drive_audit`, independent of whatever this Action
|
|
592
|
+
# otherwise does (WAIT/RUN/EXIT). `decide()` stays a pure function of its
|
|
593
|
+
# inputs — it hands back *what happened*, never writes the audit log
|
|
594
|
+
# itself — while still letting a poll that neither dispatches nor exits
|
|
595
|
+
# (e.g. bypassing a stale pre-dispatch refusal) leave a durable trail
|
|
596
|
+
# instead of only a run-log line nobody queries later.
|
|
597
|
+
audit_event: tuple[str, str, dict[str, Any]] | None = None
|
|
590
598
|
|
|
591
599
|
@property
|
|
592
600
|
def is_exit(self) -> bool:
|
|
@@ -605,6 +613,44 @@ def _die(message: str, exit_code: int = EXIT_TERMINAL_FAILURE) -> Action:
|
|
|
605
613
|
return Action(kind=EXIT, message=message, exit_code=exit_code)
|
|
606
614
|
|
|
607
615
|
|
|
616
|
+
def _format_age(seconds: float) -> str:
|
|
617
|
+
"""Coarse human age ('38m', '15h', '1.2d') for a pre-dispatch audit note.
|
|
618
|
+
|
|
619
|
+
Deliberately not the CLI's full relative-time renderer — this is one
|
|
620
|
+
field inside an audit `summary`/`details`, not a UI surface, so a small
|
|
621
|
+
self-contained formatter is enough (#2871).
|
|
622
|
+
"""
|
|
623
|
+
seconds = max(0.0, seconds)
|
|
624
|
+
if seconds < 3600:
|
|
625
|
+
return f"{int(seconds // 60)}m"
|
|
626
|
+
if seconds < 86400:
|
|
627
|
+
return f"{seconds / 3600:.0f}h"
|
|
628
|
+
return f"{seconds / 86400:.1f}d"
|
|
629
|
+
|
|
630
|
+
|
|
631
|
+
def _refused_policy_is_stale(state: IssueState) -> bool:
|
|
632
|
+
"""True when a terminal ``refused_policy`` work row no longer describes
|
|
633
|
+
the issue as it stands now (#2871).
|
|
634
|
+
|
|
635
|
+
A worker refuses pre-dispatch work exactly once, correctly, for the ask
|
|
636
|
+
it was shown — the refusal says nothing about a DIFFERENT ask on the same
|
|
637
|
+
issue number. If the issue was retargeted (title rewritten) after that
|
|
638
|
+
row finished, the branch it would have produced (workers name branches
|
|
639
|
+
``issue-{N}-{slugify(title)}`` at dispatch time, see
|
|
640
|
+
``coord.agent``'s ``branch_name`` construction) no longer matches what a
|
|
641
|
+
fresh dispatch would name — that mismatch is the signal a retarget
|
|
642
|
+
happened. Conservative on every uncertainty (no branch recorded, no
|
|
643
|
+
title resolved): returns ``False`` — i.e. still treated as blocking —
|
|
644
|
+
rather than risk waving a genuinely-unresolved refusal through.
|
|
645
|
+
"""
|
|
646
|
+
if not state.work_branch or not state.issue_title:
|
|
647
|
+
return False
|
|
648
|
+
from coord.agent import _slugify # noqa: PLC0415
|
|
649
|
+
|
|
650
|
+
expected_branch = f"issue-{state.issue}-{_slugify(state.issue_title)}"
|
|
651
|
+
return state.work_branch != expected_branch
|
|
652
|
+
|
|
653
|
+
|
|
608
654
|
# ── oracle-loop JIT slice authoring (#1453) ─────────────────────────────────
|
|
609
655
|
|
|
610
656
|
|
|
@@ -2036,8 +2082,58 @@ def decide(
|
|
|
2036
2082
|
# deliverable was a doc edit, which CLAUDE.md itself tells a worker
|
|
2037
2083
|
# to refuse and stop rather than attempt). Unlike an ADVISORY 0-commit
|
|
2038
2084
|
# exit, retrying changes nothing — the rule this worker cited is not
|
|
2039
|
-
# going anywhere —
|
|
2040
|
-
#
|
|
2085
|
+
# going anywhere — UNLESS the issue itself has since changed.
|
|
2086
|
+
#
|
|
2087
|
+
# #2871: a refusal is a verdict on the ASK the worker was shown, not
|
|
2088
|
+
# a standing veto on the issue NUMBER forever. `coord/claim.py`'s
|
|
2089
|
+
# `find_work_claim` never even sees this row (it's terminal, so it
|
|
2090
|
+
# lives in `board.completed`) — the reason a stale refusal blocks
|
|
2091
|
+
# every later drive is entirely HERE: `work_aid`/`work_status` above
|
|
2092
|
+
# are the latest work-like row for this issue regardless of how old
|
|
2093
|
+
# or how differently-scoped it is, so a fresh `coord drive` launch
|
|
2094
|
+
# reads the fossil row as "this run's" state before ever reaching
|
|
2095
|
+
# `_dispatch_work_stage`. If the issue was retargeted (title
|
|
2096
|
+
# rewritten) after this row finished, `_refused_policy_is_stale`
|
|
2097
|
+
# detects it — the old refusal no longer describes what a fresh
|
|
2098
|
+
# dispatch would even be asked to do — and this bypasses the veto
|
|
2099
|
+
# instead of dying again on the SAME prose a fresh worker never
|
|
2100
|
+
# produced this run (CC#916).
|
|
2101
|
+
age_seconds = (
|
|
2102
|
+
time.time() - state.work_finished_at
|
|
2103
|
+
if state.work_finished_at is not None
|
|
2104
|
+
else None
|
|
2105
|
+
)
|
|
2106
|
+
age = _format_age(age_seconds) if age_seconds is not None else "unknown age"
|
|
2107
|
+
if _refused_policy_is_stale(state):
|
|
2108
|
+
bypass_summary = (
|
|
2109
|
+
f"pre-dispatch: bypassing stale refused_policy assignment "
|
|
2110
|
+
f"{state.work_aid} ({age} old) on issue {state.repo}#{state.issue} "
|
|
2111
|
+
f"— retargeted since (branch {state.work_branch!r} no longer "
|
|
2112
|
+
"matches the issue's current title); dispatching fresh work (#2871)"
|
|
2113
|
+
)
|
|
2114
|
+
dispatch = _dispatch_work_stage(
|
|
2115
|
+
state, opts, counters, machine, oracle, gate_checker, verifier
|
|
2116
|
+
)
|
|
2117
|
+
return replace(
|
|
2118
|
+
dispatch,
|
|
2119
|
+
audit_event=(
|
|
2120
|
+
"refused_policy_stale",
|
|
2121
|
+
bypass_summary,
|
|
2122
|
+
{
|
|
2123
|
+
"stale_assignment_id": state.work_aid,
|
|
2124
|
+
"stale_branch": state.work_branch,
|
|
2125
|
+
"age_seconds": age_seconds,
|
|
2126
|
+
},
|
|
2127
|
+
),
|
|
2128
|
+
)
|
|
2129
|
+
# Still genuinely blocking: `_die()` exactly like every other
|
|
2130
|
+
# terminal branch here, but the message now says explicitly that
|
|
2131
|
+
# THIS run refused pre-dispatch on an OLD row (naming it and its
|
|
2132
|
+
# age) rather than reading as a fresh worker refusing again — and
|
|
2133
|
+
# names the remedy that actually clears it (#2871: retargeting is
|
|
2134
|
+
# what makes the branch above fire on the next drive; `coord
|
|
2135
|
+
# drive-queue remove`+`add` alone does nothing, since the queue row
|
|
2136
|
+
# was never what was blocking). The message still embeds
|
|
2041
2137
|
# `POLICY_REFUSAL_MARKER`: `coord/drive_queue.py`'s
|
|
2042
2138
|
# `_reconcile_running` recognises that marker in this run's own
|
|
2043
2139
|
# `drive_exited` audit summary and parks the queue entry
|
|
@@ -2046,12 +2142,16 @@ def decide(
|
|
|
2046
2142
|
# principle #1844 already applies pre-dispatch, applied here
|
|
2047
2143
|
# post-dispatch.
|
|
2048
2144
|
return _die(
|
|
2049
|
-
f"
|
|
2050
|
-
"
|
|
2051
|
-
"
|
|
2052
|
-
"
|
|
2053
|
-
|
|
2054
|
-
|
|
2145
|
+
f"pre-dispatch refusal on assignment {state.work_aid} "
|
|
2146
|
+
f"(refused_policy, {age} old) — work refused on a standing "
|
|
2147
|
+
"repo-rule prohibition rather than doing the dispatched work; "
|
|
2148
|
+
"the worker did the CORRECT thing (#2234). Needs the "
|
|
2149
|
+
"coordinator: do the work directly, OR retarget the issue "
|
|
2150
|
+
"(rewrite its title so the deliverable matches what should "
|
|
2151
|
+
"actually be dispatched) — the next `coord drive` detects the "
|
|
2152
|
+
"retarget and dispatches fresh work automatically (#2871), so "
|
|
2153
|
+
f"`coord drive-queue remove {state.repo} {state.issue}` + `add` "
|
|
2154
|
+
"then genuinely clears this once the issue is retargeted.\n"
|
|
2055
2155
|
f" inspect: coord log {state.work_aid} --machine "
|
|
2056
2156
|
f"{state.work_machine or machine}\n"
|
|
2057
2157
|
f" {POLICY_REFUSAL_MARKER}"
|
|
@@ -4680,6 +4780,15 @@ class Driver:
|
|
|
4680
4780
|
for warning in action.warnings:
|
|
4681
4781
|
self.warn(warning)
|
|
4682
4782
|
|
|
4783
|
+
# #2871: `decide()` stays a pure function of its inputs — it
|
|
4784
|
+
# cannot write the audit log itself — so an Action that carries
|
|
4785
|
+
# its own audit note (e.g. bypassing a stale pre-dispatch
|
|
4786
|
+
# refusal) gets recorded here, the one place this loop already
|
|
4787
|
+
# writes durable `drive_*` audit rows.
|
|
4788
|
+
if action.audit_event is not None:
|
|
4789
|
+
event_type, summary, details = action.audit_event
|
|
4790
|
+
self._record_drive_audit(event_type, summary, details=details)
|
|
4791
|
+
|
|
4683
4792
|
# #2443: self-heal — see `_self_heal_drift_message`. Tracked off
|
|
4684
4793
|
# the Action's own `label`, NOT `fingerprint` above: a WAIT can
|
|
4685
4794
|
# (and, in the #2286 shape, does) repeat the identical reason
|
|
@@ -3107,18 +3107,32 @@ def _reconcile_running(
|
|
|
3107
3107
|
# _decide` marks a `refused_policy` work row with `POLICY_REFUSAL_
|
|
3108
3108
|
# MARKER` (coord.models) rather than `EXIT_DISPATCH_REFUSED`, so this is
|
|
3109
3109
|
# checked purely off `own_reason` text, independent of `exit_refused`.
|
|
3110
|
-
# Unlike #2063 this
|
|
3111
|
-
# STANDING rule, not a pending verdict — so it
|
|
3112
|
-
# the "queue resumes it automatically" wording
|
|
3113
|
-
# `plan_tick`'s pre-pass below, which recognises
|
|
3114
|
-
# leaves the entry parked rather than falling
|
|
3115
|
-
# auto-resume.
|
|
3116
|
-
#
|
|
3110
|
+
# Unlike #2063 this does not self-clear on its own timer — a policy
|
|
3111
|
+
# refusal names a STANDING rule, not a pending verdict — so it
|
|
3112
|
+
# deliberately does not get the "queue resumes it automatically" wording
|
|
3113
|
+
# Gate-A's park does; see `plan_tick`'s pre-pass below, which recognises
|
|
3114
|
+
# this same marker and leaves the entry parked rather than falling
|
|
3115
|
+
# through to the CI-park auto-resume.
|
|
3116
|
+
#
|
|
3117
|
+
# #2871: the precondition IS an operator action, but it is a RETARGET
|
|
3118
|
+
# (rewrite the issue so its deliverable isn't the coordinator-only thing
|
|
3119
|
+
# that got refused), not queue surgery. Before #2871, `coord.drive.
|
|
3120
|
+
# decide()` re-read the SAME stale `refused_policy` row on every relaunch
|
|
3121
|
+
# regardless of what the issue said by then, so `remove`+`add` looked
|
|
3122
|
+
# like the fix but did nothing — a fresh queue row, same blocking
|
|
3123
|
+
# assignment. `decide()` now compares that row's branch against the
|
|
3124
|
+
# issue's CURRENT title-derived slug (`_refused_policy_is_stale`) and
|
|
3125
|
+
# bypasses a stale refusal instead of dying on it again, so `remove`+
|
|
3126
|
+
# `add` (or any later relaunch) genuinely works — but only once the
|
|
3127
|
+
# retarget has actually happened.
|
|
3117
3128
|
if own_reason and is_policy_refusal_reason(own_reason):
|
|
3118
3129
|
reason = (
|
|
3119
3130
|
f"{own_reason} — parking without spending an attempt (#2234); "
|
|
3120
|
-
"needs the coordinator, not a relaunch —
|
|
3121
|
-
"
|
|
3131
|
+
"needs the coordinator, not a relaunch — retarget the issue "
|
|
3132
|
+
"(rewrite its title so the deliverable isn't coordinator-only), "
|
|
3133
|
+
"then `coord drive-queue remove`+`add` (or just relaunch "
|
|
3134
|
+
"`coord drive`) — it now detects the retarget and dispatches "
|
|
3135
|
+
"fresh work automatically (#2871)"
|
|
3122
3136
|
)
|
|
3123
3137
|
return (
|
|
3124
3138
|
Reconcile(
|
|
@@ -111,6 +111,13 @@ class IssueState:
|
|
|
111
111
|
work_acceptance_state: str = ""
|
|
112
112
|
work_acceptance_reason: str = ""
|
|
113
113
|
work_acceptance_sha: str = ""
|
|
114
|
+
# #2871: when the work row went terminal — ``None`` for a row still
|
|
115
|
+
# running/pending or predating this column. Paired with `issue_title`
|
|
116
|
+
# below so `decide()` can tell a genuinely-still-blocking
|
|
117
|
+
# `refused_policy` row apart from one whose issue was retargeted
|
|
118
|
+
# (title rewritten) after it finished, and can name the row's age in
|
|
119
|
+
# whatever it reports instead of silently re-quoting stale prose.
|
|
120
|
+
work_finished_at: float | None = None
|
|
114
121
|
|
|
115
122
|
review_aid: str = ""
|
|
116
123
|
review_status: str = ""
|
|
@@ -181,6 +188,13 @@ class IssueState:
|
|
|
181
188
|
# `oracle:exempt`/`manifest.exempt` opt-out for the trust gate
|
|
182
189
|
# (`AcceptanceGateChecker.is_issue_exempt`) without a second board scan.
|
|
183
190
|
issue_labels: tuple[str, ...] = ()
|
|
191
|
+
# #2871: this issue's CURRENT GitHub title — resolved from the same
|
|
192
|
+
# `/board` `issues` row `issue_labels` is, no extra I/O. Compared
|
|
193
|
+
# against a terminal `refused_policy` work row's branch (workers name
|
|
194
|
+
# branches `issue-{N}-{slugify(title)}` at dispatch time) to detect a
|
|
195
|
+
# retarget: an issue whose deliverable was rewritten after the worker
|
|
196
|
+
# refused no longer matches the branch that refusal was about.
|
|
197
|
+
issue_title: str = ""
|
|
184
198
|
|
|
185
199
|
# The JIT slice's own `type="test-author"` assignment (#1171: keyed on
|
|
186
200
|
# `for_issue_number == issue`, NOT `issue_number` — that field is the
|
|
@@ -355,6 +369,13 @@ def project(payload: dict, repo: str, issue: int, config: Any) -> IssueState:
|
|
|
355
369
|
return default if value is None else value
|
|
356
370
|
|
|
357
371
|
exit_code = (work or {}).get("exit_code")
|
|
372
|
+
finished_at_raw = (work or {}).get("finished_at")
|
|
373
|
+
try:
|
|
374
|
+
work_finished_at = (
|
|
375
|
+
float(finished_at_raw) if finished_at_raw is not None else None
|
|
376
|
+
)
|
|
377
|
+
except (TypeError, ValueError):
|
|
378
|
+
work_finished_at = None
|
|
358
379
|
|
|
359
380
|
# #1453: oracle-loop JIT slice resolution — both reads are over data
|
|
360
381
|
# already published on /board, no extra I/O (see IssueState's docstring
|
|
@@ -368,10 +389,12 @@ def project(payload: dict, repo: str, issue: int, config: Any) -> IssueState:
|
|
|
368
389
|
# instead of discovering a mismatch only when #1711's dispatch-time
|
|
369
390
|
# guard refuses it. No extra I/O: `issues` is already part of *payload*.
|
|
370
391
|
issue_labels: list[str] = []
|
|
392
|
+
issue_title = ""
|
|
371
393
|
for oi in payload.get("issues") or []:
|
|
372
394
|
if oi.get("repo_name") == repo and oi.get("number") == issue:
|
|
373
395
|
milestone_number = oi.get("milestone_number")
|
|
374
396
|
issue_labels = list(oi.get("labels") or [])
|
|
397
|
+
issue_title = oi.get("title") or ""
|
|
375
398
|
break
|
|
376
399
|
|
|
377
400
|
milestone_tracking_issue = None
|
|
@@ -451,6 +474,7 @@ def project(payload: dict, repo: str, issue: int, config: Any) -> IssueState:
|
|
|
451
474
|
work_acceptance_state=g(work, "acceptance_state"),
|
|
452
475
|
work_acceptance_reason=g(work, "acceptance_reason"),
|
|
453
476
|
work_acceptance_sha=g(work, "acceptance_sha"),
|
|
477
|
+
work_finished_at=work_finished_at,
|
|
454
478
|
review_aid=g(review, "assignment_id"),
|
|
455
479
|
review_status=g(review, "status"),
|
|
456
480
|
review_verdict=g(review, "review_verdict"),
|
|
@@ -472,6 +496,7 @@ def project(payload: dict, repo: str, issue: int, config: Any) -> IssueState:
|
|
|
472
496
|
milestone_number=milestone_number,
|
|
473
497
|
milestone_tracking_issue=milestone_tracking_issue,
|
|
474
498
|
issue_labels=tuple(issue_labels),
|
|
499
|
+
issue_title=issue_title,
|
|
475
500
|
# #2024: the per-issue Test-stage policy, off the labels already read
|
|
476
501
|
# above (no extra I/O). `test_mode_from_labels` is the same function
|
|
477
502
|
# `coord.state._get_issue_test_mode_local` uses, so the driver and the
|
|
@@ -1840,6 +1840,71 @@ def test_refused_policy_work_is_terminal_and_carries_the_2234_marker():
|
|
|
1840
1840
|
assert "needs the coordinator" in action.message.lower()
|
|
1841
1841
|
|
|
1842
1842
|
|
|
1843
|
+
def test_refused_policy_still_blocking_names_the_assignment_and_age():
|
|
1844
|
+
"""#2871: even the still-blocking case must stop reading as though a
|
|
1845
|
+
FRESH worker just refused again — the message names the pre-dispatch
|
|
1846
|
+
assignment it refused on and the row's age, not just generic prose."""
|
|
1847
|
+
action = step(
|
|
1848
|
+
state(
|
|
1849
|
+
work_aid="w1",
|
|
1850
|
+
work_status="refused_policy",
|
|
1851
|
+
work_finished_at=1000.0,
|
|
1852
|
+
)
|
|
1853
|
+
)
|
|
1854
|
+
assert action.is_exit
|
|
1855
|
+
assert "pre-dispatch refusal on assignment w1" in action.message
|
|
1856
|
+
assert "refused_policy" in action.message
|
|
1857
|
+
assert POLICY_REFUSAL_MARKER in action.message
|
|
1858
|
+
|
|
1859
|
+
|
|
1860
|
+
def test_refused_policy_is_bypassed_when_the_issue_was_retargeted():
|
|
1861
|
+
"""#2871 / CC#916: a `refused_policy` row is a verdict on the ASK the
|
|
1862
|
+
worker was shown, not a standing veto on the issue number forever.
|
|
1863
|
+
`coord.claim.find_work_claim` never even sees this row (terminal rows
|
|
1864
|
+
live in `board.completed`) — the reason a stale refusal vetoed every
|
|
1865
|
+
later drive was entirely in `decide()` reading the fossil row as "this
|
|
1866
|
+
run's" state before ever reaching dispatch. If the issue's title was
|
|
1867
|
+
rewritten after the row finished, the branch it would have produced no
|
|
1868
|
+
longer matches — that mismatch means the ask changed, so this must
|
|
1869
|
+
dispatch fresh work instead of dying on the old refusal again."""
|
|
1870
|
+
s = state(
|
|
1871
|
+
work_aid="w1",
|
|
1872
|
+
work_status="refused_policy",
|
|
1873
|
+
work_branch="issue-1392-old-pre-retarget-title",
|
|
1874
|
+
issue_title="A completely different retargeted deliverable",
|
|
1875
|
+
work_finished_at=1000.0,
|
|
1876
|
+
)
|
|
1877
|
+
action = step(s)
|
|
1878
|
+
assert action.kind == RUN
|
|
1879
|
+
assert action.command[0] == "assign"
|
|
1880
|
+
assert action.audit_event is not None
|
|
1881
|
+
event_type, summary, details = action.audit_event
|
|
1882
|
+
assert event_type == "refused_policy_stale"
|
|
1883
|
+
assert "w1" in summary
|
|
1884
|
+
assert details["stale_assignment_id"] == "w1"
|
|
1885
|
+
assert details["stale_branch"] == "issue-1392-old-pre-retarget-title"
|
|
1886
|
+
|
|
1887
|
+
|
|
1888
|
+
def test_refused_policy_is_not_bypassed_when_the_title_is_unchanged():
|
|
1889
|
+
"""The inverse of the retarget test above: the branch still matches
|
|
1890
|
+
`issue-{N}-{slugify(current title)}`, so nothing was retargeted — this
|
|
1891
|
+
must still die rather than silently re-dispatch over a worker that
|
|
1892
|
+
correctly refused."""
|
|
1893
|
+
from coord.agent import _slugify # noqa: PLC0415
|
|
1894
|
+
|
|
1895
|
+
title = "Exactly the title this branch was named from"
|
|
1896
|
+
s = state(
|
|
1897
|
+
work_aid="w1",
|
|
1898
|
+
work_status="refused_policy",
|
|
1899
|
+
work_branch=f"issue-{ISSUE}-{_slugify(title)}",
|
|
1900
|
+
issue_title=title,
|
|
1901
|
+
)
|
|
1902
|
+
action = step(s)
|
|
1903
|
+
assert action.is_exit
|
|
1904
|
+
assert POLICY_REFUSAL_MARKER in action.message
|
|
1905
|
+
assert action.audit_event is None
|
|
1906
|
+
|
|
1907
|
+
|
|
1843
1908
|
def test_an_unknown_terminal_status_refuses_to_guess():
|
|
1844
1909
|
"""No terminal status may fall through to a bare wait (PR #1386)."""
|
|
1845
1910
|
action = step(state(work_aid="w1", work_status="wat"))
|
|
@@ -2764,6 +2764,23 @@ def test_a_policy_refusal_parks_without_spending_an_attempt():
|
|
|
2764
2764
|
assert POLICY_REFUSAL_REASON in reconcile.updates["last_reason"]
|
|
2765
2765
|
|
|
2766
2766
|
|
|
2767
|
+
def test_a_policy_refusal_park_reason_names_a_remedy_that_actually_clears_it():
|
|
2768
|
+
"""#2871: before this fix, the printed remedy (`coord drive-queue
|
|
2769
|
+
remove` once handled) was misleading — `coord.drive.decide()` re-read
|
|
2770
|
+
the SAME stale `refused_policy` row on every relaunch regardless of
|
|
2771
|
+
what the issue said by then, so `remove`+`add` looked like the fix but
|
|
2772
|
+
did nothing. The park reason must name the precondition that actually
|
|
2773
|
+
matters (retargeting the issue) rather than pure queue surgery."""
|
|
2774
|
+
entries = [entry(2195, position=3, state=STATE_RUNNING, attempts=0)]
|
|
2775
|
+
plan = plan_tick(
|
|
2776
|
+
entries, board(), capacity=1,
|
|
2777
|
+
exit_reasons={entry_key(REPO, 2195): POLICY_REFUSAL_REASON},
|
|
2778
|
+
)
|
|
2779
|
+
reason = plan.reconciles[0].reason
|
|
2780
|
+
assert "retarget the issue" in reason
|
|
2781
|
+
assert "dispatches fresh work automatically" in reason
|
|
2782
|
+
|
|
2783
|
+
|
|
2767
2784
|
def test_a_policy_refusal_parks_even_on_a_fresh_entrys_first_tick():
|
|
2768
2785
|
entries = [entry(2195, state=STATE_RUNNING, attempts=0)]
|
|
2769
2786
|
plan = plan_tick(
|
|
@@ -142,6 +142,44 @@ def test_project_resolves_issue_labels_from_the_issues_list():
|
|
|
142
142
|
assert state.issue_labels == ("oracle:exempt", "bug")
|
|
143
143
|
|
|
144
144
|
|
|
145
|
+
def test_project_resolves_issue_title_from_the_issues_list():
|
|
146
|
+
"""#2871: `decide()`'s retarget-detection compares a terminal
|
|
147
|
+
`refused_policy` row's branch against THIS — the issue's current
|
|
148
|
+
title — no extra I/O, same `/board` `issues` row `issue_labels` reads."""
|
|
149
|
+
payload = {
|
|
150
|
+
"assignments": [],
|
|
151
|
+
"issues": [
|
|
152
|
+
{"repo_name": REPO, "number": 1392, "title": "Rewritten deliverable"},
|
|
153
|
+
],
|
|
154
|
+
}
|
|
155
|
+
state = project(payload, REPO, 1392, make_config())
|
|
156
|
+
assert state.issue_title == "Rewritten deliverable"
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
def test_project_defaults_issue_title_empty_with_no_matching_issue():
|
|
160
|
+
payload = {"assignments": []}
|
|
161
|
+
state = project(payload, REPO, 1392, make_config())
|
|
162
|
+
assert state.issue_title == ""
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
def test_project_reads_work_finished_at_from_the_work_row():
|
|
166
|
+
"""#2871: paired with `issue_title` so `decide()` can name a
|
|
167
|
+
pre-dispatch refusal's age instead of leaving it unstated."""
|
|
168
|
+
payload = {
|
|
169
|
+
"assignments": [
|
|
170
|
+
row(assignment_id="w1", status="refused_policy", finished_at=12345.0)
|
|
171
|
+
]
|
|
172
|
+
}
|
|
173
|
+
state = project(payload, REPO, 1392, make_config())
|
|
174
|
+
assert state.work_finished_at == 12345.0
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
def test_project_defaults_work_finished_at_none_when_absent():
|
|
178
|
+
payload = {"assignments": [row(assignment_id="w1")]}
|
|
179
|
+
state = project(payload, REPO, 1392, make_config())
|
|
180
|
+
assert state.work_finished_at is None
|
|
181
|
+
|
|
182
|
+
|
|
145
183
|
def test_project_refuses_an_unconfigured_repo():
|
|
146
184
|
with pytest.raises(DriveStateError, match="not in coordinator.yml"):
|
|
147
185
|
project({"assignments": []}, "nope", 1, make_config())
|
|
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
|
{code_coordinator-0.5.267 → code_coordinator-0.5.268}/code_coordinator.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{code_coordinator-0.5.267 → code_coordinator-0.5.268}/code_coordinator.egg-info/entry_points.txt
RENAMED
|
File without changes
|
{code_coordinator-0.5.267 → code_coordinator-0.5.268}/code_coordinator.egg-info/requires.txt
RENAMED
|
File without changes
|
{code_coordinator-0.5.267 → code_coordinator-0.5.268}/code_coordinator.egg-info/scm_file_list.json
RENAMED
|
File without changes
|
{code_coordinator-0.5.267 → code_coordinator-0.5.268}/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
|
|
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
|