code-coordinator 0.5.234__tar.gz → 0.5.236__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.234 → code_coordinator-0.5.236}/PKG-INFO +1 -1
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/code_coordinator.egg-info/PKG-INFO +1 -1
- code_coordinator-0.5.236/code_coordinator.egg-info/scm_version.json +8 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/acceptance.py +38 -4
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/agent.py +51 -8
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/commands/dispatch_workers.py +26 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/commands/merge.py +28 -3
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/interactive.py +30 -2
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_acceptance.py +109 -1
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_assign_interactive_remote.py +113 -14
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_merge_verify.py +141 -4
- code_coordinator-0.5.234/code_coordinator.egg-info/scm_version.json +0 -8
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/.claude/commands/board.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/.claude/commands/complete-session.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/.claude/commands/coordinator.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/.githooks/_lib.sh +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/.githooks/post-checkout +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/.githooks/post-commit +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/.githooks/post-merge +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/.github/workflows/auto-release.yml +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/.github/workflows/cargo-test.yml +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/.github/workflows/publish.yml +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/.github/workflows/release-tui.yml +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/.github/workflows/test.yml +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/.gitignore +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/CLAUDE.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/GOAL.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/LICENSE +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/MANIFEST.in +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/README.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/code_coordinator.egg-info/SOURCES.txt +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/code_coordinator.egg-info/dependency_links.txt +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/code_coordinator.egg-info/entry_points.txt +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/code_coordinator.egg-info/requires.txt +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/code_coordinator.egg-info/scm_file_list.json +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/code_coordinator.egg-info/top_level.txt +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/__init__.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/_board_mapping.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/acceptance_drivers.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/agent_app.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/agent_update.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/agents/opencode/.gitignore +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/agents/opencode/agents/work.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/agents/opencode/routing.jsonc +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/approved_work.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/audit.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/auto_loop.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/block_log.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/board_bool_guard.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/board_service.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/board_wire.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/brain.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/branch_model.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/bug_intake.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/cargo_cache.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/ci_fix.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/ci_github.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/ci_gitlab.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/ci_store.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/claim.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/cli.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/client.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/commands/__init__.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/commands/_common.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/commands/acceptance.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/commands/agent_ops.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/commands/audit.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/commands/chat.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/commands/dispatch.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/commands/drive.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/commands/drive_queue.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/commands/gate_a.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/commands/gates.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/commands/issues.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/commands/lifecycle.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/commands/milestone.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/commands/plan_followup.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/commands/plans.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/commands/portal.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/commands/release.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/commands/repo.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/commands/report.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/commands/review.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/commands/scorecard.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/commands/sessions.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/commands/setup.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/commands/status.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/commands/terminal.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/commands/test_gate.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/commands/tui.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/comments.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/config.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/config_reload.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/confirm_test.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/conflict_fix.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/dao.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/dashboard/__init__.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/dashboard/fixture.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/dashboard/index.html +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/dashboard/server.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/dashboard/terminal.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/db.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/dead_end.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/deploy/README.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/deploy_manifest.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/deploy_units.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/deps.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/diagnose.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/dispatch.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/dist_name.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/drive.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/drive_queue.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/drive_state.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/events.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/failure_class.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/filelock.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/fleet_config_health.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/forge_availability.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/freshness.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/gate_a.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/gate_b.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/gate_snapshot.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/gates.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/github_ops.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/goal.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/graph_health.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/health/__init__.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/health/aggregate.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/health/checks/__init__.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/health/checks/agent_install.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/health/checks/cargo_targets.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/health/checks/claude_binary.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/health/checks/coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/health/checks/deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/health/checks/disk.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/health/checks/fleet_board.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/health/checks/fleet_deploy_lanes.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/health/checks/fleet_phantom.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/health/checks/fleet_unit_drift.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/health/checks/graph.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/health/checks/graphify_cli.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/health/checks/index_lock.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/health/checks/plan_usage.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/health/checks/repo_state.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/health/checks/spawned_coord.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/health/checks/timer_active.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/health/checks/toolchain.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/health/checks/unit_drift.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/health/checks/unit_enablement.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/health/checks/worktrees.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/health/cli.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/health/context.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/health/fleet_snapshot.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/health/models.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/health/pypi.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/health/registry.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/health/render.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/health/units.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/hooks.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/housekeeping.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/issue_store.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/liveness_auditor.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/machine_pause.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/merge_queue.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/milestone_chat.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/milestone_dispatch.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/milestone_gate.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/milestone_order.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/mock_author.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/models.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/network.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/new_issue_chat.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/notifier/__init__.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/notifier/baseline.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/notifier/cli.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/notifier/collect.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/notifier/digest.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/notifier/models.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/notifier/predicate.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/notifier/service.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/notifier/store.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/notifier/transport.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/notify.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/openapi.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/overlap_fence.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/overlap_predict.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/parentage.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/parentage_github.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/pipeline.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/plan_parser.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/plans.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/platform_paths.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/portal_bridge.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/portal_store.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/portal_sync.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/pr_body_lint.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/prereqs.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/progress.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/providers/__init__.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/providers/base.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/providers/claude.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/providers/claude_pty.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/providers/opencode.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/queue_diagnose.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/reconcile.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/reconcile_tick.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/refine_chat.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/release_cordon.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/release_propagate.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/release_verify.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/release_window.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/repo_edit.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/repo_onboard.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/reports.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/revalidate.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/review.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/scorecard.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/self_health.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/serve_app.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/skills/coord-dispatch-verbs/SKILL.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/skills/drive-queue-preflight/SKILL.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/skills/fleet-restart-safety/SKILL.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/skills/merge-stuck-triage/SKILL.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/skills/pipeline-limbo-triage/SKILL.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/skills/portal-followup/SKILL.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/skills/review-verdict-recovery/SKILL.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/skills/tui-quadraui-workflow/SKILL.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/skills/update-issue/SKILL.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/smoke.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/spend_ceiling.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/split_work.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/stage_projection.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/state.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/test_author.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/test_chat.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/test_orchestrator.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/test_report.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/tui_release.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/usage.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/usage_limits.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/usage_rollup.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coord/worker_events.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/coordinator.example.yml +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/deploy/coord-web-dist-build.sh +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/deploy/coord-web-rollback.sh +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/deploy/node-shim.sh +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/docs/ADR_COORD_WEB_ACCEPTANCE_SUITE.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/docs/ADR_COORD_WEB_CI.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/docs/ADR_COORD_WEB_DIST.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/docs/AGENT_OPERATIONS.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/docs/ARCHITECTURE.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/docs/ARCH_SECURITY_GATES.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/docs/COCKPIT.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/docs/CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/docs/COST_DISCIPLINE.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/docs/CROSS_PLATFORM.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/docs/CUSTOMER_PORTAL.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/docs/DRIVE_QUEUE.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/docs/EPHEMERAL_WORKERS.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/docs/FORGE_MIGRATION.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/docs/GRAPHIFY_SETUP.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/docs/ISSUE_GUIDANCE.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/docs/MAC_MINI.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/docs/NOTIFIER.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/docs/OPENCODE_VERIFICATION.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/docs/OPERATING_GOTCHAS.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/docs/ORACLE_LOOP.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/docs/PHONE_WEBAPP.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/docs/PIPELINE_V2.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/docs/PLATFORM_EVOLUTION.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/docs/SECOND_BACKEND.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/docs/STORE_SERVICE.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/docs/TEST_FIRST_BUG_LANE.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/docs/WEB_CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/docs/WSL_WINDOWS_WORKER.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/docs/mocks/web/README.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/docs/mocks/web/_tokens.css +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/docs/mocks/web/issue-detail.html +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/docs/mocks/web/pipeline-narrow.html +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/docs/mocks/web/pipeline-wide.html +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/graphify-out/.gitignore +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/install-agent.sh +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/pyproject.toml +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/scripts/audit_review_verdict_overrides.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/scripts/azure-workers/bootstrap-shared.sh +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/scripts/azure-workers/build-worker-image.sh +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/scripts/azure-workers/coordinator-machine.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/scripts/azure-workers/epic-down.sh +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/scripts/azure-workers/epic-up.sh +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/scripts/azure-workers/preflight.sh +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/scripts/azure-workers/provision-worker.sh +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/scripts/azure-workers/tailnet-acl.hujson +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/scripts/azure-workers/verify-github-token.sh +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/scripts/check_gh_argv_containment.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/scripts/codegen.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/scripts/coord-test-runner.sh +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/scripts/drive-batch.sh +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/scripts/gen_board_fixture.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/scripts/gen_mock_index.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/scripts/next_release_tag.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/scripts/run_tests_in_populated_home.sh +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/scripts/run_tests_without_gh.sh +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/scripts/smoke_437_interactive.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/scripts/verify_878_review_capture.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/scripts/verify_release_published.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/scripts/verify_release_wheel.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/setup.cfg +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/SMOKE_SET.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/__init__.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-33/audit_1039.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-33/contract.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-33/manifest.yml +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-33/mocks/audit-panel-detail.screen +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-33/mocks/audit-panel-empty.screen +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-33/mocks/audit-panel-filters.screen +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-33/mocks/audit-panel-populated.screen +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-37/conftest.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-37/contract.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-37/manifest.yml +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-38/contract.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-38/manifest.yml +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-38/mocks/plans-base.screen +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-38/mocks/plans-detail-pane.screen +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-38/mocks/plans-help-overlay.screen +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-38/mocks/plans-palette.screen +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-38/mocks/plans-rightclick-epic.screen +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-38/mocks/plans-rightclick-header.screen +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-38/mocks/plans-rightclick-stub.screen +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-38/plans_detail_1122.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-38/plans_help_1124.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-38/plans_rightclick_1123.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-51/contract.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-51/manifest.yml +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-51/tsconfig.json +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-65/board_split_2288.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-65/board_tabs_2282.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-65/board_tabs_close_2283.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-65/contract.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-65/detail_substate_2285.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-65/manifest.yml +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-65/mocks/board-baseline-no-tabs.screen +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-65/mocks/board-pinned-3-tabs.screen +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-65/mocks/board-preview-tab.screen +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-65/mocks/board-split-side-by-side.screen +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-65/mocks/board-tab-context-menu.screen +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-65/mocks/board-tabs-help-overlay.screen +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-65/mocks/board-tabs-overflow.screen +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-65/mocks/pipeline-tabs-independent.screen +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-65/pipeline_tabs_2284.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-65/tabs_discoverability_2287.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-65/tabs_persistence_2286.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-67/approved_items_2532.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-67/contract.md +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-67/manifest.d/2533.yml +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-67/manifest.yml +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-67/mocks/approved-items-chat-opened.screen +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-67/mocks/approved-items-context-menu.screen +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-67/mocks/approved-items-detail.screen +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-67/mocks/approved-items-empty.screen +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-67/mocks/approved-items-populated.screen +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-67/pull_decomposition_2533.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/conftest.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/fixtures/board-pipeline-basic.json +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/fixtures/opencode_run_sample.jsonl +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/fixtures/playwright/all_pass.json +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/fixtures/playwright/global_setup_crash.json +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/fixtures/playwright/mixed_fail.json +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/fixtures/playwright/retry_then_pass.json +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/fixtures/playwright/skip.json +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/fixtures/playwright/truncated.json +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_acceptance_drivers.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_agent.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_agent_api_error.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_agent_app.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_agent_branch_base.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_agent_branch_capture.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_agent_config_free_1712.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_agent_deploy_units_endpoint.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_agent_dirty_worktree.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_agent_drive_queue_reconcile_2373.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_agent_graph_self_heal.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_agent_health_h3.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_agent_idle_restart.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_agent_push_failure.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_agent_reap.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_agent_repos_and_pull.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_agent_restart_services_endpoint.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_agent_skills_self_heal.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_agent_startup_diagnostics.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_agent_update.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_agent_update_bluegreen.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_agent_usage_limit.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_agent_zero_commit.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_ambient_home_isolation.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_approve_reject_plan.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_approve_usage_gate.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_approved_work_2532.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_assignment_already_recorded_daemon.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_audit_log.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_audit_outcome.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_audit_query.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_auto_loop.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_auto_release_publish_2035.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_base_checkout_restore.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_block_log.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_board_cap_762.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_board_fixture.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_board_read_path.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_board_service.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_board_state.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_board_wire.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_brain.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_branch_model.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_bug_intake.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_build_worker_image_env_update.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cargo_cache.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_check_gh_argv_containment.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_ci_acceptance_gate_1950.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_ci_fix.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_ci_gitlab.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_ci_parity_2091.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_ci_store.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_claim.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_acceptance.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_assign.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_assign_provider.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_assign_repo_drift_2219.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_audit.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_chat_continue.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_decide.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_diagnose_config_provenance.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_diagnose_forge_availability.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_diagnose_graph.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_diagnose_self.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_doctor.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_doctor_config_free_1801.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_drive.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_drive_queue.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_escalate.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_fix_headless_review.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_gate_a.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_install_drift.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_install_skills.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_issue_create_label.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_issue_reopen.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_merge.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_milestone_assign.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_milestone_capture.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_milestone_chat_add_child.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_milestone_gate_b.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_milestone_gate_c.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_milestone_order.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_milestone_ship.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_network.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_new_issue_chat.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_plans.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_portal.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_pull_artifact.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_queue.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_reattach_sessions.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_refine_board.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_release_preflight.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_release_propagate.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_release_window.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_repo_2220.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_scorecard.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_set_review_findings.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_status_advisory_terminal.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_status_merge_queue.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_status_provider.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_status_review_finalizing.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_status_test_failed_tag.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_status_usage_limit.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_sync_comments_873.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_test_plan.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_track.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_tui_update.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cli_wait.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_client_base_install.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_comments.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_completion_summary.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_config.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_config_acceptance.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_config_audit.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_config_pricing.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_config_usage_gate.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_confirm_test.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_conflict_fix.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_conflict_fix_semantic.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_coord_test.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_coord_test_runner_baseline.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_coord_test_runner_populated_home.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_coord_test_runner_routing.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_coord_test_runner_toolchain.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_coord_web_sse_restart_live.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_coordinator_machine.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_cross_platform_imports.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_dashboard.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_dashboard_fixture.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_dashboard_terminal.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_dashboard_terminal_live.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_db.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_dead_end.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_deploy_coord_db_backup.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_deploy_coord_web_dist.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_deploy_coord_web_rollback.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_deploy_drive_queue_unit.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_deploy_manifest.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_deploy_notify_unit.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_deploy_units_lane.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_deploy_web_unit.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_deps.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_diagnose.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_dispatch.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_dispatch_target_validation.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_dist_name.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_done_housekeeping.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_drive.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_drive_queue.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_drive_state.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_drive_tmux.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_epic_up_capability_detection.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_epic_up_image_provenance.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_errors.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_events.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_failure_class.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_filelock.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_fix_of_force_override.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_fleet_config_health.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_fleet_health_probes.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_fleet_health_snapshot.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_forge_availability.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_freshness.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_gate_a.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_gate_b.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_gate_snapshot_staleness.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_gates.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_gather_fleet_tmux_sessions.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_gen_mock_index.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_generated_types_fixture.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_github_ops.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_goal.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_graph_health.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_graph_selfheal_absent_2237.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_handoff.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_health_checks.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_health_cli.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_health_cli_graph.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_health_config.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_health_context.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_health_coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_health_deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_health_incident_regression.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_health_pypi.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_health_registry.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_health_timer_active.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_health_toolchain.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_health_unit_drift.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_health_unit_enablement.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_hooks.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_human_attended_437.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_init.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_integration.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_interactive_briefing_echo.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_interactive_pane_log_2541.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_interactive_prefill_state.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_interactive_session_relaunch.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_interactive_test_verdict_backstop.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_interactive_token_attribution.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_interactive_worktree.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_issue_store_seam.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_liveness_auditor.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_liveness_notify.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_machine_pause.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_merge_queue.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_milestone_chat.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_milestone_gate.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_milestone_order.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_milestone_seam.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_mock_author.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_model_tiering.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_models.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_models_config_labels.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_needs_attention.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_network.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_new_issue_chat.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_next_release_tag.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_node_shim.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_notifier_baseline.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_notifier_cli.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_notifier_collect.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_notifier_config.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_notifier_drive_seam.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_notifier_isolation.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_notifier_predicate.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_notifier_quiet_hours.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_notifier_service.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_notify.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_notify_drain.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_openapi.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_operational_defaults.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_overlap_fence.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_overlap_predict.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_packaged_deploy_units.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_parentage.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_paste_landed.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_pipeline.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_plan_followup_approve_plan_command.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_plan_followup_pr_command.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_plan_followup_review_command.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_plan_only.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_plan_parser.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_platform_paths.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_portal_bridge.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_portal_config.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_portal_store.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_portal_sync.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_pr_body_lint.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_prereqs.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_production_db_guard.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_progress.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_provider_seam.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_providers.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_providers_config_labels.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_providers_pty.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_quiet_hours.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_quiet_hours_store_2146.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_reap_merged_sessions.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_reap_stale_interactive_tick.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_reconcile.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_reconcile_branch.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_reconcile_completions.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_reconcile_merges.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_reconcile_no_agent_record.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_reconcile_tick.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_reconcile_usage_limit_done.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_refine_chat.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_release_cordon_2101.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_release_cordon_deadlock_2240.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_release_cordon_stuck_2490.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_release_propagate.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_release_roll_window_handoff.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_release_unified_1242.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_release_verify.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_release_window.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_remote_auto_prune.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_remote_interactive_reaper.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_repo_edit_2220.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_repo_graph_fleet_2237.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_repo_onboard_2220.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_report_result_push.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_reports.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_retry.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_retry_advisory_1606.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_retry_type_1636.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_revalidate.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_review.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_review_end_review_without_verdict.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_review_parse_failure_diagnostic.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_review_reaffirm.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_review_state.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_review_verdict_backstop.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_review_verdict_override_audit.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_review_verdict_relay.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_review_zero_commits.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_scoped_review_wiring.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_scorecard.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_self_health.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_serve.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_serve_app_board_trim.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_session.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_slice_issue_attribution.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_smoke.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_smoke_live_checkout_restore.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_smoke_workflow.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_spend_ceiling.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_spend_ceiling_coordinator.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_split.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_split_work.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_stage_projection.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_stalled_pipeline.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_state.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_state_review_findings_daemon.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_status_fleet_footer.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_stop_1567.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_stuck.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_terminal_command.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_test_author.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_test_chat.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_test_orchestrator.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_test_report.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_test_verdict_parsing.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_test_verdict_transcript_floor.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_thin_client_board_audit.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_thin_client_config_load_1080.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_thin_client_daemon_routing_906.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_tmux_host.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_tmux_session.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_transcript_floor.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_usage.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_usage_limits.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_usage_rollup.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_venv_live_install_2121.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_version_single_source.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_watch.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_worker_events.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_worker_image_pin_sync.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_worker_safety.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_worker_test_scoping.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_worktree.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tests/test_worktree_rmtree_chokepoint.py +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/Cargo.lock +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/Cargo.toml +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/cargo-config-local-quadraui.toml.example +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/src/app/approved.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/src/app/audit.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/src/app/chat.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/src/app/data.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/src/app/dialogs.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/src/app/doc_tabs.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/src/app/drive.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/src/app/drive_queue.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/src/app/escalation.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/src/app/events.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/src/app/fixtures.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/src/app/fleet_health.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/src/app/fleet_sessions.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/src/app/fleet_terminals.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/src/app/format.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/src/app/milestone_dag.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/src/app/mod.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/src/app/msv.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/src/app/pipeline.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/src/app/plans.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/src/app/render.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/src/app/reports.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/src/app/sessions.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/src/app/settings_ui.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/src/app/sidebar.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/src/app/terminal.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/src/app/tests.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/src/app/types.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/src/app/workspace.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/src/bin/gtk.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/src/commands.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/src/lib.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/src/main.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/src/settings.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/tests/acceptance.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/tests/cli.rs +0 -0
- {code_coordinator-0.5.234 → code_coordinator-0.5.236}/tui/tests/fixtures/board_sample.json +0 -0
|
@@ -838,6 +838,36 @@ def _issue_header_re(issue_number: int) -> re.Pattern[str]:
|
|
|
838
838
|
return re.compile(rf"^(\s*)['\"]?{issue_number}['\"]?\s*:\s*(#.*)?$")
|
|
839
839
|
|
|
840
840
|
|
|
841
|
+
def _parse_list_item_scalar(line: str) -> str | None:
|
|
842
|
+
"""Resolve one YAML block-sequence item line (``- ...``) to its parsed
|
|
843
|
+
scalar value — the same value :func:`parse_manifest_text` would produce
|
|
844
|
+
for it — rather than the raw text as written. #2296: a Playwright test id
|
|
845
|
+
always starts with ``[chromium]``, so its manifest entry is *always*
|
|
846
|
+
quoted (an unquoted leading ``[`` is a YAML flow sequence, not a string);
|
|
847
|
+
comparing the raw scalar against the parsed id then never matches. Going
|
|
848
|
+
through :mod:`yaml` here instead handles double- and single-quoted
|
|
849
|
+
scalars (incl. the ``''`` embedded-quote escape) and, since YAML's own
|
|
850
|
+
comment rule applies, a ``#`` inside a quoted scalar is correctly treated
|
|
851
|
+
as data rather than truncated as a comment.
|
|
852
|
+
|
|
853
|
+
Returns ``None`` for anything that isn't a well-formed single-item
|
|
854
|
+
sequence line (blank/comment-only, flow-style, malformed YAML, or a
|
|
855
|
+
non-string value) so the caller leaves such lines untouched rather than
|
|
856
|
+
risk misclassifying them.
|
|
857
|
+
"""
|
|
858
|
+
stripped = line.strip()
|
|
859
|
+
if not stripped.startswith("-"):
|
|
860
|
+
return None
|
|
861
|
+
try:
|
|
862
|
+
parsed = yaml.safe_load(stripped)
|
|
863
|
+
except yaml.YAMLError:
|
|
864
|
+
return None
|
|
865
|
+
if not isinstance(parsed, list) or len(parsed) != 1:
|
|
866
|
+
return None
|
|
867
|
+
value = parsed[0]
|
|
868
|
+
return value if isinstance(value, str) else None
|
|
869
|
+
|
|
870
|
+
|
|
841
871
|
def _strip_cleared_ids_from_issue_block(
|
|
842
872
|
body: "list[str]", issue_number: int, cleared_ids: "set[str]",
|
|
843
873
|
) -> "tuple[list[str], bool]":
|
|
@@ -871,9 +901,8 @@ def _strip_cleared_ids_from_issue_block(
|
|
|
871
901
|
i += 1
|
|
872
902
|
new_sub = []
|
|
873
903
|
for sub_line in sub:
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
if item_m and item_m.group(1) in cleared_ids:
|
|
904
|
+
item = _parse_list_item_scalar(sub_line)
|
|
905
|
+
if item is not None and item in cleared_ids:
|
|
877
906
|
changed = True
|
|
878
907
|
continue
|
|
879
908
|
new_sub.append(sub_line)
|
|
@@ -1286,7 +1315,12 @@ def clear_expected_red_via_pr(
|
|
|
1286
1315
|
|
|
1287
1316
|
new_text = clear_expected_red_entries(text, issue_number, ids)
|
|
1288
1317
|
if new_text is None:
|
|
1289
|
-
|
|
1318
|
+
# #2296: ids were passed in and none matched — that's a defect in
|
|
1319
|
+
# the text surgery (or a manifest that no longer has this issue's
|
|
1320
|
+
# block), not a benign no-op. Prefix `warning:` so it's greppable
|
|
1321
|
+
# and so `coord acceptance expected-red --clear` doesn't report a
|
|
1322
|
+
# clean sweep over an operation that actually did nothing.
|
|
1323
|
+
return "warning: expected_red text unchanged (nothing matched)"
|
|
1290
1324
|
|
|
1291
1325
|
get_head = getattr(ops, "get_default_branch_head", None)
|
|
1292
1326
|
create_branch = getattr(ops, "create_remote_branch", None)
|
|
@@ -1110,14 +1110,36 @@ def _pushed_commits_ahead(repo_path: Path, base: str, branch: str) -> int | None
|
|
|
1110
1110
|
_ISSUE_REF_RE = re.compile(r"#(\d+)")
|
|
1111
1111
|
|
|
1112
1112
|
|
|
1113
|
-
def _foreign_issue_refs(
|
|
1113
|
+
def _foreign_issue_refs(
|
|
1114
|
+
subject: str,
|
|
1115
|
+
issue_number: int,
|
|
1116
|
+
extra_allowed: frozenset[int] = frozenset(),
|
|
1117
|
+
) -> frozenset[int]:
|
|
1114
1118
|
"""Return the set of *foreign* issue numbers referenced in *subject* —
|
|
1115
|
-
those that are
|
|
1116
|
-
any foreign issue.
|
|
1119
|
+
those that are neither *issue_number* nor in *extra_allowed*. Empty if
|
|
1120
|
+
the subject doesn't reference any foreign issue.
|
|
1121
|
+
|
|
1122
|
+
*extra_allowed* (#2545): for a ``type="test-author"``/``"mock-author"``
|
|
1123
|
+
merge entry, *issue_number* is the milestone's TRACKING issue (every JIT
|
|
1124
|
+
slice for one milestone shares a single branch/PR — see
|
|
1125
|
+
``Assignment.for_issue_number``'s docstring), but the slice's own commit
|
|
1126
|
+
correctly and necessarily cites its OWN child issue
|
|
1127
|
+
(``test(ms-4): ... slice #132``). Without this, every such commit was
|
|
1128
|
+
flagged FOREIGN on every single verify, regardless of whether the rebase
|
|
1129
|
+
was actually clean. Callers resolve the slice's own issue number (e.g.
|
|
1130
|
+
via ``coord.models.effective_issue_number``) and pass it here so a
|
|
1131
|
+
reference to *either* the tracking issue or the resolved slice issue
|
|
1132
|
+
counts as home, not foreign. Defaults to empty, preserving the original
|
|
1133
|
+
all-blocking-except-``issue_number`` behaviour for ordinary ``work``
|
|
1134
|
+
assignments.
|
|
1135
|
+
"""
|
|
1117
1136
|
refs = {int(m) for m in _ISSUE_REF_RE.findall(subject)}
|
|
1118
|
-
if not refs
|
|
1137
|
+
if not refs:
|
|
1119
1138
|
return frozenset()
|
|
1120
|
-
|
|
1139
|
+
home = {issue_number} | extra_allowed
|
|
1140
|
+
if refs & home:
|
|
1141
|
+
return frozenset()
|
|
1142
|
+
return frozenset(refs - home)
|
|
1121
1143
|
|
|
1122
1144
|
|
|
1123
1145
|
def _resolve_base_ref(wt_path: Path, base: str) -> str | None:
|
|
@@ -1218,6 +1240,7 @@ def verify_merge_branch(
|
|
|
1218
1240
|
*,
|
|
1219
1241
|
base: str,
|
|
1220
1242
|
issue_number: int,
|
|
1243
|
+
extra_allowed_issue_numbers: frozenset[int] = frozenset(),
|
|
1221
1244
|
closed_issue_numbers: frozenset[int] = frozenset(),
|
|
1222
1245
|
) -> MergeVerify:
|
|
1223
1246
|
"""Verify a ``--merge-of`` branch before its terminal ``done`` is recorded.
|
|
@@ -1233,10 +1256,17 @@ def verify_merge_branch(
|
|
|
1233
1256
|
``claude``, no PTY — so the gate runs as a fast local-only test fixture.
|
|
1234
1257
|
|
|
1235
1258
|
Args:
|
|
1259
|
+
extra_allowed_issue_numbers: Additional issue numbers, besides
|
|
1260
|
+
*issue_number*, that a commit subject may legitimately reference
|
|
1261
|
+
without being flagged foreign (#2545) — see
|
|
1262
|
+
:func:`_foreign_issue_refs`'s ``extra_allowed`` for why a
|
|
1263
|
+
``test-author``/``mock-author`` merge entry needs this (its own
|
|
1264
|
+
slice issue, not just the milestone's tracking issue).
|
|
1236
1265
|
closed_issue_numbers: Issue numbers that are known to be closed/merged
|
|
1237
1266
|
in the upstream repo. When a commit's subject references *only*
|
|
1238
|
-
issues in this set (and not ``issue_number``
|
|
1239
|
-
|
|
1267
|
+
issues in this set (and not ``issue_number`` or
|
|
1268
|
+
``extra_allowed_issue_numbers``), it is downgraded from a
|
|
1269
|
+
**blocking** foreign finding to an **advisory** one (#1279).
|
|
1240
1270
|
The rationale: a commit referencing a *closed* issue cannot be
|
|
1241
1271
|
live rebase-pollution — it is almost certainly a worker typo in the
|
|
1242
1272
|
commit subject. Pass the empty frozenset (default) to preserve the
|
|
@@ -1271,7 +1301,9 @@ def verify_merge_branch(
|
|
|
1271
1301
|
foreign: list[tuple[str, str]] = []
|
|
1272
1302
|
advisory_foreign: list[tuple[str, str]] = []
|
|
1273
1303
|
for sha, subj in added:
|
|
1274
|
-
foreign_refs = _foreign_issue_refs(
|
|
1304
|
+
foreign_refs = _foreign_issue_refs(
|
|
1305
|
+
subj, issue_number, extra_allowed=extra_allowed_issue_numbers
|
|
1306
|
+
)
|
|
1275
1307
|
if not foreign_refs:
|
|
1276
1308
|
continue # not flagged — own work or bare message
|
|
1277
1309
|
# #1279: downgrade to advisory when ALL referenced foreign issues are
|
|
@@ -1312,6 +1344,17 @@ def resolve_closed_issue_numbers(
|
|
|
1312
1344
|
Returns an empty frozenset immediately when *repo_github* is falsy or
|
|
1313
1345
|
*foreign_commits* is empty, so callers can skip the second verify pass
|
|
1314
1346
|
entirely (``if closed: ...``) without an extra branch.
|
|
1347
|
+
|
|
1348
|
+
Deliberately does **not** accept an ``extra_allowed_issue_numbers``
|
|
1349
|
+
parameter to thread through to :func:`_foreign_issue_refs` (#2545
|
|
1350
|
+
review): *foreign_commits* here is always the ``.foreign`` list a prior,
|
|
1351
|
+
``extra_allowed``-aware :func:`verify_merge_branch` pass already
|
|
1352
|
+
produced, and ``_foreign_issue_refs`` treats any overlap with the "home"
|
|
1353
|
+
set (``{issue_number} | extra_allowed``) as voiding a commit's foreign
|
|
1354
|
+
status entirely — so no subject surviving into *foreign_commits* can
|
|
1355
|
+
reference an ``extra_allowed`` issue in the first place. If a future
|
|
1356
|
+
caller ever feeds this something other than a prior pass's ``.foreign``,
|
|
1357
|
+
re-check this assumption before relying on it.
|
|
1315
1358
|
"""
|
|
1316
1359
|
foreign_commits = list(foreign_commits)
|
|
1317
1360
|
if not repo_github or not foreign_commits:
|
|
@@ -3355,6 +3355,26 @@ def _dispatch_merge_of(
|
|
|
3355
3355
|
)
|
|
3356
3356
|
sys.exit(2)
|
|
3357
3357
|
|
|
3358
|
+
# #2545: a `type="test-author"`/`"mock-author"` work row's `issue_number`
|
|
3359
|
+
# (== `issue` above) is always the milestone's TRACKING issue, but its
|
|
3360
|
+
# commit correctly cites the slice's OWN child issue — resolved via the
|
|
3361
|
+
# canonical `coord.models.effective_issue_number` helper (built for
|
|
3362
|
+
# exactly this tracking-vs-slice distinction, #1553) rather than reading
|
|
3363
|
+
# `for_issue_number` directly, so this stays in sync with the other
|
|
3364
|
+
# callers of that helper (e.g. `merge_queue._test_author_effective_
|
|
3365
|
+
# issue_number`) instead of drifting as an independent copy. Without
|
|
3366
|
+
# allowing the resolved issue too, the #604 FOREIGN check below flags
|
|
3367
|
+
# every JIT slice's own, correctly-labeled commit on every single verify.
|
|
3368
|
+
# Ordinary `work` assignments have no `for_issue_number`, so this
|
|
3369
|
+
# resolves to `issue` itself — already in the "home" set, a harmless
|
|
3370
|
+
# no-op.
|
|
3371
|
+
from coord.models import effective_issue_number as _mg_effective_issue_number # noqa: PLC0415
|
|
3372
|
+
|
|
3373
|
+
_mg_for_issue = _mg_effective_issue_number(work)
|
|
3374
|
+
_mg_extra_allowed = (
|
|
3375
|
+
frozenset({_mg_for_issue}) if _mg_for_issue and _mg_for_issue != issue else frozenset()
|
|
3376
|
+
)
|
|
3377
|
+
|
|
3358
3378
|
resolved_model = model if model else cfg.models.default
|
|
3359
3379
|
assignment_id = _uuid.uuid4().hex[:12]
|
|
3360
3380
|
if _is_local:
|
|
@@ -3607,6 +3627,9 @@ def _dispatch_merge_of(
|
|
|
3607
3627
|
# #604: git truth overrides the agent's self-report on the
|
|
3608
3628
|
# merge path — a botched rebase records `blocked`, not `done`.
|
|
3609
3629
|
verify_merge=True,
|
|
3630
|
+
# #2545: allow the JIT slice's own child issue, not just the
|
|
3631
|
+
# tracking issue, in the FOREIGN check.
|
|
3632
|
+
extra_allowed_issue_numbers=_mg_extra_allowed,
|
|
3610
3633
|
branch=work.branch,
|
|
3611
3634
|
)
|
|
3612
3635
|
_echo_merge_finalize(finalize_result, merge_target_branch)
|
|
@@ -3869,6 +3892,9 @@ def _dispatch_merge_of(
|
|
|
3869
3892
|
exit_code=exit_code,
|
|
3870
3893
|
started_at=started_at,
|
|
3871
3894
|
verify_merge=True,
|
|
3895
|
+
# #2545: allow the JIT slice's own child issue, not just the
|
|
3896
|
+
# tracking issue, in the FOREIGN check.
|
|
3897
|
+
extra_allowed_issue_numbers=_mg_extra_allowed,
|
|
3872
3898
|
)
|
|
3873
3899
|
_echo_merge_finalize(finalize_result, merge_target_branch)
|
|
3874
3900
|
_mv = finalize_result.merge_verify
|
|
@@ -11,7 +11,7 @@ import click
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
from coord.commands._common import _CONFIG_OPTION, _load_config
|
|
14
|
-
from coord.models import WORK_LIKE_TYPES
|
|
14
|
+
from coord.models import WORK_LIKE_TYPES, effective_issue_number
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
def _machine_for_assignment(board, assignment_id: str | None) -> str | None:
|
|
@@ -726,10 +726,26 @@ def verify_merge(
|
|
|
726
726
|
err=True,
|
|
727
727
|
)
|
|
728
728
|
sys.exit(2)
|
|
729
|
+
extra_allowed: frozenset[int] = frozenset()
|
|
729
730
|
else:
|
|
730
731
|
repo_name = work.repo_name
|
|
731
732
|
issue_num = int(work.issue_number)
|
|
732
733
|
branch_display = work.branch or "(unknown)"
|
|
734
|
+
# #2545: a `type="test-author"`/`"mock-author"` merge entry's
|
|
735
|
+
# `issue_number` is always the milestone's TRACKING issue (every JIT
|
|
736
|
+
# slice for one milestone shares a branch/PR), but its commit
|
|
737
|
+
# correctly cites the slice's OWN child issue — resolved via the
|
|
738
|
+
# canonical `effective_issue_number` helper (built for exactly this
|
|
739
|
+
# tracking-vs-slice distinction, #1553) rather than reading
|
|
740
|
+
# `for_issue_number` directly, so this stays in sync with the other
|
|
741
|
+
# callers of that helper (e.g. `merge_queue._test_author_effective_
|
|
742
|
+
# issue_number`) instead of drifting as an independent copy. Ordinary
|
|
743
|
+
# `work` assignments have no `for_issue_number`, so this resolves to
|
|
744
|
+
# `issue_num` itself — already in the "home" set, a harmless no-op.
|
|
745
|
+
_for_issue = effective_issue_number(work)
|
|
746
|
+
extra_allowed = (
|
|
747
|
+
frozenset({_for_issue}) if _for_issue and _for_issue != issue_num else frozenset()
|
|
748
|
+
)
|
|
733
749
|
|
|
734
750
|
repo_cfg = cfg.repo(repo_name)
|
|
735
751
|
base = (repo_cfg.default_branch if repo_cfg else None) or "main"
|
|
@@ -747,14 +763,23 @@ def verify_merge(
|
|
|
747
763
|
repo_github = repo_cfg.github if repo_cfg else None
|
|
748
764
|
wt_path = Path(path_opt).expanduser() if path_opt else Path.cwd()
|
|
749
765
|
|
|
750
|
-
mv = verify_merge_branch(
|
|
766
|
+
mv = verify_merge_branch(
|
|
767
|
+
wt_path,
|
|
768
|
+
base=base,
|
|
769
|
+
issue_number=issue_num,
|
|
770
|
+
extra_allowed_issue_numbers=extra_allowed,
|
|
771
|
+
)
|
|
751
772
|
# #1279: only worth a `gh` round-trip when the cheap git-only pass above
|
|
752
773
|
# actually found blocking foreign commits — corroborate against GitHub's
|
|
753
774
|
# closed-issue state and re-verify with the downgrade signal populated.
|
|
754
775
|
closed = resolve_closed_issue_numbers(repo_github, mv.foreign, issue_num)
|
|
755
776
|
if closed:
|
|
756
777
|
mv = verify_merge_branch(
|
|
757
|
-
wt_path,
|
|
778
|
+
wt_path,
|
|
779
|
+
base=base,
|
|
780
|
+
issue_number=issue_num,
|
|
781
|
+
extra_allowed_issue_numbers=extra_allowed,
|
|
782
|
+
closed_issue_numbers=closed,
|
|
758
783
|
)
|
|
759
784
|
|
|
760
785
|
click.echo(f"branch: {branch_display}")
|
|
@@ -3057,6 +3057,7 @@ def finalize_interactive_exit(
|
|
|
3057
3057
|
repo_path: str | None = None,
|
|
3058
3058
|
artifact_paths: list[str] | None = None,
|
|
3059
3059
|
verify_merge: bool = False,
|
|
3060
|
+
extra_allowed_issue_numbers: frozenset[int] = frozenset(),
|
|
3060
3061
|
ssh_target: str | None = None,
|
|
3061
3062
|
branch: str | None = None,
|
|
3062
3063
|
smoke_repo_path: str | None = None,
|
|
@@ -3116,6 +3117,12 @@ def finalize_interactive_exit(
|
|
|
3116
3117
|
session, with no structured block, no transcript floor, and no fallback
|
|
3117
3118
|
if that command never ran (#1351). ``None`` (every non-smoke caller)
|
|
3118
3119
|
makes this an unconditional no-op.
|
|
3120
|
+
|
|
3121
|
+
*extra_allowed_issue_numbers* (#2545): forwarded to
|
|
3122
|
+
:func:`coord.agent.verify_merge_branch`'s parameter of the same name —
|
|
3123
|
+
additional issue numbers a merge-prep commit subject may legitimately
|
|
3124
|
+
reference (besides *issue_number*) without tripping the #604 FOREIGN
|
|
3125
|
+
check. Only meaningful when *verify_merge* is set; ignored otherwise.
|
|
3119
3126
|
"""
|
|
3120
3127
|
_effective_patterns = list(artifact_paths or [])
|
|
3121
3128
|
|
|
@@ -3197,7 +3204,10 @@ def finalize_interactive_exit(
|
|
|
3197
3204
|
)
|
|
3198
3205
|
|
|
3199
3206
|
merge_verify = verify_merge_branch(
|
|
3200
|
-
wt_v,
|
|
3207
|
+
wt_v,
|
|
3208
|
+
base=base_branch,
|
|
3209
|
+
issue_number=issue_number,
|
|
3210
|
+
extra_allowed_issue_numbers=extra_allowed_issue_numbers,
|
|
3201
3211
|
)
|
|
3202
3212
|
# #1279: corroborate blocking foreign commits against GitHub's
|
|
3203
3213
|
# closed-issue state before deciding — a typo'd reference to an
|
|
@@ -3210,6 +3220,7 @@ def finalize_interactive_exit(
|
|
|
3210
3220
|
wt_v,
|
|
3211
3221
|
base=base_branch,
|
|
3212
3222
|
issue_number=issue_number,
|
|
3223
|
+
extra_allowed_issue_numbers=extra_allowed_issue_numbers,
|
|
3213
3224
|
closed_issue_numbers=closed,
|
|
3214
3225
|
)
|
|
3215
3226
|
if not merge_verify.ok:
|
|
@@ -3915,6 +3926,7 @@ def _remote_verify_merge_branch(
|
|
|
3915
3926
|
base: str,
|
|
3916
3927
|
issue_number: int,
|
|
3917
3928
|
timeout: float = 30.0,
|
|
3929
|
+
extra_allowed_issue_numbers: frozenset[int] = frozenset(),
|
|
3918
3930
|
closed_issue_numbers: frozenset[int] = frozenset(),
|
|
3919
3931
|
) -> MergeVerify:
|
|
3920
3932
|
"""Remote (over ssh) analogue of :func:`coord.agent.verify_merge_branch`
|
|
@@ -3935,6 +3947,11 @@ def _remote_verify_merge_branch(
|
|
|
3935
3947
|
same conservative "unverifiable ⇒ not ok" fallback as the local function.
|
|
3936
3948
|
|
|
3937
3949
|
Args:
|
|
3950
|
+
extra_allowed_issue_numbers: Mirrors the same parameter in
|
|
3951
|
+
:func:`coord.agent.verify_merge_branch` (#2545) — additional
|
|
3952
|
+
issue numbers, besides *issue_number*, that a commit subject may
|
|
3953
|
+
legitimately reference without being flagged foreign (a
|
|
3954
|
+
``test-author``/``mock-author`` slice's own child issue).
|
|
3938
3955
|
closed_issue_numbers: Mirrors the same parameter in
|
|
3939
3956
|
:func:`coord.agent.verify_merge_branch` — issue numbers known to
|
|
3940
3957
|
be closed/merged. Foreign-subject commits referencing only
|
|
@@ -3990,7 +4007,9 @@ def _remote_verify_merge_branch(
|
|
|
3990
4007
|
foreign: list[tuple[str, str]] = []
|
|
3991
4008
|
advisory_foreign: list[tuple[str, str]] = []
|
|
3992
4009
|
for sha, subj in added:
|
|
3993
|
-
foreign_refs = _foreign_issue_refs(
|
|
4010
|
+
foreign_refs = _foreign_issue_refs(
|
|
4011
|
+
subj, issue_number, extra_allowed=extra_allowed_issue_numbers
|
|
4012
|
+
)
|
|
3994
4013
|
if not foreign_refs:
|
|
3995
4014
|
continue
|
|
3996
4015
|
if closed_issue_numbers and foreign_refs.issubset(closed_issue_numbers):
|
|
@@ -4088,6 +4107,7 @@ def finalize_remote_interactive_exit(
|
|
|
4088
4107
|
started_at: float | None = None,
|
|
4089
4108
|
artifact_paths: list[str] | None = None,
|
|
4090
4109
|
verify_merge: bool = False,
|
|
4110
|
+
extra_allowed_issue_numbers: frozenset[int] = frozenset(),
|
|
4091
4111
|
) -> InteractiveFinalizeResult:
|
|
4092
4112
|
"""Remote (#486d) analog of :func:`finalize_interactive_exit` for a remote
|
|
4093
4113
|
interactive FIX (and, since #1007, a remote ``--merge-of``).
|
|
@@ -4116,6 +4136,12 @@ def finalize_remote_interactive_exit(
|
|
|
4116
4136
|
self-report, so a botched remote rebase is never silently accepted as
|
|
4117
4137
|
``done``. This check runs FIRST, before the ``_assignment_already_recorded``
|
|
4118
4138
|
fast path below — do NOT reorder it after that check.
|
|
4139
|
+
|
|
4140
|
+
``extra_allowed_issue_numbers`` (#2545): mirrors the same parameter on
|
|
4141
|
+
:func:`finalize_interactive_exit` — forwarded to
|
|
4142
|
+
:func:`_remote_verify_merge_branch` so a ``test-author``/``mock-author``
|
|
4143
|
+
slice's own child-issue commit doesn't trip the FOREIGN check just
|
|
4144
|
+
because *issue_number* here is the milestone's tracking issue.
|
|
4119
4145
|
"""
|
|
4120
4146
|
_effective_patterns = list(artifact_paths or [])
|
|
4121
4147
|
|
|
@@ -4130,6 +4156,7 @@ def finalize_remote_interactive_exit(
|
|
|
4130
4156
|
merge_verify = _remote_verify_merge_branch(
|
|
4131
4157
|
ssh_target, remote_worktree_sh,
|
|
4132
4158
|
base=base_branch, issue_number=issue_number,
|
|
4159
|
+
extra_allowed_issue_numbers=extra_allowed_issue_numbers,
|
|
4133
4160
|
)
|
|
4134
4161
|
# #1279: same corroboration as the local finalize path — re-verify
|
|
4135
4162
|
# with the closed-issue downgrade signal only when the first (cheap,
|
|
@@ -4141,6 +4168,7 @@ def finalize_remote_interactive_exit(
|
|
|
4141
4168
|
merge_verify = _remote_verify_merge_branch(
|
|
4142
4169
|
ssh_target, remote_worktree_sh,
|
|
4143
4170
|
base=base_branch, issue_number=issue_number,
|
|
4171
|
+
extra_allowed_issue_numbers=extra_allowed_issue_numbers,
|
|
4144
4172
|
closed_issue_numbers=closed,
|
|
4145
4173
|
)
|
|
4146
4174
|
if not merge_verify.ok:
|
|
@@ -571,6 +571,94 @@ class TestClearExpectedRedEntries:
|
|
|
571
571
|
assert clear_expected_red_entries("tests:\n a: 1\n", 1, {"a"}) is None
|
|
572
572
|
|
|
573
573
|
|
|
574
|
+
class TestClearExpectedRedEntriesQuotedIds:
|
|
575
|
+
"""#2296: every Playwright manifest id is double-quoted (an unquoted
|
|
576
|
+
leading `[chromium]` would parse as a YAML flow sequence, not a string),
|
|
577
|
+
so the clearer must compare the *parsed* scalar, not the raw line text,
|
|
578
|
+
or it can never match a real web-playwright manifest."""
|
|
579
|
+
|
|
580
|
+
PLAYWRIGHT_ID = "[chromium] ms-1/84-front-door.spec.ts › placeholder"
|
|
581
|
+
|
|
582
|
+
def test_double_quoted_id_is_cleared(self) -> None:
|
|
583
|
+
text = (
|
|
584
|
+
"expected_red:\n"
|
|
585
|
+
f' 84:\n - "{self.PLAYWRIGHT_ID}"\n'
|
|
586
|
+
)
|
|
587
|
+
result = clear_expected_red_entries(text, 84, {self.PLAYWRIGHT_ID})
|
|
588
|
+
assert result is not None
|
|
589
|
+
assert "expected_red" not in result
|
|
590
|
+
data = parse_manifest_text(text)
|
|
591
|
+
assert data.expected_red == {84: frozenset({self.PLAYWRIGHT_ID})}
|
|
592
|
+
|
|
593
|
+
def test_single_quoted_id_is_cleared(self) -> None:
|
|
594
|
+
text = "expected_red:\n 1:\n - 'plain single quoted'\n"
|
|
595
|
+
result = clear_expected_red_entries(text, 1, {"plain single quoted"})
|
|
596
|
+
assert result is not None
|
|
597
|
+
assert "expected_red" not in result
|
|
598
|
+
|
|
599
|
+
def test_single_quoted_id_with_embedded_quote_escape_is_cleared(self) -> None:
|
|
600
|
+
# YAML's single-quote escape for an embedded `'` is `''`.
|
|
601
|
+
text = "expected_red:\n 1:\n - 'it''s red'\n"
|
|
602
|
+
data = parse_manifest_text(text)
|
|
603
|
+
assert data.expected_red == {1: frozenset({"it's red"})}
|
|
604
|
+
result = clear_expected_red_entries(text, 1, {"it's red"})
|
|
605
|
+
assert result is not None
|
|
606
|
+
assert "expected_red" not in result
|
|
607
|
+
|
|
608
|
+
def test_plain_unquoted_id_still_clears(self) -> None:
|
|
609
|
+
"""The unquoted case already worked before #2296 — must keep working."""
|
|
610
|
+
text = "expected_red:\n 1:\n - plain_unquoted_id\n"
|
|
611
|
+
result = clear_expected_red_entries(text, 1, {"plain_unquoted_id"})
|
|
612
|
+
assert result is not None
|
|
613
|
+
assert "expected_red" not in result
|
|
614
|
+
|
|
615
|
+
def test_id_containing_a_hash_is_cleared_not_truncated_as_a_comment(self) -> None:
|
|
616
|
+
"""Inside a quoted scalar, `#` is data, not a comment delimiter —
|
|
617
|
+
`sub_line.split("#", 1)` would truncate the id and miss it."""
|
|
618
|
+
id_with_hash = "issue #84 regression check"
|
|
619
|
+
text = f'expected_red:\n 1:\n - "{id_with_hash}"\n'
|
|
620
|
+
data = parse_manifest_text(text)
|
|
621
|
+
assert data.expected_red == {1: frozenset({id_with_hash})}
|
|
622
|
+
result = clear_expected_red_entries(text, 1, {id_with_hash})
|
|
623
|
+
assert result is not None
|
|
624
|
+
assert "expected_red" not in result
|
|
625
|
+
|
|
626
|
+
def test_quoted_id_with_trailing_comment_is_still_cleared(self) -> None:
|
|
627
|
+
text = (
|
|
628
|
+
"expected_red:\n"
|
|
629
|
+
f' 84:\n - "{self.PLAYWRIGHT_ID}" # flaky, see #91\n'
|
|
630
|
+
)
|
|
631
|
+
result = clear_expected_red_entries(text, 84, {self.PLAYWRIGHT_ID})
|
|
632
|
+
assert result is not None
|
|
633
|
+
assert "expected_red" not in result
|
|
634
|
+
|
|
635
|
+
def test_mixed_quoted_and_plain_partial_clear_preserves_the_other(self) -> None:
|
|
636
|
+
text = (
|
|
637
|
+
"expected_red:\n"
|
|
638
|
+
" 84:\n"
|
|
639
|
+
f' - "{self.PLAYWRIGHT_ID}"\n'
|
|
640
|
+
" - plain_id_stays\n"
|
|
641
|
+
)
|
|
642
|
+
result = clear_expected_red_entries(text, 84, {self.PLAYWRIGHT_ID})
|
|
643
|
+
assert result is not None
|
|
644
|
+
assert "plain_id_stays" in result
|
|
645
|
+
data = parse_manifest_text(result)
|
|
646
|
+
assert data.expected_red == {84: frozenset({"plain_id_stays"})}
|
|
647
|
+
|
|
648
|
+
def test_playwright_manifest_reproduction(self) -> None:
|
|
649
|
+
"""The exact reproduction from #2296: a manifest with several
|
|
650
|
+
double-quoted Playwright ids has ALL of them cleared and returns
|
|
651
|
+
updated (non-None) text."""
|
|
652
|
+
ids = [f"[chromium] ms-1/84-front-door.spec.ts › case {i}" for i in range(6)]
|
|
653
|
+
body = "\n".join(f' - "{i}"' for i in ids)
|
|
654
|
+
text = f"expected_red:\n 84:\n{body}\n"
|
|
655
|
+
parsed_ids = parse_manifest_text(text).expected_red[84]
|
|
656
|
+
assert len(parsed_ids) == 6
|
|
657
|
+
result = clear_expected_red_entries(text, 84, parsed_ids)
|
|
658
|
+
assert result is not None
|
|
659
|
+
assert "expected_red" not in result
|
|
660
|
+
|
|
661
|
+
|
|
574
662
|
class _FakeApiGhOps:
|
|
575
663
|
"""Stub for the GitHub-API-only surface #2164's post-merge clearing
|
|
576
664
|
sweep needs — no `gh` subprocess, no local checkout. Mirrors
|
|
@@ -861,6 +949,26 @@ class TestClearExpectedRedViaPr:
|
|
|
861
949
|
msg = clear_expected_red_via_pr("acme/x", "coord-tui", "main", 944, gh_ops=ops)
|
|
862
950
|
assert "no expected_red entries found" in msg
|
|
863
951
|
|
|
952
|
+
def test_no_match_in_text_surgery_is_reported_as_a_warning(self) -> None:
|
|
953
|
+
"""#2296: when ids were resolved from the parsed manifest but the
|
|
954
|
+
text-surgery pass finds nothing to remove (e.g. a flow-style
|
|
955
|
+
`944: [ms01::a]` entry the block-style-only text surgery doesn't
|
|
956
|
+
understand — see `_issue_header_re`'s docstring), that is a defect,
|
|
957
|
+
not a benign no-op, and must be `warning:`-prefixed so
|
|
958
|
+
`classify_expected_red_clear_result` reads it as "failed" rather
|
|
959
|
+
than a clean sweep."""
|
|
960
|
+
ops = _FakeApiGhOps({
|
|
961
|
+
"tests/acceptance/ms01/manifest.yml": (
|
|
962
|
+
"tests:\n ms01::a: 944\n"
|
|
963
|
+
"expected_red:\n 944: [ms01::a]\n"
|
|
964
|
+
),
|
|
965
|
+
})
|
|
966
|
+
msg = clear_expected_red_via_pr("acme/x", "coord-tui", "main", 944, gh_ops=ops)
|
|
967
|
+
assert msg.startswith("warning:")
|
|
968
|
+
assert "nothing matched" in msg
|
|
969
|
+
assert classify_expected_red_clear_result(msg) == "failed"
|
|
970
|
+
assert not ops.created_prs
|
|
971
|
+
|
|
864
972
|
def test_clears_a_per_issue_fragment_file(self) -> None:
|
|
865
973
|
"""#2543: clearing an issue whose expected_red lives in its OWN
|
|
866
974
|
manifest.d/<issue>.yml fragment edits exactly that file, and the
|
|
@@ -927,7 +1035,7 @@ class TestClassifyExpectedRedClearResult:
|
|
|
927
1035
|
|
|
928
1036
|
def test_unchanged_text_is_a_failure(self) -> None:
|
|
929
1037
|
assert classify_expected_red_clear_result(
|
|
930
|
-
"expected_red text unchanged (nothing matched)"
|
|
1038
|
+
"warning: expected_red text unchanged (nothing matched)"
|
|
931
1039
|
) == "failed"
|
|
932
1040
|
|
|
933
1041
|
|