code-coordinator 0.5.188__tar.gz → 0.5.189__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.188 → code_coordinator-0.5.189}/PKG-INFO +1 -1
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/code_coordinator.egg-info/PKG-INFO +1 -1
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/code_coordinator.egg-info/scm_version.json +2 -2
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/agent.py +71 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/providers/claude.py +19 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/providers/claude_pty.py +11 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_agent.py +111 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_providers_pty.py +34 -2
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_worker_test_scoping.py +23 -4
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/.claude/commands/board.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/.claude/commands/complete-session.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/.claude/commands/coordinator.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/.githooks/_lib.sh +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/.githooks/post-checkout +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/.githooks/post-commit +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/.githooks/post-merge +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/.github/workflows/auto-release.yml +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/.github/workflows/cargo-test.yml +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/.github/workflows/publish.yml +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/.github/workflows/release-tui.yml +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/.github/workflows/test.yml +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/.gitignore +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/CLAUDE.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/GOAL.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/LICENSE +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/MANIFEST.in +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/README.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/code_coordinator.egg-info/SOURCES.txt +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/code_coordinator.egg-info/dependency_links.txt +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/code_coordinator.egg-info/entry_points.txt +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/code_coordinator.egg-info/requires.txt +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/code_coordinator.egg-info/scm_file_list.json +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/code_coordinator.egg-info/top_level.txt +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/__init__.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/_board_mapping.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/acceptance.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/acceptance_drivers.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/agent_app.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/agent_update.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/agents/opencode/.gitignore +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/agents/opencode/agents/work.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/agents/opencode/routing.jsonc +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/audit.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/auto_loop.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/block_log.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/board_bool_guard.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/board_service.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/board_wire.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/brain.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/branch_model.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/bug_intake.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/cargo_cache.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/ci_github.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/ci_store.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/claim.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/cli.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/client.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/commands/__init__.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/commands/_common.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/commands/acceptance.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/commands/agent_ops.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/commands/audit.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/commands/chat.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/commands/dispatch.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/commands/dispatch_workers.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/commands/drive.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/commands/drive_queue.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/commands/gate_a.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/commands/gates.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/commands/issues.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/commands/lifecycle.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/commands/merge.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/commands/milestone.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/commands/plan_followup.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/commands/plans.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/commands/portal.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/commands/release.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/commands/repo.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/commands/report.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/commands/review.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/commands/scorecard.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/commands/sessions.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/commands/setup.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/commands/status.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/commands/terminal.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/commands/test_gate.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/commands/tui.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/comments.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/config.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/config_reload.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/conflict_fix.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/dao.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/dashboard/__init__.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/dashboard/fixture.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/dashboard/index.html +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/dashboard/server.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/dashboard/terminal.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/db.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/dead_end.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/deploy/README.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/deploy_manifest.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/deploy_units.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/deps.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/diagnose.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/dispatch.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/dist_name.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/drive.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/drive_queue.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/drive_state.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/events.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/failure_class.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/filelock.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/fleet_config_health.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/freshness.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/gate_a.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/gate_b.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/gate_snapshot.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/gates.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/github_ops.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/goal.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/graph_health.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/health/__init__.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/health/aggregate.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/health/checks/__init__.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/health/checks/agent_install.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/health/checks/cargo_targets.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/health/checks/claude_binary.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/health/checks/coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/health/checks/deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/health/checks/disk.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/health/checks/fleet_board.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/health/checks/fleet_deploy_lanes.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/health/checks/fleet_phantom.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/health/checks/fleet_unit_drift.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/health/checks/graph.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/health/checks/graphify_cli.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/health/checks/index_lock.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/health/checks/plan_usage.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/health/checks/repo_state.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/health/checks/spawned_coord.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/health/checks/timer_active.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/health/checks/toolchain.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/health/checks/unit_drift.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/health/checks/unit_enablement.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/health/checks/worktrees.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/health/cli.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/health/context.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/health/fleet_snapshot.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/health/models.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/health/pypi.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/health/registry.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/health/render.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/health/units.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/hooks.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/housekeeping.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/interactive.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/issue_store.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/liveness_auditor.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/machine_pause.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/merge_queue.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/milestone_chat.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/milestone_dispatch.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/milestone_gate.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/milestone_order.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/mock_author.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/models.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/network.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/new_issue_chat.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/notifier/__init__.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/notifier/baseline.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/notifier/cli.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/notifier/collect.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/notifier/digest.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/notifier/models.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/notifier/predicate.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/notifier/service.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/notifier/store.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/notifier/transport.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/notify.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/openapi.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/overlap_fence.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/overlap_predict.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/parentage.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/parentage_github.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/pipeline.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/plan_parser.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/plans.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/platform_paths.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/portal_bridge.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/portal_store.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/portal_sync.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/pr_body_lint.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/prereqs.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/progress.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/providers/__init__.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/providers/base.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/providers/opencode.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/queue_diagnose.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/reconcile.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/reconcile_tick.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/refine_chat.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/release_cordon.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/release_propagate.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/release_verify.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/release_window.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/repo_edit.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/repo_onboard.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/reports.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/revalidate.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/review.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/scorecard.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/self_health.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/serve_app.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/skills/coord-dispatch-verbs/SKILL.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/skills/drive-queue-preflight/SKILL.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/skills/fleet-restart-safety/SKILL.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/skills/merge-stuck-triage/SKILL.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/skills/pipeline-limbo-triage/SKILL.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/skills/portal-followup/SKILL.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/skills/review-verdict-recovery/SKILL.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/skills/tui-quadraui-workflow/SKILL.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/skills/update-issue/SKILL.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/smoke.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/spend_ceiling.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/split_work.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/stage_projection.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/state.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/test_author.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/test_chat.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/test_orchestrator.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/test_report.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/tui_release.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/usage.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/usage_limits.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/usage_rollup.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coord/worker_events.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/coordinator.example.yml +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/deploy/coord-web-dist-build.sh +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/deploy/coord-web-rollback.sh +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/deploy/node-shim.sh +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/docs/ADR_COORD_WEB_ACCEPTANCE_SUITE.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/docs/ADR_COORD_WEB_CI.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/docs/ADR_COORD_WEB_DIST.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/docs/AGENT_OPERATIONS.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/docs/ARCHITECTURE.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/docs/ARCH_SECURITY_GATES.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/docs/COCKPIT.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/docs/CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/docs/COST_DISCIPLINE.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/docs/CROSS_PLATFORM.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/docs/CUSTOMER_PORTAL.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/docs/DRIVE_QUEUE.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/docs/EPHEMERAL_WORKERS.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/docs/FORGE_MIGRATION.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/docs/GRAPHIFY_SETUP.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/docs/ISSUE_GUIDANCE.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/docs/MAC_MINI.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/docs/NOTIFIER.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/docs/OPENCODE_VERIFICATION.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/docs/OPERATING_GOTCHAS.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/docs/ORACLE_LOOP.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/docs/PHONE_WEBAPP.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/docs/PIPELINE_V2.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/docs/PLATFORM_EVOLUTION.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/docs/SECOND_BACKEND.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/docs/STORE_SERVICE.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/docs/TEST_FIRST_BUG_LANE.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/docs/WEB_CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/docs/WSL_WINDOWS_WORKER.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/docs/mocks/web/README.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/docs/mocks/web/_tokens.css +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/docs/mocks/web/issue-detail.html +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/docs/mocks/web/pipeline-narrow.html +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/docs/mocks/web/pipeline-wide.html +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/graphify-out/.gitignore +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/install-agent.sh +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/pyproject.toml +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/scripts/audit_review_verdict_overrides.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/scripts/azure-workers/bootstrap-shared.sh +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/scripts/azure-workers/build-worker-image.sh +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/scripts/azure-workers/coordinator-machine.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/scripts/azure-workers/epic-down.sh +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/scripts/azure-workers/epic-up.sh +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/scripts/azure-workers/preflight.sh +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/scripts/azure-workers/provision-worker.sh +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/scripts/azure-workers/tailnet-acl.hujson +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/scripts/azure-workers/verify-github-token.sh +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/scripts/codegen.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/scripts/coord-test-runner.sh +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/scripts/drive-batch.sh +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/scripts/gen_board_fixture.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/scripts/next_release_tag.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/scripts/run_tests_in_populated_home.sh +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/scripts/run_tests_without_gh.sh +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/scripts/smoke_437_interactive.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/scripts/verify_878_review_capture.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/scripts/verify_release_published.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/scripts/verify_release_wheel.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/setup.cfg +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/SMOKE_SET.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/__init__.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-33/audit_1039.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-33/contract.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-33/manifest.yml +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-33/mocks/audit-panel-detail.screen +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-33/mocks/audit-panel-empty.screen +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-33/mocks/audit-panel-filters.screen +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-33/mocks/audit-panel-populated.screen +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-37/conftest.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-37/contract.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-37/manifest.yml +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-38/contract.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-38/manifest.yml +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-38/mocks/plans-base.screen +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-38/mocks/plans-detail-pane.screen +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-38/mocks/plans-help-overlay.screen +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-38/mocks/plans-palette.screen +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-38/mocks/plans-rightclick-epic.screen +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-38/mocks/plans-rightclick-header.screen +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-38/mocks/plans-rightclick-stub.screen +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-38/plans_detail_1122.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-38/plans_help_1124.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-38/plans_rightclick_1123.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-51/contract.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-51/manifest.yml +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-51/tsconfig.json +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-65/board_split_2288.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-65/board_tabs_2282.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-65/board_tabs_close_2283.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-65/contract.md +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-65/detail_substate_2285.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-65/manifest.yml +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-65/mocks/board-baseline-no-tabs.screen +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-65/mocks/board-pinned-3-tabs.screen +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-65/mocks/board-preview-tab.screen +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-65/mocks/board-split-side-by-side.screen +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-65/mocks/board-tab-context-menu.screen +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-65/mocks/board-tabs-help-overlay.screen +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-65/mocks/board-tabs-overflow.screen +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-65/mocks/pipeline-tabs-independent.screen +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-65/pipeline_tabs_2284.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-65/tabs_discoverability_2287.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-65/tabs_persistence_2286.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/conftest.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/fixtures/board-pipeline-basic.json +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/fixtures/opencode_run_sample.jsonl +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/fixtures/playwright/all_pass.json +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/fixtures/playwright/global_setup_crash.json +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/fixtures/playwright/mixed_fail.json +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/fixtures/playwright/retry_then_pass.json +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/fixtures/playwright/skip.json +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/fixtures/playwright/truncated.json +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_acceptance.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_acceptance_drivers.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_agent_api_error.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_agent_app.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_agent_branch_base.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_agent_branch_capture.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_agent_config_free_1712.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_agent_deploy_units_endpoint.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_agent_dirty_worktree.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_agent_drive_queue_reconcile_2373.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_agent_graph_self_heal.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_agent_health_h3.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_agent_idle_restart.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_agent_push_failure.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_agent_reap.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_agent_repos_and_pull.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_agent_restart_services_endpoint.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_agent_skills_self_heal.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_agent_startup_diagnostics.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_agent_update.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_agent_update_bluegreen.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_agent_usage_limit.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_agent_zero_commit.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_ambient_home_isolation.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_approve_reject_plan.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_approve_usage_gate.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_assignment_already_recorded_daemon.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_audit_log.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_audit_outcome.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_audit_query.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_auto_loop.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_auto_release_publish_2035.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_base_checkout_restore.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_block_log.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_board_cap_762.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_board_fixture.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_board_read_path.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_board_service.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_board_state.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_board_wire.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_brain.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_branch_model.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_bug_intake.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_build_worker_image_env_update.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cargo_cache.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_ci_acceptance_gate_1950.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_ci_parity_2091.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_ci_store.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_claim.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_acceptance.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_assign.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_assign_interactive_remote.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_assign_provider.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_assign_repo_drift_2219.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_audit.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_chat_continue.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_decide.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_diagnose_config_provenance.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_diagnose_graph.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_diagnose_self.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_doctor.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_doctor_config_free_1801.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_drive.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_drive_queue.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_escalate.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_fix_headless_review.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_gate_a.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_install_drift.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_install_skills.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_issue_create_label.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_issue_reopen.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_merge.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_milestone_assign.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_milestone_capture.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_milestone_chat_add_child.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_milestone_gate_b.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_milestone_gate_c.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_milestone_order.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_milestone_ship.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_network.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_new_issue_chat.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_plans.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_portal.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_pull_artifact.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_queue.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_reattach_sessions.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_refine_board.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_release_preflight.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_release_propagate.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_release_window.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_repo_2220.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_scorecard.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_set_review_findings.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_status_advisory_terminal.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_status_merge_queue.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_status_provider.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_status_review_finalizing.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_status_test_failed_tag.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_status_usage_limit.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_sync_comments_873.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_test_plan.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_track.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_tui_update.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cli_wait.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_client_base_install.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_comments.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_completion_summary.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_config.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_config_acceptance.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_config_audit.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_config_pricing.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_config_usage_gate.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_conflict_fix.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_conflict_fix_semantic.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_coord_test.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_coord_test_runner_baseline.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_coord_test_runner_populated_home.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_coord_test_runner_routing.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_coord_test_runner_toolchain.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_coord_web_sse_restart_live.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_coordinator_machine.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_cross_platform_imports.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_dashboard.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_dashboard_fixture.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_dashboard_terminal.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_dashboard_terminal_live.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_db.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_dead_end.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_deploy_coord_db_backup.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_deploy_coord_web_dist.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_deploy_coord_web_rollback.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_deploy_drive_queue_unit.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_deploy_manifest.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_deploy_units_lane.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_deploy_web_unit.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_deps.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_diagnose.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_dispatch.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_dispatch_target_validation.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_dist_name.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_done_housekeeping.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_drive.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_drive_queue.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_drive_state.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_drive_tmux.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_epic_up_capability_detection.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_epic_up_image_provenance.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_errors.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_events.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_failure_class.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_filelock.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_fix_of_force_override.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_fleet_config_health.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_fleet_health_probes.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_fleet_health_snapshot.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_freshness.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_gate_a.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_gate_b.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_gate_snapshot_staleness.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_gates.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_gather_fleet_tmux_sessions.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_generated_types_fixture.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_github_ops.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_goal.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_graph_health.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_graph_selfheal_absent_2237.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_handoff.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_health_checks.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_health_cli.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_health_cli_graph.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_health_config.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_health_context.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_health_coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_health_deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_health_incident_regression.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_health_pypi.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_health_registry.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_health_timer_active.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_health_toolchain.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_health_unit_drift.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_health_unit_enablement.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_hooks.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_human_attended_437.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_init.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_integration.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_interactive_briefing_echo.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_interactive_prefill_state.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_interactive_session_relaunch.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_interactive_test_verdict_backstop.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_interactive_token_attribution.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_interactive_worktree.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_issue_store_seam.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_liveness_auditor.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_liveness_notify.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_machine_pause.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_merge_queue.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_merge_verify.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_milestone_chat.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_milestone_gate.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_milestone_order.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_milestone_seam.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_mock_author.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_model_tiering.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_models.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_models_config_labels.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_needs_attention.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_network.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_new_issue_chat.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_next_release_tag.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_no_direct_gh_calls.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_node_shim.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_notifier_baseline.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_notifier_cli.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_notifier_collect.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_notifier_config.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_notifier_drive_seam.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_notifier_isolation.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_notifier_predicate.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_notifier_quiet_hours.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_notifier_service.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_notify.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_notify_drain.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_openapi.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_operational_defaults.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_overlap_fence.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_overlap_predict.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_packaged_deploy_units.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_parentage.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_paste_landed.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_pipeline.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_plan_followup_approve_plan_command.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_plan_followup_pr_command.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_plan_followup_review_command.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_plan_only.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_plan_parser.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_platform_paths.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_portal_bridge.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_portal_config.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_portal_sync.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_pr_body_lint.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_prereqs.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_production_db_guard.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_progress.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_provider_seam.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_providers.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_providers_config_labels.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_quiet_hours.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_quiet_hours_store_2146.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_reap_merged_sessions.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_reap_stale_interactive_tick.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_reconcile.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_reconcile_branch.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_reconcile_completions.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_reconcile_merges.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_reconcile_no_agent_record.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_reconcile_tick.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_reconcile_usage_limit_done.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_refine_chat.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_release_cordon_2101.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_release_cordon_deadlock_2240.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_release_propagate.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_release_unified_1242.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_release_verify.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_release_window.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_remote_auto_prune.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_remote_interactive_reaper.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_repo_edit_2220.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_repo_graph_fleet_2237.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_repo_onboard_2220.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_report_result_push.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_reports.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_retry.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_retry_advisory_1606.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_retry_type_1636.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_revalidate.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_review.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_review_end_review_without_verdict.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_review_parse_failure_diagnostic.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_review_reaffirm.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_review_state.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_review_verdict_backstop.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_review_verdict_override_audit.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_review_verdict_relay.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_review_zero_commits.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_scoped_review_wiring.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_scorecard.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_self_health.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_serve.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_serve_app_board_trim.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_session.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_slice_issue_attribution.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_smoke.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_smoke_live_checkout_restore.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_smoke_workflow.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_spend_ceiling.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_spend_ceiling_coordinator.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_split.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_split_work.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_stage_projection.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_stalled_pipeline.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_state.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_state_review_findings_daemon.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_status_fleet_footer.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_stop_1567.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_stuck.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_terminal_command.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_test_author.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_test_chat.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_test_orchestrator.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_test_report.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_test_verdict_parsing.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_test_verdict_transcript_floor.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_thin_client_board_audit.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_thin_client_config_load_1080.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_thin_client_daemon_routing_906.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_tmux_host.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_tmux_session.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_transcript_floor.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_usage.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_usage_limits.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_usage_rollup.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_venv_live_install_2121.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_version_single_source.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_watch.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_worker_events.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_worker_image_pin_sync.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_worker_safety.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_worktree.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tests/test_worktree_rmtree_chokepoint.py +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/Cargo.lock +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/Cargo.toml +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/cargo-config-local-quadraui.toml.example +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/src/app/audit.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/src/app/chat.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/src/app/data.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/src/app/dialogs.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/src/app/doc_tabs.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/src/app/drive.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/src/app/drive_queue.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/src/app/escalation.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/src/app/events.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/src/app/fixtures.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/src/app/fleet_health.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/src/app/fleet_sessions.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/src/app/fleet_terminals.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/src/app/format.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/src/app/milestone_dag.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/src/app/mod.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/src/app/msv.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/src/app/pipeline.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/src/app/plans.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/src/app/render.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/src/app/reports.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/src/app/sessions.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/src/app/settings_ui.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/src/app/sidebar.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/src/app/terminal.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/src/app/tests.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/src/app/types.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/src/app/workspace.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/src/bin/gtk.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/src/commands.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/src/lib.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/src/main.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/src/settings.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/tests/acceptance.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/tests/cli.rs +0 -0
- {code_coordinator-0.5.188 → code_coordinator-0.5.189}/tui/tests/fixtures/board_sample.json +0 -0
|
@@ -3678,6 +3678,49 @@ NEW_ISSUE_CHAT_DENY_COMMANDS: list[str] = [
|
|
|
3678
3678
|
]
|
|
3679
3679
|
|
|
3680
3680
|
|
|
3681
|
+
# Deny list applied to review workers (#2461). Unlike every other member of
|
|
3682
|
+
# WRITE_CAPABLE_SPEC_TYPES, a reviewer has ZERO legitimate mutations of its
|
|
3683
|
+
# own — coord.review.REVIEWER_SYSTEM_PROMPT already tells it "You are NOT
|
|
3684
|
+
# allowed to push commits or modify the PR's code. You only review" and "You
|
|
3685
|
+
# are NOT allowed to run any `gh` commands" (the coordinator posts the
|
|
3686
|
+
# review on its behalf after the session ends). Before #2461 that was
|
|
3687
|
+
# enforced by the PROMPT ALONE: `"review"` wasn't one of the explicit
|
|
3688
|
+
# branches in `default_worker_command`, so it fell through to the generic
|
|
3689
|
+
# `else` below and got the exact same `Read,Edit,Write,Bash,Monitor` grant as
|
|
3690
|
+
# a real work leg — nothing but the model's own good behaviour stood between
|
|
3691
|
+
# "read the diff" and "silently commit a fix and push it". This list is
|
|
3692
|
+
# wired into BOTH the system prompt (via `build_deny_prompt`, soft — a
|
|
3693
|
+
# reminder) AND `--disallowedTools` (CLI-enforced, hard — see the
|
|
3694
|
+
# `spec.type == "review"` branch below) so a reviewer that ignores its own
|
|
3695
|
+
# prompt still cannot shell out to a mutating git/gh command. The read-only
|
|
3696
|
+
# git the briefing actually tells reviewers to run (`git fetch`, `git diff`,
|
|
3697
|
+
# `git log`) stays allowed by omission.
|
|
3698
|
+
REVIEW_DENY_COMMANDS: list[str] = [
|
|
3699
|
+
"Bash(gh *)",
|
|
3700
|
+
"Bash(git push *)",
|
|
3701
|
+
"Bash(git commit *)",
|
|
3702
|
+
"Bash(git add *)",
|
|
3703
|
+
"Bash(git merge *)",
|
|
3704
|
+
"Bash(git rebase *)",
|
|
3705
|
+
"Bash(git cherry-pick *)",
|
|
3706
|
+
"Bash(git reset *)",
|
|
3707
|
+
"Bash(git checkout *)",
|
|
3708
|
+
"Bash(git switch *)",
|
|
3709
|
+
"Bash(git branch *)",
|
|
3710
|
+
"Bash(git stash *)",
|
|
3711
|
+
"Bash(git clean *)",
|
|
3712
|
+
"Bash(git rm *)",
|
|
3713
|
+
"Bash(git apply *)",
|
|
3714
|
+
"Bash(git am *)",
|
|
3715
|
+
"Bash(git tag *)",
|
|
3716
|
+
"Bash(rm -rf *)",
|
|
3717
|
+
"Bash(rm -fr *)",
|
|
3718
|
+
"Bash(coord approve *)",
|
|
3719
|
+
"Bash(coord merge *)",
|
|
3720
|
+
"Bash(coord assign *)",
|
|
3721
|
+
]
|
|
3722
|
+
|
|
3723
|
+
|
|
3681
3724
|
WorkerCommandBuilder = Callable[[AssignmentSpec], list[str]]
|
|
3682
3725
|
|
|
3683
3726
|
|
|
@@ -4111,6 +4154,26 @@ def default_worker_command(spec: AssignmentSpec, *, binary: str = DEFAULT_WORKER
|
|
|
4111
4154
|
system_prompt = spec.system_prompt if spec.system_prompt else SMOKE_SYSTEM_PROMPT
|
|
4112
4155
|
system_prompt += build_deny_prompt(spec.deny_commands)
|
|
4113
4156
|
allowed_tools = "Read,Bash"
|
|
4157
|
+
elif spec.type == "review":
|
|
4158
|
+
# #2461: give review its own branch instead of falling through to
|
|
4159
|
+
# the generic `else` below — see REVIEW_DENY_COMMANDS for the full
|
|
4160
|
+
# story. A reviewer reads the diff and reports a verdict; it edits
|
|
4161
|
+
# and pushes nothing, so it gets no Edit/Write. `Monitor` is
|
|
4162
|
+
# withheld too, for the same #1394/#2301 reason the `smoke` branch
|
|
4163
|
+
# above withholds it: a review leg is a one-shot `claude -p`
|
|
4164
|
+
# session, and an await-a-notification tool that only resumes an
|
|
4165
|
+
# INTERACTIVE session would silently kill it mid-run.
|
|
4166
|
+
#
|
|
4167
|
+
# A scratch/tmp path outside the worktree (e.g. `/tmp/...`) stays
|
|
4168
|
+
# writable for a reviewer that wants to stage its findings before
|
|
4169
|
+
# the final `coord report-result --body-file` call — Bash retains
|
|
4170
|
+
# ordinary shell redirection (`cat >`, heredocs) even with no Write
|
|
4171
|
+
# tool grant; only the Edit/Write *tools* (which target the
|
|
4172
|
+
# worktree/repo) and the mutating git/gh commands below are blocked.
|
|
4173
|
+
from coord.review import REVIEWER_SYSTEM_PROMPT # noqa: PLC0415
|
|
4174
|
+
system_prompt = spec.system_prompt if spec.system_prompt else REVIEWER_SYSTEM_PROMPT
|
|
4175
|
+
system_prompt += build_deny_prompt(REVIEW_DENY_COMMANDS)
|
|
4176
|
+
allowed_tools = "Read,Bash"
|
|
4114
4177
|
else:
|
|
4115
4178
|
system_prompt = spec.system_prompt if spec.system_prompt else WORKER_SYSTEM_PROMPT
|
|
4116
4179
|
system_prompt += build_deny_prompt(spec.deny_commands)
|
|
@@ -4177,6 +4240,14 @@ def default_worker_command(spec: AssignmentSpec, *, binary: str = DEFAULT_WORKER
|
|
|
4177
4240
|
for pattern in _base_checkout_write_guard_tools(spec.repo_path):
|
|
4178
4241
|
if pattern not in disallowed_tools:
|
|
4179
4242
|
disallowed_tools.append(pattern)
|
|
4243
|
+
# #2461: review gets its mutating-command deny list wired into
|
|
4244
|
+
# --disallowedTools too, not just the soft system-prompt reminder from
|
|
4245
|
+
# build_deny_prompt above — the CLI enforces this one even if the model
|
|
4246
|
+
# decides to ignore its own prompt.
|
|
4247
|
+
if spec.type == "review":
|
|
4248
|
+
for pattern in REVIEW_DENY_COMMANDS:
|
|
4249
|
+
if pattern not in disallowed_tools:
|
|
4250
|
+
disallowed_tools.append(pattern)
|
|
4180
4251
|
if disallowed_tools:
|
|
4181
4252
|
argv.extend(["--disallowedTools", ",".join(disallowed_tools)])
|
|
4182
4253
|
# #315: when resuming a prior chat session, load the prior conversation so
|
|
@@ -113,6 +113,7 @@ class ClaudeProvider(Provider):
|
|
|
113
113
|
NEW_ISSUE_CHAT_DENY_COMMANDS,
|
|
114
114
|
NEW_ISSUE_CHAT_SYSTEM_PROMPT,
|
|
115
115
|
REFINEMENT_SYSTEM_PROMPT,
|
|
116
|
+
REVIEW_DENY_COMMANDS,
|
|
116
117
|
TEST_CHAT_SYSTEM_PROMPT,
|
|
117
118
|
WORKER_PLAN_PROMPT,
|
|
118
119
|
WORKER_SYSTEM_PROMPT,
|
|
@@ -120,6 +121,7 @@ class ClaudeProvider(Provider):
|
|
|
120
121
|
_sealed_write_guard_tools,
|
|
121
122
|
build_deny_prompt,
|
|
122
123
|
)
|
|
124
|
+
from coord.review import REVIEWER_SYSTEM_PROMPT # noqa: PLC0415
|
|
123
125
|
from coord.smoke import SMOKE_SYSTEM_PROMPT # noqa: PLC0415
|
|
124
126
|
|
|
125
127
|
binary = self._binary if self._binary is not None else DEFAULT_WORKER_BINARY
|
|
@@ -180,6 +182,17 @@ class ClaudeProvider(Provider):
|
|
|
180
182
|
_sp = spec.system_prompt if spec.system_prompt else SMOKE_SYSTEM_PROMPT
|
|
181
183
|
_sp += build_deny_prompt(spec.deny_commands)
|
|
182
184
|
_at = "Read,Bash"
|
|
185
|
+
elif spec.type == "review":
|
|
186
|
+
# #2461: keep in sync with default_worker_command's identical
|
|
187
|
+
# branch — a reviewer reads the diff and reports a verdict,
|
|
188
|
+
# it edits and pushes nothing, so Read,Bash only (no
|
|
189
|
+
# Edit/Write, no Monitor — same one-shot-session reasoning as
|
|
190
|
+
# the `smoke` branch above). See REVIEW_DENY_COMMANDS for why
|
|
191
|
+
# its mutating-command deny list also lands in
|
|
192
|
+
# --disallowedTools below, not just this prompt text.
|
|
193
|
+
_sp = spec.system_prompt if spec.system_prompt else REVIEWER_SYSTEM_PROMPT
|
|
194
|
+
_sp += build_deny_prompt(REVIEW_DENY_COMMANDS)
|
|
195
|
+
_at = "Read,Bash"
|
|
183
196
|
else:
|
|
184
197
|
_sp = spec.system_prompt if spec.system_prompt else WORKER_SYSTEM_PROMPT
|
|
185
198
|
_sp += build_deny_prompt(spec.deny_commands)
|
|
@@ -217,6 +230,12 @@ class ClaudeProvider(Provider):
|
|
|
217
230
|
for pattern in _base_checkout_write_guard_tools(spec.repo_path):
|
|
218
231
|
if pattern not in disallowed_tools:
|
|
219
232
|
disallowed_tools.append(pattern)
|
|
233
|
+
# #2461: same CLI-enforced hard block as default_worker_command —
|
|
234
|
+
# see REVIEW_DENY_COMMANDS.
|
|
235
|
+
if spec.type == "review":
|
|
236
|
+
for pattern in REVIEW_DENY_COMMANDS:
|
|
237
|
+
if pattern not in disallowed_tools:
|
|
238
|
+
disallowed_tools.append(pattern)
|
|
220
239
|
if disallowed_tools:
|
|
221
240
|
argv.extend(["--disallowedTools", ",".join(disallowed_tools)])
|
|
222
241
|
if spec.resume_session_id:
|
|
@@ -433,6 +433,7 @@ class ClaudePtyProvider(Provider):
|
|
|
433
433
|
NEW_ISSUE_CHAT_DENY_COMMANDS,
|
|
434
434
|
NEW_ISSUE_CHAT_SYSTEM_PROMPT,
|
|
435
435
|
REFINEMENT_SYSTEM_PROMPT,
|
|
436
|
+
REVIEW_DENY_COMMANDS,
|
|
436
437
|
TEST_CHAT_SYSTEM_PROMPT,
|
|
437
438
|
WORKER_PLAN_PROMPT,
|
|
438
439
|
WORKER_SYSTEM_PROMPT,
|
|
@@ -497,6 +498,16 @@ class ClaudePtyProvider(Provider):
|
|
|
497
498
|
_sp = spec.system_prompt if spec.system_prompt else SMOKE_SYSTEM_PROMPT
|
|
498
499
|
_sp += build_deny_prompt(spec.deny_commands)
|
|
499
500
|
_at = "Read,Bash"
|
|
501
|
+
elif spec.type == "review":
|
|
502
|
+
# #2461: keep in sync with default_worker_command's identical
|
|
503
|
+
# branch — a reviewer reads the diff and reports a verdict,
|
|
504
|
+
# it edits and pushes nothing, so Read,Bash only (no
|
|
505
|
+
# Edit/Write, no Monitor — same one-shot-session reasoning as
|
|
506
|
+
# the `smoke` branch above).
|
|
507
|
+
from coord.review import REVIEWER_SYSTEM_PROMPT # noqa: PLC0415
|
|
508
|
+
_sp = spec.system_prompt if spec.system_prompt else REVIEWER_SYSTEM_PROMPT
|
|
509
|
+
_sp += build_deny_prompt(REVIEW_DENY_COMMANDS)
|
|
510
|
+
_at = "Read,Bash"
|
|
500
511
|
else:
|
|
501
512
|
_sp = spec.system_prompt if spec.system_prompt else WORKER_SYSTEM_PROMPT
|
|
502
513
|
_sp += build_deny_prompt(spec.deny_commands)
|
|
@@ -21,6 +21,7 @@ from coord.agent import (
|
|
|
21
21
|
FAILED,
|
|
22
22
|
PENDING,
|
|
23
23
|
REFUSED_POLICY,
|
|
24
|
+
REVIEW_DENY_COMMANDS,
|
|
24
25
|
RUNNING,
|
|
25
26
|
MOCK_AUTHOR_SYSTEM_PROMPT,
|
|
26
27
|
WORKER_SYSTEM_PROMPT,
|
|
@@ -1192,6 +1193,116 @@ def test_default_worker_command_smoke_type_honours_explicit_system_prompt() -> N
|
|
|
1192
1193
|
assert system_prompt.startswith("custom smoke prompt")
|
|
1193
1194
|
|
|
1194
1195
|
|
|
1196
|
+
# ── #2461: review legs must be read-only ─────────────────────────────────
|
|
1197
|
+
#
|
|
1198
|
+
# Root cause: `"review"` wasn't one of the explicit branches in
|
|
1199
|
+
# `default_worker_command`, so it fell through to the generic `else` and got
|
|
1200
|
+
# the exact same `Read,Edit,Write,Bash,Monitor` grant as a real work leg —
|
|
1201
|
+
# REVIEWER_SYSTEM_PROMPT's "you only review, you are NOT allowed to push
|
|
1202
|
+
# commits or modify the PR's code" was enforced by the prompt text alone,
|
|
1203
|
+
# with nothing stopping a review worker from calling Edit/Write or shelling
|
|
1204
|
+
# out to `git push`/`gh` if it decided to.
|
|
1205
|
+
|
|
1206
|
+
|
|
1207
|
+
def _review_spec(**overrides) -> AssignmentSpec:
|
|
1208
|
+
base = dict(
|
|
1209
|
+
repo_name="api",
|
|
1210
|
+
repo_path="/tmp/repo",
|
|
1211
|
+
issue_number=2461,
|
|
1212
|
+
issue_title="[review] t",
|
|
1213
|
+
briefing="b",
|
|
1214
|
+
branch="main",
|
|
1215
|
+
type="review",
|
|
1216
|
+
)
|
|
1217
|
+
base.update(overrides)
|
|
1218
|
+
return AssignmentSpec(**base)
|
|
1219
|
+
|
|
1220
|
+
|
|
1221
|
+
def test_default_worker_command_review_type_gets_read_bash_only() -> None:
|
|
1222
|
+
"""A review leg only reads the diff and reports a verdict — no
|
|
1223
|
+
Edit/Write (it must not modify the PR's code), and (mirroring the
|
|
1224
|
+
`smoke` branch's #1394/#2301 reasoning) no Monitor either — a review leg
|
|
1225
|
+
is a one-shot `claude -p` session, so an await-a-notification tool can
|
|
1226
|
+
never resume it."""
|
|
1227
|
+
argv = default_worker_command(_review_spec())
|
|
1228
|
+
allowed = argv[argv.index("--allowedTools") + 1]
|
|
1229
|
+
assert allowed == "Read,Bash"
|
|
1230
|
+
|
|
1231
|
+
|
|
1232
|
+
def test_default_worker_command_review_type_uses_reviewer_system_prompt() -> None:
|
|
1233
|
+
"""Confirms the review branch's default system prompt is
|
|
1234
|
+
coord.review.REVIEWER_SYSTEM_PROMPT, not the generic WORKER_SYSTEM_PROMPT
|
|
1235
|
+
the old fall-through `else` branch would have used."""
|
|
1236
|
+
from coord.review import REVIEWER_SYSTEM_PROMPT
|
|
1237
|
+
|
|
1238
|
+
argv = default_worker_command(_review_spec())
|
|
1239
|
+
system_prompt = argv[argv.index("--system-prompt") + 1]
|
|
1240
|
+
assert system_prompt.startswith(REVIEWER_SYSTEM_PROMPT)
|
|
1241
|
+
|
|
1242
|
+
|
|
1243
|
+
def test_default_worker_command_review_type_honours_explicit_system_prompt() -> None:
|
|
1244
|
+
argv = default_worker_command(_review_spec(system_prompt="custom review prompt"))
|
|
1245
|
+
system_prompt = argv[argv.index("--system-prompt") + 1]
|
|
1246
|
+
assert system_prompt.startswith("custom review prompt")
|
|
1247
|
+
|
|
1248
|
+
|
|
1249
|
+
def test_default_worker_command_review_type_blocks_mutating_git_and_gh() -> None:
|
|
1250
|
+
"""The deny list must be wired into the CLI-enforced --disallowedTools,
|
|
1251
|
+
not just the soft system-prompt reminder text — a reviewer that ignores
|
|
1252
|
+
its own prompt must still be structurally unable to push, commit, or
|
|
1253
|
+
touch GitHub. This is the actual "tool scope" enforcement #2461 asks
|
|
1254
|
+
for, as opposed to the prompt-only status quo."""
|
|
1255
|
+
argv = default_worker_command(_review_spec())
|
|
1256
|
+
idx = argv.index("--disallowedTools")
|
|
1257
|
+
disallowed = argv[idx + 1].split(",")
|
|
1258
|
+
for pattern in REVIEW_DENY_COMMANDS:
|
|
1259
|
+
assert pattern in disallowed
|
|
1260
|
+
# And Edit/Write themselves are denied by simple omission from
|
|
1261
|
+
# --allowedTools (Claude Code only grants tools it's explicitly told to).
|
|
1262
|
+
allowed = argv[argv.index("--allowedTools") + 1].split(",")
|
|
1263
|
+
assert "Edit" not in allowed
|
|
1264
|
+
assert "Write" not in allowed
|
|
1265
|
+
|
|
1266
|
+
|
|
1267
|
+
def test_default_worker_command_review_type_deny_list_also_in_prompt() -> None:
|
|
1268
|
+
"""Belt-and-braces: the same deny list also lands in the system prompt
|
|
1269
|
+
text (build_deny_prompt) so a reasoning model sees an explicit reminder,
|
|
1270
|
+
not just a silent tool-call rejection."""
|
|
1271
|
+
argv = default_worker_command(_review_spec())
|
|
1272
|
+
system_prompt = argv[argv.index("--system-prompt") + 1]
|
|
1273
|
+
assert "FORBIDDEN COMMANDS" in system_prompt
|
|
1274
|
+
assert "git push *" in system_prompt
|
|
1275
|
+
assert "gh *" in system_prompt
|
|
1276
|
+
|
|
1277
|
+
|
|
1278
|
+
def test_assign_wires_the_review_deny_list_into_the_real_dispatch(tmp_path: Path) -> None:
|
|
1279
|
+
"""End-to-end (mirrors test_assign_wires_the_base_checkout_guard_into_the_real_dispatch
|
|
1280
|
+
for #1642): dispatch a real review-type assignment through
|
|
1281
|
+
default_worker_command via AgentServer.assign() and confirm the argv the
|
|
1282
|
+
agent actually launched carries the hard --disallowedTools guard, not
|
|
1283
|
+
just a spec built by hand in isolation."""
|
|
1284
|
+
repo = _init_repo(tmp_path / "repo")
|
|
1285
|
+
server = AgentServer(
|
|
1286
|
+
machine_name="test",
|
|
1287
|
+
capabilities=["python"],
|
|
1288
|
+
repos=["api"],
|
|
1289
|
+
state_dir=tmp_path / "state",
|
|
1290
|
+
worker_command=lambda spec: default_worker_command(spec, binary="/bin/true"),
|
|
1291
|
+
repo_paths={"api": str(repo)},
|
|
1292
|
+
)
|
|
1293
|
+
spec = _spec(repo, type="review")
|
|
1294
|
+
a = server.assign(spec)
|
|
1295
|
+
final = server.wait_for(a.id, timeout=30)
|
|
1296
|
+
assert final.exit_code == 0
|
|
1297
|
+
|
|
1298
|
+
log = Path(final.log_path).read_text()
|
|
1299
|
+
header = log.splitlines()[0]
|
|
1300
|
+
assert "--disallowedTools" in header
|
|
1301
|
+
for pattern in REVIEW_DENY_COMMANDS:
|
|
1302
|
+
assert pattern in header
|
|
1303
|
+
assert "--allowedTools Read,Bash" in header
|
|
1304
|
+
|
|
1305
|
+
|
|
1195
1306
|
# ── #1315: structural sealing enforcement (write-guard) ─────────────────────
|
|
1196
1307
|
|
|
1197
1308
|
|
|
@@ -199,7 +199,7 @@ def test_pty_build_command_branches_match_claude_for_plan_type() -> None:
|
|
|
199
199
|
assert argv[argv.index("--allowedTools") + 1] == legacy_at
|
|
200
200
|
|
|
201
201
|
|
|
202
|
-
@pytest.mark.parametrize("spec_type", ["work", "
|
|
202
|
+
@pytest.mark.parametrize("spec_type", ["work", "conflict-fix", "fix"])
|
|
203
203
|
def test_pty_build_command_branches_match_claude_for_work_type(spec_type: str) -> None:
|
|
204
204
|
"""#2169: the generic-worker (``else``) branch must stay in parity too.
|
|
205
205
|
|
|
@@ -215,7 +215,10 @@ def test_pty_build_command_branches_match_claude_for_work_type(spec_type: str) -
|
|
|
215
215
|
``else`` branch; #2301 gave it a branch of its own, so its parity is
|
|
216
216
|
guarded by
|
|
217
217
|
:func:`test_pty_build_command_smoke_branch_matches_claude_and_withholds_monitor`
|
|
218
|
-
below instead.
|
|
218
|
+
below instead. ``review`` likewise used to fall through here; #2461 gave
|
|
219
|
+
it its own branch (read-only, no Edit/Write/Monitor — see
|
|
220
|
+
``coord.agent.REVIEW_DENY_COMMANDS``), guarded by
|
|
221
|
+
:func:`test_pty_build_command_review_branch_matches_claude_and_withholds_monitor`.
|
|
219
222
|
"""
|
|
220
223
|
spec = _make_spec(type=spec_type)
|
|
221
224
|
argv = ClaudePtyProvider().build_command(spec)
|
|
@@ -256,6 +259,35 @@ def test_pty_build_command_smoke_branch_matches_claude_and_withholds_monitor() -
|
|
|
256
259
|
assert "Monitor" not in pty_at.split(",")
|
|
257
260
|
|
|
258
261
|
|
|
262
|
+
def test_pty_build_command_review_branch_matches_claude_and_withholds_monitor() -> None:
|
|
263
|
+
"""#2461: the review branch is another call site of the same logic.
|
|
264
|
+
|
|
265
|
+
``default_worker_command`` and ``ClaudeProvider.build_command`` both give
|
|
266
|
+
``spec.type == "review"`` its own branch — ``REVIEWER_SYSTEM_PROMPT``
|
|
267
|
+
plus ``Read,Bash`` only, deliberately withholding ``Monitor`` (a review
|
|
268
|
+
leg is a one-shot ``claude -p`` session per #1394) and Edit/Write (a
|
|
269
|
+
reviewer reads the diff and reports a verdict; it must not modify the
|
|
270
|
+
PR's code). ``ClaudePtyProvider.build_command`` must not drift from
|
|
271
|
+
them — mirrors
|
|
272
|
+
:func:`test_pty_build_command_smoke_branch_matches_claude_and_withholds_monitor`.
|
|
273
|
+
"""
|
|
274
|
+
from coord.review import REVIEWER_SYSTEM_PROMPT
|
|
275
|
+
|
|
276
|
+
spec = _make_spec(type="review", review_target="123")
|
|
277
|
+
argv = ClaudePtyProvider().build_command(spec)
|
|
278
|
+
legacy = default_worker_command(spec)
|
|
279
|
+
legacy_sp = legacy[legacy.index("--system-prompt") + 1]
|
|
280
|
+
legacy_at = legacy[legacy.index("--allowedTools") + 1]
|
|
281
|
+
pty_sp = argv[argv.index("--system-prompt") + 1]
|
|
282
|
+
pty_at = argv[argv.index("--allowedTools") + 1]
|
|
283
|
+
assert pty_sp == legacy_sp
|
|
284
|
+
assert pty_at == legacy_at
|
|
285
|
+
# Pin the values too, so a *matched* regression on both sides still fails.
|
|
286
|
+
assert pty_sp.startswith(REVIEWER_SYSTEM_PROMPT)
|
|
287
|
+
assert pty_at == "Read,Bash"
|
|
288
|
+
assert "Monitor" not in pty_at.split(",")
|
|
289
|
+
|
|
290
|
+
|
|
259
291
|
def test_pty_build_command_smoke_honours_explicit_system_prompt() -> None:
|
|
260
292
|
"""#2301: the new smoke branch must still respect ``spec.system_prompt``
|
|
261
293
|
(the dispatcher's per-run briefing prompt) rather than always forcing
|
|
@@ -124,20 +124,39 @@ def test_default_worker_command_grants_monitor_for_work_type() -> None:
|
|
|
124
124
|
assert tool in allowed.split(",")
|
|
125
125
|
|
|
126
126
|
|
|
127
|
-
@pytest.mark.parametrize("spec_type", ["
|
|
127
|
+
@pytest.mark.parametrize("spec_type", ["fix", "conflict-fix"])
|
|
128
128
|
def test_default_worker_command_other_write_types_also_get_monitor(spec_type: str) -> None:
|
|
129
|
-
"""`
|
|
130
|
-
|
|
129
|
+
"""`fix`/`conflict-fix` both fall through the same `else` branch as
|
|
130
|
+
`work` — confirm the grant isn't accidentally work-only.
|
|
131
131
|
|
|
132
132
|
`smoke` used to be in this list too, but #2301 gave it its own branch
|
|
133
133
|
(see test_default_worker_command_smoke_type_withholds_monitor below) —
|
|
134
134
|
smoke legs are one-shot sessions where an await-a-notification tool
|
|
135
|
-
like `Monitor` ends the session before any wake-up can arrive.
|
|
135
|
+
like `Monitor` ends the session before any wake-up can arrive. `review`
|
|
136
|
+
was removed for the same reason by #2461 (see
|
|
137
|
+
test_default_worker_command_review_type_withholds_monitor below), plus a
|
|
138
|
+
second one: a reviewer has no legitimate mutations at all, so it no
|
|
139
|
+
longer shares the generic write-capable grant."""
|
|
136
140
|
argv = default_worker_command(_work_spec(type=spec_type))
|
|
137
141
|
allowed = argv[argv.index("--allowedTools") + 1]
|
|
138
142
|
assert "Monitor" in allowed.split(",")
|
|
139
143
|
|
|
140
144
|
|
|
145
|
+
def test_default_worker_command_review_type_withholds_monitor() -> None:
|
|
146
|
+
"""#2461: a review leg reads the diff and reports a verdict — it must not
|
|
147
|
+
modify the PR's code, so no Edit/Write, and (the same #1394 reasoning as
|
|
148
|
+
`smoke` below) no `Monitor` either: a one-shot `claude -p` session that
|
|
149
|
+
calls an await-a-notification tool ends before any wake-up can arrive.
|
|
150
|
+
|
|
151
|
+
Before #2461 `review` fell through the generic `else` branch and got the
|
|
152
|
+
full `Read,Edit,Write,Bash,Monitor` work grant, with only
|
|
153
|
+
REVIEWER_SYSTEM_PROMPT's "you only review" prompt text standing between a
|
|
154
|
+
reviewer and a silent commit-and-push."""
|
|
155
|
+
argv = default_worker_command(_work_spec(type="review"))
|
|
156
|
+
allowed = argv[argv.index("--allowedTools") + 1]
|
|
157
|
+
assert allowed == "Read,Bash"
|
|
158
|
+
|
|
159
|
+
|
|
141
160
|
def test_default_worker_command_smoke_type_withholds_monitor() -> None:
|
|
142
161
|
"""#2301: a smoke leg is a one-shot `claude -p` session (#1394) — calling
|
|
143
162
|
`Monitor` there ends the session permanently before any notification can
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_coordinator-0.5.188 → code_coordinator-0.5.189}/code_coordinator.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{code_coordinator-0.5.188 → code_coordinator-0.5.189}/code_coordinator.egg-info/entry_points.txt
RENAMED
|
File without changes
|
{code_coordinator-0.5.188 → code_coordinator-0.5.189}/code_coordinator.egg-info/requires.txt
RENAMED
|
File without changes
|
{code_coordinator-0.5.188 → code_coordinator-0.5.189}/code_coordinator.egg-info/scm_file_list.json
RENAMED
|
File without changes
|
{code_coordinator-0.5.188 → code_coordinator-0.5.189}/code_coordinator.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|