code-coordinator 0.5.244__tar.gz → 0.5.245__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.244 → code_coordinator-0.5.245}/CLAUDE.md +3 -4
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/PKG-INFO +1 -1
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/code_coordinator.egg-info/PKG-INFO +1 -1
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/code_coordinator.egg-info/SOURCES.txt +4 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/code_coordinator.egg-info/scm_file_list.json +4 -0
- code_coordinator-0.5.245/code_coordinator.egg-info/scm_version.json +8 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/acceptance_drivers.py +14 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/agent.py +135 -30
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/audit.py +7 -3
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/client.py +75 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/_common.py +162 -37
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/acceptance.py +64 -1
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/chat.py +3 -1
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/dispatch.py +3 -1
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/dispatch_workers.py +3 -1
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/drive_queue.py +15 -7
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/merge.py +2 -3
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/portal.py +694 -27
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/release.py +26 -13
- code_coordinator-0.5.245/coord/commands/repo.py +1259 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/sessions.py +78 -54
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/test_gate.py +13 -5
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/dao.py +58 -31
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/db.py +340 -100
- code_coordinator-0.5.245/coord/decomposition_chat.py +536 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/drive.py +11 -4
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/drive_queue.py +59 -14
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/drive_state.py +74 -8
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/forge_availability.py +3 -1
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/gates.py +3 -1
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/github_ops.py +191 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/housekeeping.py +16 -13
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/interactive.py +14 -4
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/issue_store.py +35 -16
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/merge_queue.py +9 -9
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/notify.py +3 -1
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/platform_paths.py +23 -3
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/portal_store.py +805 -94
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/portal_sync.py +268 -13
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/release_cordon.py +228 -20
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/release_propagate.py +10 -4
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/repo_edit.py +94 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/repo_onboard.py +224 -10
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/reports.py +13 -8
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/serve_app.py +317 -2
- code_coordinator-0.5.245/coord/sql.py +509 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/state.py +264 -188
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/test_chat.py +3 -1
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/test_orchestrator.py +3 -1
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/worker_events.py +41 -8
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/fleet_watchdog.py +12 -1
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/conftest.py +186 -4
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_acceptance_drivers.py +22 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent.py +118 -70
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_app.py +44 -14
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_branch_capture.py +12 -10
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_reap.py +48 -2
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_zero_commit.py +53 -47
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_audit_log.py +28 -2
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cargo_cache.py +52 -23
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_acceptance.py +84 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_portal.py +502 -3
- code_coordinator-0.5.245/tests/test_commands_common.py +449 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_coord_test_runner_populated_home.py +31 -15
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_dao.py +34 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_dashboard_terminal.py +22 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_db.py +268 -1
- code_coordinator-0.5.245/tests/test_decomposition_chat.py +787 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_drive.py +9 -5
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_drive_queue.py +107 -11
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_drive_state.py +74 -8
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_filelock.py +10 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_fleet_watchdog.py +41 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_human_attended_437.py +7 -3
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_issue_store_seam.py +72 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_model_tiering.py +71 -44
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_plan_only.py +9 -3
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_platform_paths.py +92 -0
- code_coordinator-0.5.245/tests/test_portal_store.py +1184 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_portal_sync.py +232 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_progress.py +22 -14
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_release_cordon_deadlock_2240.py +385 -0
- code_coordinator-0.5.245/tests/test_repo_add.py +540 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_repo_edit_2220.py +120 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_repo_onboard_2220.py +192 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_serve.py +16 -1
- code_coordinator-0.5.245/tests/test_sql_dialect.py +768 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_state.py +198 -2
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_worker_events.py +58 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_worktree.py +52 -20
- code_coordinator-0.5.244/code_coordinator.egg-info/scm_version.json +0 -8
- code_coordinator-0.5.244/coord/commands/repo.py +0 -497
- code_coordinator-0.5.244/coord/decomposition_chat.py +0 -286
- code_coordinator-0.5.244/tests/test_decomposition_chat.py +0 -272
- code_coordinator-0.5.244/tests/test_portal_store.py +0 -465
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/.claude/commands/board.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/.claude/commands/complete-session.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/.claude/commands/coordinator.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/.githooks/_lib.sh +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/.githooks/post-checkout +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/.githooks/post-commit +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/.githooks/post-merge +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/.github/workflows/auto-release.yml +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/.github/workflows/cargo-test.yml +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/.github/workflows/publish.yml +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/.github/workflows/release-tui.yml +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/.github/workflows/test.yml +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/.gitignore +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/GOAL.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/LICENSE +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/MANIFEST.in +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/README.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/code_coordinator.egg-info/dependency_links.txt +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/code_coordinator.egg-info/entry_points.txt +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/code_coordinator.egg-info/requires.txt +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/code_coordinator.egg-info/top_level.txt +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/__init__.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/_board_mapping.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/acceptance.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/agent_app.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/agent_update.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/agents/opencode/.gitignore +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/agents/opencode/agents/work.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/agents/opencode/routing.jsonc +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/approved_work.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/auto_loop.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/block_log.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/board_bool_guard.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/board_schema.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/board_service.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/board_wire.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/brain.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/branch_model.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/bug_intake.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/cargo_cache.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/ci_fix.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/ci_github.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/ci_gitlab.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/ci_store.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/claim.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/cli.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/__init__.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/agent_ops.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/audit.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/drive.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/gate_a.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/gates.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/issues.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/lifecycle.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/milestone.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/plan_followup.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/plans.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/report.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/review.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/scorecard.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/setup.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/status.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/terminal.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/commands/tui.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/comments.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/config.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/config_reload.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/confirm_test.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/conflict_fix.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/dashboard/__init__.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/dashboard/fixture.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/dashboard/index.html +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/dashboard/server.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/dashboard/terminal.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/dead_end.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/README.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-failure-notify.service +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-fleet-watchdog.service +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-fleet-watchdog.timer +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy_manifest.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deploy_units.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/deps.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/diagnose.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/dispatch.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/dist_name.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/events.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/failure_class.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/filelock.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/fleet_config_health.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/freshness.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/gate_a.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/gate_b.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/gate_snapshot.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/goal.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/graph_health.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/__init__.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/aggregate.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/__init__.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/agent_install.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/cargo_targets.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/claude_binary.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/disk.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/fleet_board.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/fleet_deploy_lanes.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/fleet_phantom.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/fleet_unit_drift.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/graph.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/graphify_cli.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/index_lock.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/plan_usage.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/release_cordon.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/repo_state.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/spawned_coord.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/stalled_pipeline.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/timer_active.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/toolchain.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/unit_drift.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/unit_enablement.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/checks/worktrees.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/cli.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/context.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/fleet_snapshot.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/models.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/pypi.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/registry.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/render.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/health/units.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/hooks.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/liveness_auditor.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/machine_pause.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/milestone_chat.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/milestone_dispatch.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/milestone_gate.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/milestone_order.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/mock_author.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/models.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/network.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/new_issue_chat.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/notifier/__init__.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/notifier/baseline.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/notifier/cli.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/notifier/collect.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/notifier/digest.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/notifier/models.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/notifier/predicate.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/notifier/service.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/notifier/store.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/notifier/transport.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/openapi.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/overlap_fence.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/overlap_predict.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/parentage.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/parentage_github.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/pipeline.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/plan_parser.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/plans.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/portal_bridge.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/pr_body_lint.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/prereqs.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/progress.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/providers/__init__.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/providers/base.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/providers/claude.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/providers/claude_pty.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/providers/opencode.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/queue_diagnose.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/reconcile.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/reconcile_tick.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/refine_chat.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/release_verify.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/release_window.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/revalidate.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/review.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/scorecard.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/self_health.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/skills/coord-dispatch-verbs/SKILL.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/skills/drive-queue-preflight/SKILL.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/skills/fleet-restart-safety/SKILL.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/skills/merge-stuck-triage/SKILL.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/skills/pipeline-limbo-triage/SKILL.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/skills/portal-followup/SKILL.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/skills/review-verdict-recovery/SKILL.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/skills/tui-quadraui-workflow/SKILL.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/skills/update-issue/SKILL.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/smoke.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/spend_ceiling.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/split_work.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/stage_projection.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/test_author.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/test_report.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/tui_release.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/usage.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/usage_limits.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coord/usage_rollup.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/coordinator.example.yml +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-failure-notify.service +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-failure-notify.sh +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-fleet-watchdog.service +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-fleet-watchdog.timer +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-web-dist-build.sh +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-web-rollback.sh +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/deploy/node-shim.sh +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/ADR_COORD_WEB_ACCEPTANCE_SUITE.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/ADR_COORD_WEB_CI.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/ADR_COORD_WEB_DIST.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/AGENT_OPERATIONS.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/ARCHITECTURE.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/ARCH_SECURITY_GATES.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/COCKPIT.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/COST_DISCIPLINE.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/CROSS_PLATFORM.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/CUSTOMER_FACING_APPS.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/CUSTOMER_PORTAL.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/DRIVE_QUEUE.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/EPHEMERAL_WORKERS.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/FORGE_MIGRATION.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/GRAPHIFY_SETUP.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/ISSUE_GUIDANCE.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/MAC_MINI.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/NOTIFIER.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/OPENCODE_VERIFICATION.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/OPERATING_GOTCHAS.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/ORACLE_LOOP.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/PHONE_WEBAPP.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/PIPELINE_V2.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/PLATFORM_EVOLUTION.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/SECOND_BACKEND.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/STORE_SERVICE.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/TEST_FIRST_BUG_LANE.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/WEB_CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/WSL_WINDOWS_WORKER.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/mocks/web/README.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/mocks/web/_tokens.css +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/mocks/web/issue-detail.html +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/mocks/web/pipeline-narrow.html +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/docs/mocks/web/pipeline-wide.html +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/graphify-out/.gitignore +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/install-agent.sh +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/pyproject.toml +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/audit_review_verdict_overrides.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/azure-workers/bootstrap-shared.sh +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/azure-workers/build-worker-image.sh +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/azure-workers/coordinator-machine.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/azure-workers/epic-down.sh +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/azure-workers/epic-up.sh +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/azure-workers/preflight.sh +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/azure-workers/provision-worker.sh +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/azure-workers/tailnet-acl.hujson +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/azure-workers/verify-github-token.sh +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/check_gh_argv_containment.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/codegen.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/coord-test-runner.sh +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/coord-venv-rollback.sh +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/drive-batch.sh +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/gen_board_fixture.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/gen_mock_index.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/next_release_tag.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/run_tests_in_populated_home.sh +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/run_tests_without_gh.sh +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/smoke_437_interactive.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/verify_878_review_capture.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/verify_release_published.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/scripts/verify_release_wheel.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/setup.cfg +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/SMOKE_SET.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/__init__.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-33/audit_1039.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-33/contract.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-33/manifest.yml +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-33/mocks/audit-panel-detail.screen +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-33/mocks/audit-panel-empty.screen +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-33/mocks/audit-panel-filters.screen +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-33/mocks/audit-panel-populated.screen +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-37/conftest.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-37/contract.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-37/manifest.yml +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-38/contract.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-38/manifest.yml +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-38/mocks/plans-base.screen +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-38/mocks/plans-detail-pane.screen +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-38/mocks/plans-help-overlay.screen +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-38/mocks/plans-palette.screen +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-38/mocks/plans-rightclick-epic.screen +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-38/mocks/plans-rightclick-header.screen +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-38/mocks/plans-rightclick-stub.screen +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-38/plans_detail_1122.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-38/plans_help_1124.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-38/plans_rightclick_1123.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-51/contract.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-51/manifest.yml +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-51/tsconfig.json +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-65/board_split_2288.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-65/board_tabs_2282.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-65/board_tabs_close_2283.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-65/contract.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-65/detail_substate_2285.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-65/manifest.yml +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-65/mocks/board-baseline-no-tabs.screen +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-65/mocks/board-pinned-3-tabs.screen +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-65/mocks/board-preview-tab.screen +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-65/mocks/board-split-side-by-side.screen +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-65/mocks/board-tab-context-menu.screen +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-65/mocks/board-tabs-help-overlay.screen +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-65/mocks/board-tabs-overflow.screen +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-65/mocks/pipeline-tabs-independent.screen +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-65/pipeline_tabs_2284.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-65/tabs_discoverability_2287.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-65/tabs_persistence_2286.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-67/approved_items_2532.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-67/contract.md +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-67/manifest.d/2533.yml +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-67/manifest.yml +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-67/mocks/approved-items-chat-opened.screen +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-67/mocks/approved-items-context-menu.screen +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-67/mocks/approved-items-detail.screen +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-67/mocks/approved-items-empty.screen +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-67/mocks/approved-items-populated.screen +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-67/pull_decomposition_2533.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/board-pipeline-basic.json +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/opencode_run_sample.jsonl +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/playwright/all_pass.json +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/playwright/global_setup_crash.json +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/playwright/mixed_fail.json +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/playwright/retry_then_pass.json +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/playwright/skip.json +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/playwright/truncated.json +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_acceptance.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_api_error.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_branch_base.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_config_free_1712.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_deploy_units_endpoint.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_dirty_worktree.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_drive_queue_reconcile_2373.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_graph_self_heal.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_health_h3.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_idle_restart.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_push_failure.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_repos_and_pull.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_restart_services_endpoint.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_skills_self_heal.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_startup_diagnostics.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_update.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_update_bluegreen.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_agent_usage_limit.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_ambient_home_isolation.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_approve_reject_plan.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_approve_usage_gate.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_approved_work_2532.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_assignment_already_recorded_daemon.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_audit_outcome.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_audit_query.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_auto_loop.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_auto_release_publish_2035.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_base_checkout_restore.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_block_log.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_board_cap_762.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_board_fixture.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_board_read_path.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_board_schema.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_board_service.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_board_state.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_board_wire.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_brain.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_branch_model.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_bug_intake.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_build_worker_image_env_update.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_check_gh_argv_containment.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_ci_acceptance_gate_1950.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_ci_fix.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_ci_gitlab.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_ci_parity_2091.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_ci_store.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_claim.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_assign.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_assign_interactive_remote.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_assign_provider.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_assign_repo_drift_2219.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_audit.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_chat_continue.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_decide.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_diagnose_config_provenance.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_diagnose_forge_availability.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_diagnose_graph.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_diagnose_self.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_doctor.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_doctor_config_free_1801.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_drive.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_drive_queue.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_escalate.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_fix_headless_review.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_gate_a.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_install_drift.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_install_skills.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_issue_comment.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_issue_create_label.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_issue_reopen.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_issue_view_list.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_merge.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_milestone_assign.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_milestone_capture.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_milestone_chat_add_child.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_milestone_gate_b.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_milestone_gate_c.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_milestone_order.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_milestone_ship.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_network.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_new_issue_chat.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_plans.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_pull_artifact.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_queue.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_reattach_sessions.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_refine_board.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_release_preflight.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_release_propagate.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_release_window.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_repo_2220.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_review_test_author_tracking_epic_2639.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_scorecard.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_set_review_findings.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_status_advisory_terminal.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_status_contested_tag.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_status_merge_queue.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_status_provider.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_status_review_finalizing.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_status_test_failed_tag.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_status_usage_limit.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_sync_comments_873.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_test_plan.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_track.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_tui_update.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cli_wait.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_client_base_install.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_comments.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_completion_summary.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_config.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_config_acceptance.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_config_audit.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_config_pricing.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_config_usage_gate.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_confirm_test.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_conflict_fix.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_conflict_fix_semantic.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_coord_log_daemon_fallback_2547.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_coord_test.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_coord_test_runner_baseline.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_coord_test_runner_routing.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_coord_test_runner_toolchain.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_coord_uat.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_coord_web_sse_restart_live.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_coordinator_machine.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_cross_platform_imports.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_dashboard.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_dashboard_fixture.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_dashboard_terminal_live.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_dead_end.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_deploy_coord_db_backup.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_deploy_coord_web_dist.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_deploy_coord_web_rollback.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_deploy_drive_queue_unit.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_deploy_failure_notify_unit.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_deploy_manifest.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_deploy_notify_unit.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_deploy_units_lane.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_deploy_web_unit.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_deps.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_diagnose.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_dispatch.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_dispatch_target_validation.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_dist_name.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_done_housekeeping.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_drive_queue_blocked_rendering.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_drive_queue_launch_argv.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_drive_queue_max_parallel_per_repo_config.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_drive_queue_roll_pending.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_drive_queue_self_cordon_escalation.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_drive_tmux.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_epic_up_capability_detection.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_epic_up_image_provenance.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_errors.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_events.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_failure_class.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_fix_of_force_override.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_fleet_config_health.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_fleet_health_probes.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_fleet_health_snapshot.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_forge_availability.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_freshness.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_gate_a.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_gate_b.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_gate_snapshot_staleness.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_gates.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_gather_fleet_tmux_sessions.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_gen_mock_index.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_generated_types_fixture.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_github_ops.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_goal.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_graph_health.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_graph_selfheal_absent_2237.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_handoff.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_health_checks.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_health_cli.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_health_cli_graph.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_health_config.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_health_context.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_health_coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_health_deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_health_fix.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_health_incident_regression.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_health_pypi.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_health_registry.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_health_release_cordon_probe.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_health_timer_active.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_health_toolchain.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_health_unit_drift.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_health_unit_enablement.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_hooks.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_init.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_integration.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_interactive_briefing_echo.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_interactive_pane_log_2541.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_interactive_prefill_state.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_interactive_session_relaunch.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_interactive_test_verdict_backstop.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_interactive_token_attribution.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_interactive_worktree.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_liveness_auditor.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_liveness_notify.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_machine_pause.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_merge_queue.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_merge_verify.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_milestone_chat.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_milestone_gate.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_milestone_order.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_milestone_seam.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_mock_author.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_models.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_models_config_labels.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_needs_attention.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_network.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_new_issue_chat.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_next_release_tag.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_node_shim.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_notifier_baseline.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_notifier_cli.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_notifier_collect.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_notifier_config.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_notifier_drive_seam.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_notifier_isolation.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_notifier_predicate.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_notifier_quiet_hours.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_notifier_service.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_notify.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_notify_drain.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_openapi.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_operational_defaults.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_overlap_fence.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_overlap_predict.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_packaged_deploy_units.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_parentage.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_paste_landed.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_phantom_heal_venv_independence_2570.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_pipeline.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_plan_followup_approve_plan_command.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_plan_followup_pr_command.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_plan_followup_review_command.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_plan_parser.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_portal_bridge.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_portal_config.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_pr_body_lint.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_prereqs.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_production_db_guard.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_provider_seam.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_providers.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_providers_config_labels.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_providers_pty.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_quiet_hours.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_quiet_hours_store_2146.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_reap_merged_sessions.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_reap_stale_interactive_tick.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_reconcile.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_reconcile_branch.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_reconcile_completions.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_reconcile_late_agent_reports_2547.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_reconcile_merges.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_reconcile_no_agent_record.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_reconcile_tick.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_reconcile_usage_limit_done.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_refine_chat.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_release_cordon_2101.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_release_cordon_stuck_2490.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_release_propagate.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_release_propagate_threshold.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_release_roll_window_handoff.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_release_unified_1242.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_release_verify.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_release_window.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_remote_auto_prune.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_remote_interactive_reaper.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_repo_graph_fleet_2237.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_report_result_push.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_reports.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_retry.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_retry_advisory_1606.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_retry_type_1636.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_revalidate.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_review.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_review_end_review_without_verdict.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_review_parse_failure_diagnostic.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_review_reaffirm.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_review_state.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_review_verdict_backstop.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_review_verdict_override_audit.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_review_verdict_relay.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_review_zero_commits.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_scoped_review_wiring.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_scorecard.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_self_health.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_serve_app_board_trim.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_session.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_slice_issue_attribution.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_smoke.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_smoke_live_checkout_restore.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_smoke_workflow.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_spend_ceiling.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_spend_ceiling_coordinator.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_split.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_split_work.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_stage_projection.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_stalled_pipeline.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_state_review_findings_daemon.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_status_fleet_footer.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_stop_1567.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_store_contract.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_stuck.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_terminal_command.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_test_author.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_test_chat.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_test_orchestrator.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_test_report.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_test_verdict_parsing.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_test_verdict_transcript_floor.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_text_io_encoding_audit.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_thin_client_board_audit.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_thin_client_config_load_1080.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_thin_client_daemon_routing_906.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_tmux_host.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_tmux_session.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_transcript_floor.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_usage.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_usage_limits.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_usage_rollup.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_venv_live_install_2121.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_version_single_source.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_watch.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_worker_env_venv_isolation.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_worker_image_pin_sync.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_worker_safety.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_worker_test_scoping.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tests/test_worktree_rmtree_chokepoint.py +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/Cargo.lock +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/Cargo.toml +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/cargo-config-local-quadraui.toml.example +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/approved.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/audit.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/chat.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/data.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/dialogs.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/doc_tabs.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/drive.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/drive_queue.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/escalation.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/events.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/fixtures.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/fleet_health.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/fleet_sessions.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/fleet_terminals.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/format.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/milestone_dag.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/mod.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/msv.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/pipeline.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/plans.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/render.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/reports.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/sessions.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/settings_ui.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/sidebar.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/terminal.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/tests.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/types.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/app/workspace.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/bin/gtk.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/commands.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/lib.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/main.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/src/settings.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/tests/acceptance.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/tests/cli.rs +0 -0
- {code_coordinator-0.5.244 → code_coordinator-0.5.245}/tui/tests/fixtures/board_sample.json +0 -0
|
@@ -223,10 +223,9 @@ versus keep in the coordinator session) are in
|
|
|
223
223
|
bypassed by the one class of session most likely to reach for `gh` out of habit. Reads are
|
|
224
224
|
covered too — `coord issue list` and `coord issue view` shipped in #2484, so a plain issue
|
|
225
225
|
listing/search or an issue-plus-comments lookup has no excuse to reach for `gh`. Where no
|
|
226
|
-
`coord` subcommand covers what's needed —
|
|
227
|
-
`coord
|
|
228
|
-
|
|
229
|
-
or file, not a silent workaround.
|
|
226
|
+
`coord` subcommand covers what's needed — the seam is wide but not total, so check
|
|
227
|
+
`coord <group> --help` before concluding either way — falling back to `gh` for that one call is
|
|
228
|
+
fine, but say so and treat it as a gap to flag or file, not a silent workaround.
|
|
230
229
|
|
|
231
230
|
## Testing — black-box coverage is the acceptance bar
|
|
232
231
|
|
|
@@ -136,6 +136,7 @@ coord/serve_app.py
|
|
|
136
136
|
coord/smoke.py
|
|
137
137
|
coord/spend_ceiling.py
|
|
138
138
|
coord/split_work.py
|
|
139
|
+
coord/sql.py
|
|
139
140
|
coord/stage_projection.py
|
|
140
141
|
coord/state.py
|
|
141
142
|
coord/test_author.py
|
|
@@ -472,6 +473,7 @@ tests/test_cli_track.py
|
|
|
472
473
|
tests/test_cli_tui_update.py
|
|
473
474
|
tests/test_cli_wait.py
|
|
474
475
|
tests/test_client_base_install.py
|
|
476
|
+
tests/test_commands_common.py
|
|
475
477
|
tests/test_comments.py
|
|
476
478
|
tests/test_completion_summary.py
|
|
477
479
|
tests/test_config.py
|
|
@@ -662,6 +664,7 @@ tests/test_release_verify.py
|
|
|
662
664
|
tests/test_release_window.py
|
|
663
665
|
tests/test_remote_auto_prune.py
|
|
664
666
|
tests/test_remote_interactive_reaper.py
|
|
667
|
+
tests/test_repo_add.py
|
|
665
668
|
tests/test_repo_edit_2220.py
|
|
666
669
|
tests/test_repo_graph_fleet_2237.py
|
|
667
670
|
tests/test_repo_onboard_2220.py
|
|
@@ -694,6 +697,7 @@ tests/test_spend_ceiling.py
|
|
|
694
697
|
tests/test_spend_ceiling_coordinator.py
|
|
695
698
|
tests/test_split.py
|
|
696
699
|
tests/test_split_work.py
|
|
700
|
+
tests/test_sql_dialect.py
|
|
697
701
|
tests/test_stage_projection.py
|
|
698
702
|
tests/test_stalled_pipeline.py
|
|
699
703
|
tests/test_state.py
|
{code_coordinator-0.5.244 → code_coordinator-0.5.245}/code_coordinator.egg-info/scm_file_list.json
RENAMED
|
@@ -243,6 +243,7 @@
|
|
|
243
243
|
"coord/smoke.py",
|
|
244
244
|
"coord/spend_ceiling.py",
|
|
245
245
|
"coord/split_work.py",
|
|
246
|
+
"coord/sql.py",
|
|
246
247
|
"coord/stage_projection.py",
|
|
247
248
|
"coord/state.py",
|
|
248
249
|
"coord/test_author.py",
|
|
@@ -544,6 +545,7 @@
|
|
|
544
545
|
"tests/test_cli_tui_update.py",
|
|
545
546
|
"tests/test_cli_wait.py",
|
|
546
547
|
"tests/test_client_base_install.py",
|
|
548
|
+
"tests/test_commands_common.py",
|
|
547
549
|
"tests/test_comments.py",
|
|
548
550
|
"tests/test_completion_summary.py",
|
|
549
551
|
"tests/test_config.py",
|
|
@@ -734,6 +736,7 @@
|
|
|
734
736
|
"tests/test_release_window.py",
|
|
735
737
|
"tests/test_remote_auto_prune.py",
|
|
736
738
|
"tests/test_remote_interactive_reaper.py",
|
|
739
|
+
"tests/test_repo_add.py",
|
|
737
740
|
"tests/test_repo_edit_2220.py",
|
|
738
741
|
"tests/test_repo_graph_fleet_2237.py",
|
|
739
742
|
"tests/test_repo_onboard_2220.py",
|
|
@@ -766,6 +769,7 @@
|
|
|
766
769
|
"tests/test_spend_ceiling_coordinator.py",
|
|
767
770
|
"tests/test_split.py",
|
|
768
771
|
"tests/test_split_work.py",
|
|
772
|
+
"tests/test_sql_dialect.py",
|
|
769
773
|
"tests/test_stage_projection.py",
|
|
770
774
|
"tests/test_stalled_pipeline.py",
|
|
771
775
|
"tests/test_state.py",
|
|
@@ -49,6 +49,20 @@ from pathlib import Path
|
|
|
49
49
|
# adapter landing, but running it must fail loudly rather than silently no-op.
|
|
50
50
|
SUPPORTED_KINDS = ("tui-tuidriver", "cli-pytest", "web-playwright")
|
|
51
51
|
|
|
52
|
+
# #2748 (IL-2): driver kinds whose `run` produces a real pass/fail verdict
|
|
53
|
+
# but NOT yet a deterministic one, because an input they depend on hasn't
|
|
54
|
+
# shipped. `web-playwright` is the one case today — the driver itself
|
|
55
|
+
# landed (#1539), but the seeded-board fixture server it needs to run
|
|
56
|
+
# against a fixed, known state (#1538) has not, so a run against a live
|
|
57
|
+
# fleet observes whatever that fleet happens to be doing rather than a
|
|
58
|
+
# pinned fixture (CLAUDE.md's web-playwright section: "a smoke net, not a
|
|
59
|
+
# deterministic oracle"). `coord.repo_onboard`'s oracle-readiness layer
|
|
60
|
+
# reads this to report the gap explicitly instead of a driver-present repo
|
|
61
|
+
# silently reading as fully oracle-ready. Kept here (not in coord.config)
|
|
62
|
+
# because it is exactly the kind of "which medium behaves how" fact this
|
|
63
|
+
# module already owns — see the module docstring.
|
|
64
|
+
FIXTURE_SERVER_DEPENDENT_KINDS = frozenset({"web-playwright"})
|
|
65
|
+
|
|
52
66
|
# libtest's ``--format json`` per-line test-event stream (`cargo test -- -Z
|
|
53
67
|
# unstable-options --format json`) event -> our normalized status.
|
|
54
68
|
_LIBTEST_EVENT_STATUS = {"ok": "pass", "failed": "fail", "ignored": "skip"}
|
|
@@ -3945,25 +3945,44 @@ MILESTONE_CHAT_DENY_COMMANDS: list[str] = [
|
|
|
3945
3945
|
|
|
3946
3946
|
DECOMPOSITION_CHAT_SYSTEM_PROMPT = """\
|
|
3947
3947
|
You are a decomposition steward for a customer's APPROVED portal submission \
|
|
3948
|
-
that an operator just pulled into this session
|
|
3949
|
-
|
|
3950
|
-
|
|
3951
|
-
session
|
|
3952
|
-
|
|
3953
|
-
|
|
3954
|
-
|
|
3955
|
-
|
|
3956
|
-
The first user message carries:
|
|
3957
|
-
|
|
3958
|
-
|
|
3959
|
-
(
|
|
3960
|
-
|
|
3961
|
-
|
|
3948
|
+
that an operator just pulled into this session (#2533, ms-67 contract §4; \
|
|
3949
|
+
#2750, IL-4 — "the intake session"). This is ONE ITERATION of a possibly \
|
|
3950
|
+
multi-day, multi-session intake — a client round-trip takes days, so no \
|
|
3951
|
+
single session can sit and wait for one. Every iteration is disposable; the \
|
|
3952
|
+
`coord portal` ledger (Q&A, decisions, narrative) is what's durable, and it \
|
|
3953
|
+
is what makes it safe for a LATER iteration on a DIFFERENT machine to pick \
|
|
3954
|
+
up exactly where this one left off with no memory of this conversation.
|
|
3955
|
+
|
|
3956
|
+
The first user message carries, in order: a MODE line (`MODE: FILE` or \
|
|
3957
|
+
`MODE: DISCUSS`) naming which posture this iteration runs in and WHY it was \
|
|
3958
|
+
picked — say so yourself, verbatim, as the first line of your own final \
|
|
3959
|
+
response (a session that silently chose to file instead of asking is \
|
|
3960
|
+
exactly the failure this design exists to prevent); the submission's \
|
|
3961
|
+
OUTCOME, AUDIENCE, DONE DEFINITION, and CONSTRAINTS; its mapped repo(s); \
|
|
3962
|
+
`coordinator.yml` topology context for those repo(s) (depends_on, which \
|
|
3963
|
+
machines claim each repo); and a RUNNING CONTEXT section rendering the \
|
|
3964
|
+
submission's full ledger so far — every question asked and (if answered) \
|
|
3965
|
+
its answer, every decision on record (current and archived, archived ones \
|
|
3966
|
+
carrying WHY they were ruled out), and the current narrative. Read \
|
|
3967
|
+
RUNNING CONTEXT before doing anything else: never re-ask a question already \
|
|
3968
|
+
answered there, and never re-propose a decision already archived there \
|
|
3969
|
+
without new information that changes the calculus — cite the existing \
|
|
3970
|
+
entry's seq/reason if the operator or a re-briefed fact brings it up again.
|
|
3971
|
+
|
|
3972
|
+
You can always re-fetch the live ledger mid-session with:
|
|
3973
|
+
|
|
3974
|
+
coord portal ledger <submission_id>
|
|
3975
|
+
|
|
3976
|
+
(add `--json` for the raw structured form) — useful in a long-running \
|
|
3977
|
+
`--interactive` conversation where the operator may answer something out of \
|
|
3978
|
+
band while you're mid-thought.
|
|
3979
|
+
|
|
3980
|
+
── Filing a decomposition (MODE: FILE, or MODE: DISCUSS's "Decompose" exit) ──
|
|
3981
|
+
|
|
3962
3982
|
1. Decide whether this is ORACLE-LOOP-SHAPED work (docs/ORACLE_LOOP.md) — \
|
|
3963
3983
|
big or cross-cutting enough to warrant a Gate-A contract + independent \
|
|
3964
|
-
test-author, or small enough to skip straight to normal dispatch.
|
|
3965
|
-
|
|
3966
|
-
explicit confirmation before filing, but flag your reasoning.
|
|
3984
|
+
test-author, or small enough to skip straight to normal dispatch. Flag your \
|
|
3985
|
+
reasoning even when it's obvious.
|
|
3967
3986
|
2. Produce one or more GitHub issues describing the work, using:
|
|
3968
3987
|
|
|
3969
3988
|
coord issue create <repo> --title '<title>' --body '<body>'
|
|
@@ -3997,31 +4016,116 @@ silently. Say so explicitly in your final summary to the operator (e.g. \
|
|
|
3997
4016
|
"this submission has no recorded portal link — coord portal link only \
|
|
3998
4017
|
covers milestones, and #2533's own dispatcher found no equivalent for a \
|
|
3999
4018
|
one-off issue"), so the gap is visible rather than silently lost.
|
|
4019
|
+
5. Archive the decision trail onto the epic (#2750 — "every iteration must \
|
|
4020
|
+
record its rejections with reasons", surfaced where the next human to read \
|
|
4021
|
+
the epic will actually see it, not just in `coord portal ledger`). When a \
|
|
4022
|
+
milestone/epic was filed in step 2: run `coord portal ledger <submission_id>` \
|
|
4023
|
+
(read-only), take its "## Decisions" and "## Archive (superseded / \
|
|
4024
|
+
rejected)" sections verbatim, and splice them onto the epic's body under a \
|
|
4025
|
+
`## Decisions` heading — read the epic's current body (e.g. `gh issue view \
|
|
4026
|
+
<epic> --json body -q .body`), append the section (or replace a pre-existing \
|
|
4027
|
+
`## Decisions` heading in place — do not duplicate it), and write it back \
|
|
4028
|
+
with `coord issue edit <repo> <epic> --body-file <tmpfile>` (never raw `gh \
|
|
4029
|
+
issue edit`). Skip this step only when the ledger has no decisions at all \
|
|
4030
|
+
(a submission that never went through a MODE: DISCUSS iteration) — say so \
|
|
4031
|
+
rather than writing an empty section.
|
|
4032
|
+
|
|
4033
|
+
── MODE: DISCUSS — ask / propose / decompose ──
|
|
4034
|
+
|
|
4035
|
+
Your first user message said `MODE: DISCUSS` because the submission is \
|
|
4036
|
+
under-specified or the mapped repo is greenfield (#2750's own mechanical \
|
|
4037
|
+
triggers — missing done-definition/audience, or no commits/no CLAUDE.md on \
|
|
4038
|
+
the mapped repo yet). Filing straight through here means inventing an \
|
|
4039
|
+
architecture or a done-definition on the client's behalf and queuing real \
|
|
4040
|
+
work against the guess. Instead, THIS iteration ends in EXACTLY ONE of \
|
|
4041
|
+
three terminal moves — never zero, never more than one:
|
|
4042
|
+
|
|
4043
|
+
1. ASK — when what's missing can only come from the CLIENT (not from the \
|
|
4044
|
+
operator, not from repo history, not from a reasonable judgment call you \
|
|
4045
|
+
could make yourself). Prefer ONE well-formed question: the portal's \
|
|
4046
|
+
composer on the client's side pauses on the most recent question only, so \
|
|
4047
|
+
a scattershot list gets a partial answer at best. Then:
|
|
4048
|
+
|
|
4049
|
+
coord portal enqueue-question <submission_id> "<question>"
|
|
4050
|
+
coord portal enqueue-status <submission_id> needs-input
|
|
4051
|
+
|
|
4052
|
+
and STOP — end your final turn summarizing the question and why, and run \
|
|
4053
|
+
nothing else this iteration (no filing, no decisions). IL-3's consumer \
|
|
4054
|
+
wakes the next iteration once the client answers.
|
|
4055
|
+
|
|
4056
|
+
2. PROPOSE — when you CAN make a reasonable judgment call on the client's \
|
|
4057
|
+
behalf (an architecture/stack/framework choice, a scope cut, anything a \
|
|
4058
|
+
competent operator could just decide) but it deserves OPERATOR sign-off \
|
|
4059
|
+
before it becomes load-bearing — this is OPERATOR-facing, never portal-\
|
|
4060
|
+
facing; the client is never asked to adjudicate a framework choice. Record \
|
|
4061
|
+
your recommendation:
|
|
4062
|
+
|
|
4063
|
+
coord portal decision propose <submission_id> "<decision text>"
|
|
4064
|
+
|
|
4065
|
+
Then, in the SAME iteration, record every alternative you seriously \
|
|
4066
|
+
considered and ruled OUT — with a reason — so a later iteration doesn't \
|
|
4067
|
+
re-litigate it (#2750: "without recorded rejections you re-litigate"):
|
|
4068
|
+
|
|
4069
|
+
coord portal decision propose <submission_id> "<alternative text>"
|
|
4070
|
+
coord portal decision reject <submission_id> <alt_seq> "<why ruled out>"
|
|
4071
|
+
|
|
4072
|
+
If you're REVISING a decision an earlier iteration already proposed or \
|
|
4073
|
+
confirmed (not a same-iteration alternative), use supersede instead of \
|
|
4074
|
+
reject so the earlier text stays on record rather than reading as an \
|
|
4075
|
+
outright mistake:
|
|
4076
|
+
|
|
4077
|
+
coord portal decision supersede <submission_id> <old_seq> <new_seq>
|
|
4078
|
+
|
|
4079
|
+
Then STOP — summarize every proposal and rejection for the operator and \
|
|
4080
|
+
run nothing else. Do NOT confirm your own proposal (`coord portal decision \
|
|
4081
|
+
confirm` is the operator's move, taken outside this session) and do NOT \
|
|
4082
|
+
file or queue anything until a later iteration is briefed with a confirmed \
|
|
4083
|
+
decision. Confirmation is what starts that next iteration.
|
|
4084
|
+
|
|
4085
|
+
3. DECOMPOSE — when done_definition/audience are captured (directly, or \
|
|
4086
|
+
settled via decisions now CONFIRMED in RUNNING CONTEXT) and every mapped \
|
|
4087
|
+
repo has something to decompose against. Follow "Filing a decomposition" \
|
|
4088
|
+
above in full, including step 5's decision archive.
|
|
4089
|
+
|
|
4090
|
+
If genuinely nothing has changed since the last iteration (re-briefed with \
|
|
4091
|
+
no new answer and no new information), say so explicitly and re-Ask or \
|
|
4092
|
+
re-Propose rather than inventing new work to look productive.
|
|
4000
4093
|
|
|
4001
4094
|
Rules:
|
|
4002
4095
|
- Do NOT run raw `gh issue create`/`gh issue edit`/`gh pr *`/`gh api -X \
|
|
4003
4096
|
POST|PATCH|DELETE` or any other mutating `gh` command — the write paths \
|
|
4004
|
-
above (`coord issue create`, `coord
|
|
4005
|
-
drive-queue add`, `coord portal link
|
|
4097
|
+
above (`coord issue create`, `coord issue edit --body-file`, `coord \
|
|
4098
|
+
milestone create/add-child`, `coord drive-queue add`, `coord portal link`, \
|
|
4099
|
+
`coord portal enqueue-question`, `coord portal enqueue-status`, `coord \
|
|
4100
|
+
portal decision propose/reject/supersede`) are the only ones you may use. \
|
|
4101
|
+
`gh issue view` and other read-only `gh`/`coord` lookups are fine.
|
|
4006
4102
|
- Do NOT run `coord assign <machine> <repo> <issue>` or `coord drive \
|
|
4007
4103
|
--tmux` — always `coord drive-queue add`.
|
|
4008
4104
|
- Do NOT run `coord approve` or `coord merge` — outside this session's job.
|
|
4105
|
+
- Do NOT run `coord portal decision confirm` — that is the OPERATOR's move, \
|
|
4106
|
+
never this session's own.
|
|
4009
4107
|
- Do NOT run `git push`, `git commit`, or any command that writes to a repo \
|
|
4010
4108
|
checkout — this session files issues and queues work, it does not touch code.
|
|
4011
|
-
-
|
|
4012
|
-
|
|
4109
|
+
- If an `enqueue-question`/`enqueue-status`/`decision` command refuses with \
|
|
4110
|
+
a thin-client error (this machine isn't the daemon host and isn't routed \
|
|
4111
|
+
yet — #2751), say so explicitly to the operator rather than silently \
|
|
4112
|
+
dropping the Ask/Propose; do not retry it as some other command.
|
|
4113
|
+
- Keep the operator informed: summarize your plan before writing anything, \
|
|
4114
|
+
and report back what you asked/proposed/filed/queued/linked (and any gap) \
|
|
4013
4115
|
when done.\
|
|
4014
4116
|
"""
|
|
4015
4117
|
|
|
4016
|
-
# Deny list applied to decomposition-chat workers (#2533
|
|
4017
|
-
#
|
|
4018
|
-
#
|
|
4019
|
-
#
|
|
4020
|
-
#
|
|
4021
|
-
#
|
|
4022
|
-
#
|
|
4023
|
-
#
|
|
4024
|
-
#
|
|
4118
|
+
# Deny list applied to decomposition-chat workers (#2533; extended #2750
|
|
4119
|
+
# IL-4 for the ask/propose/decompose intake loop). Unlike milestone-chat,
|
|
4120
|
+
# this type's WHOLE job is to write (issue create / issue edit / milestone
|
|
4121
|
+
# create+add-child / drive-queue add / portal link / enqueue-question /
|
|
4122
|
+
# enqueue-status / decision propose|reject|supersede), so this list is
|
|
4123
|
+
# deliberately narrow — it blocks raw `gh` mutations, repo-write git
|
|
4124
|
+
# commands, destructive git ops, the three unrelated `coord` write commands
|
|
4125
|
+
# (approve/merge/assign) explicitly out of scope, and `coord portal decision
|
|
4126
|
+
# confirm` (the OPERATOR's move, never this session's own — #2750's "Propose"
|
|
4127
|
+
# terminal move must not self-confirm), while every write path this session
|
|
4128
|
+
# actually needs is allowed by omission.
|
|
4025
4129
|
DECOMPOSITION_CHAT_DENY_COMMANDS: list[str] = [
|
|
4026
4130
|
"Bash(gh issue edit *)",
|
|
4027
4131
|
"Bash(gh issue create *)",
|
|
@@ -4047,6 +4151,7 @@ DECOMPOSITION_CHAT_DENY_COMMANDS: list[str] = [
|
|
|
4047
4151
|
"Bash(coord approve *)",
|
|
4048
4152
|
"Bash(coord merge *)",
|
|
4049
4153
|
"Bash(coord assign *)",
|
|
4154
|
+
"Bash(coord portal decision confirm *)",
|
|
4050
4155
|
]
|
|
4051
4156
|
|
|
4052
4157
|
MOCK_AUTHOR_SYSTEM_PROMPT = """\
|
|
@@ -31,6 +31,7 @@ import threading
|
|
|
31
31
|
import time
|
|
32
32
|
from typing import Any
|
|
33
33
|
|
|
34
|
+
from coord import sql
|
|
34
35
|
from coord.db import get_connection, is_lock_contention_error, retry_on_locked
|
|
35
36
|
|
|
36
37
|
_log = logging.getLogger(__name__)
|
|
@@ -138,7 +139,8 @@ def _record_audit_unsafe(
|
|
|
138
139
|
conn = get_connection()
|
|
139
140
|
|
|
140
141
|
def _write() -> None:
|
|
141
|
-
|
|
142
|
+
sql.execute(
|
|
143
|
+
conn,
|
|
142
144
|
"""INSERT INTO audit_log (
|
|
143
145
|
ts, tier, category, event_type, actor,
|
|
144
146
|
repo, issue, assignment_id, machine, summary, details_json
|
|
@@ -282,7 +284,8 @@ def _maybe_trim(conn) -> None:
|
|
|
282
284
|
max_rows = _resolve_max_rows()
|
|
283
285
|
if max_rows <= 0:
|
|
284
286
|
return
|
|
285
|
-
|
|
287
|
+
sql.execute(
|
|
288
|
+
conn,
|
|
286
289
|
"DELETE FROM audit_log WHERE id NOT IN "
|
|
287
290
|
"(SELECT id FROM audit_log ORDER BY id DESC LIMIT ?)",
|
|
288
291
|
(max_rows,),
|
|
@@ -465,7 +468,8 @@ def query_audit_log(
|
|
|
465
468
|
where = f"WHERE {' AND '.join(clauses)}" if clauses else ""
|
|
466
469
|
conn = get_connection()
|
|
467
470
|
# Fetch one extra row to detect has_more without a second COUNT query.
|
|
468
|
-
rows =
|
|
471
|
+
rows = sql.execute(
|
|
472
|
+
conn,
|
|
469
473
|
f"SELECT {', '.join(_AUDIT_COLUMNS)} FROM audit_log {where} "
|
|
470
474
|
"ORDER BY ts DESC, id DESC LIMIT ?",
|
|
471
475
|
(*params, limit + 1),
|
|
@@ -576,6 +576,81 @@ def fetch_gate_a_approval(
|
|
|
576
576
|
return None
|
|
577
577
|
|
|
578
578
|
|
|
579
|
+
def fetch_portal_link(
|
|
580
|
+
svc: ServiceConfig,
|
|
581
|
+
repo_name: str,
|
|
582
|
+
*,
|
|
583
|
+
milestone_number: int | None = None,
|
|
584
|
+
issue_number: int | None = None,
|
|
585
|
+
timeout: float = _DEFAULT_TIMEOUT,
|
|
586
|
+
) -> dict | None:
|
|
587
|
+
"""GET one milestone's (or, with ``issue_number``, one issue's) portal
|
|
588
|
+
``submission_id`` link (#2751). Pass exactly one of ``milestone_number``
|
|
589
|
+
/ ``issue_number`` — same contract as :func:`coord.state.get_portal_link`.
|
|
590
|
+
|
|
591
|
+
Fail-soft to ``None`` on any transport/HTTP/decode error, mirroring
|
|
592
|
+
:func:`fetch_gate_a_approval`. "Couldn't ask" collapsing to "not linked"
|
|
593
|
+
matches the CLI's own pre-existing read for a genuinely unlinked
|
|
594
|
+
milestone/issue, so a daemon hiccup degrades to the same message an
|
|
595
|
+
operator would already see rather than a traceback.
|
|
596
|
+
"""
|
|
597
|
+
params: dict[str, str | int] = {"repo_name": repo_name}
|
|
598
|
+
if milestone_number is not None:
|
|
599
|
+
params["milestone_number"] = milestone_number
|
|
600
|
+
if issue_number is not None:
|
|
601
|
+
params["issue_number"] = issue_number
|
|
602
|
+
try:
|
|
603
|
+
resp = httpx.get(
|
|
604
|
+
f"{svc.url}/portal-link",
|
|
605
|
+
params=params,
|
|
606
|
+
headers=_headers(svc),
|
|
607
|
+
timeout=timeout,
|
|
608
|
+
)
|
|
609
|
+
resp.raise_for_status()
|
|
610
|
+
data = resp.json()
|
|
611
|
+
except (httpx.HTTPError, ValueError):
|
|
612
|
+
return None
|
|
613
|
+
link = data.get("link") if isinstance(data, dict) else None
|
|
614
|
+
return link if isinstance(link, dict) else None
|
|
615
|
+
|
|
616
|
+
|
|
617
|
+
def fetch_portal_ledger(
|
|
618
|
+
svc: ServiceConfig, submission_id: str, *, timeout: float = _DEFAULT_TIMEOUT
|
|
619
|
+
) -> dict:
|
|
620
|
+
"""GET ``/portal-ledger`` from the daemon *svc* points at — the running-
|
|
621
|
+
context payload :func:`coord.portal_store.render_ledger_payload` builds
|
|
622
|
+
locally, routed through the daemon for a thin client (#2751).
|
|
623
|
+
|
|
624
|
+
Factored out of two independent near-verbatim copies (#2750 fix round):
|
|
625
|
+
`coord.commands.portal._fetch_ledger_payload_remote` (the ``coord
|
|
626
|
+
portal ledger`` CLI render) and `coord.decomposition_chat.
|
|
627
|
+
_fetch_ledger_payload_remote` (the intake session's own briefing
|
|
628
|
+
builder, `fetch_running_context`) agreed on the same GET/params/
|
|
629
|
+
header/timeout/``resp.json()["payload"]`` wire shape but maintained it
|
|
630
|
+
in two places — exactly the split-brain-waiting-to-happen this repo's
|
|
631
|
+
own rule warns about ("if two surfaces answer the same question, they
|
|
632
|
+
must call the same function"). Both already reach into this module for
|
|
633
|
+
other daemon calls, so this is the natural shared home.
|
|
634
|
+
|
|
635
|
+
Deliberately does **not** follow the fail-soft-to-``None`` convention
|
|
636
|
+
most of this module's other ``fetch_*`` helpers use (mirroring
|
|
637
|
+
:func:`fetch_milestone_gate`'s reasoning): a briefing that silently
|
|
638
|
+
rendered as "empty" on a daemon hiccup would be indistinguishable from
|
|
639
|
+
"genuinely nothing on file yet", which is actively misleading rather
|
|
640
|
+
than merely unavailable. Raises ``httpx.HTTPError`` on a transport/HTTP
|
|
641
|
+
failure and ``KeyError``/``ValueError`` on a malformed body; callers
|
|
642
|
+
let the failure surface rather than swallowing it.
|
|
643
|
+
"""
|
|
644
|
+
resp = httpx.get(
|
|
645
|
+
f"{svc.url}/portal-ledger",
|
|
646
|
+
params={"submission_id": submission_id},
|
|
647
|
+
headers=_headers(svc),
|
|
648
|
+
timeout=timeout,
|
|
649
|
+
)
|
|
650
|
+
resp.raise_for_status()
|
|
651
|
+
return resp.json()["payload"]
|
|
652
|
+
|
|
653
|
+
|
|
579
654
|
def fetch_milestone_gate(
|
|
580
655
|
svc: ServiceConfig,
|
|
581
656
|
repo_name: str,
|