code-coordinator 0.5.575__tar.gz → 0.5.577__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.575 → code_coordinator-0.5.577}/PKG-INFO +1 -1
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/code_coordinator.egg-info/PKG-INFO +1 -1
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/code_coordinator.egg-info/scm_version.json +2 -2
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/dashboard/server.py +72 -1
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/pipeline.py +41 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_dashboard.py +156 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_pipeline.py +167 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/.claude/commands/board.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/.claude/commands/complete-session.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/.claude/commands/coordinator.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/.githooks/_lib.sh +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/.githooks/post-checkout +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/.githooks/post-commit +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/.githooks/post-merge +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/.github/workflows/auto-release.yml +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/.github/workflows/publish.yml +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/.github/workflows/test.yml +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/.gitignore +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/CLAUDE.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/GOAL.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/LICENSE +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/MANIFEST.in +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/README.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/code_coordinator.egg-info/SOURCES.txt +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/code_coordinator.egg-info/dependency_links.txt +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/code_coordinator.egg-info/entry_points.txt +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/code_coordinator.egg-info/requires.txt +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/code_coordinator.egg-info/scm_file_list.json +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/code_coordinator.egg-info/top_level.txt +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/__init__.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/_board_mapping.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/acceptance.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/acceptance_drivers.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/agent.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/agent_app.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/agent_update.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/agents/opencode/.gitignore +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/agents/opencode/agents/work.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/agents/opencode/routing.jsonc +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/approved_work.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/audit.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/auto_loop.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/backup.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/block_log.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/board_schema.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/board_service.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/board_wire.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/brain.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/branch_model.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/bug_intake.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/bugbash.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/cargo_cache.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/ci_fix.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/ci_github.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/ci_gitlab.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/ci_store.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/claim.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/claude_setup_token.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/cli.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/client.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/codegen.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/__init__.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/_common.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/acceptance.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/agent_ops.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/audit.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/backup.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/bugbash.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/chat.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/ci.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/codegen.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/dispatch.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/dispatch_workers.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/dr.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/drive.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/drive_queue.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/gate_a.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/gates.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/issues.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/lifecycle.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/machine.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/merge.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/milestone.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/plan_followup.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/plans.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/portal.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/pr.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/release.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/repo.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/report.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/review.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/scorecard.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/sessions.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/setup.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/status.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/store_migrate.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/terminal.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/test_gate.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/commands/tui.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/comments.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/config.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/config_reload.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/confirm_test.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/conflict_fix.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/dao.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/dashboard/__init__.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/dashboard/fixture.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/dashboard/index.html +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/dashboard/reports.html +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/dashboard/terminal.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/db.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/dead_end.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/decomposition_chat.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/deploy/README.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/deploy/coord-backup.service +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/deploy/coord-backup.timer +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/deploy/coord-dr-verify.service +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/deploy/coord-dr-verify.timer +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/deploy/coord-failure-notify.service +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/deploy/coord-fleet-watchdog.service +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/deploy/coord-fleet-watchdog.timer +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/deploy_manifest.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/deploy_units.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/deprecation_telemetry.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/deps.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/diagnose.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/dispatch.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/dispatch_liveness.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/dist_name.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/dr_promote.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/dr_verify.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/drive.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/drive_queue.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/drive_sessions_snapshot.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/drive_state.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/events.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/failure_class.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/failure_classifier.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/filelock.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/fleet_config_health.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/forge_availability.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/freshness.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/gate_a.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/gate_b.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/gate_snapshot.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/gates.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/gen_board_fixture.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/github_ops.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/github_throttle.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/goal.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/graph_health.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/gtk_native_driver.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/__init__.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/aggregate.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/checks/__init__.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/checks/_ci_pin.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/checks/agent_install.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/checks/cargo_targets.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/checks/claude_binary.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/checks/config_drift.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/checks/coord_tui_ci_pin.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/checks/coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/checks/deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/checks/disk.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/checks/fleet_board.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/checks/fleet_deploy_lanes.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/checks/fleet_phantom.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/checks/fleet_unit_drift.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/checks/graph.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/checks/graphify_cli.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/checks/index_lock.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/checks/issues_sync_staleness.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/checks/local_machine_identity.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/checks/plan_usage.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/checks/pr_churn.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/checks/release_cordon.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/checks/repo_state.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/checks/spawned_coord.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/checks/stalled_pipeline.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/checks/timer_active.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/checks/toolchain.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/checks/unit_drift.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/checks/unit_enablement.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/checks/wedged_drive_queue.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/checks/worktrees.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/cli.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/context.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/fleet_snapshot.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/models.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/pypi.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/registry.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/render.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/health/units.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/hooks.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/housekeeping.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/interactive.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/invariant_alarms.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/issue_store.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/issues_sync_status.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/liveness_auditor.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/mac_native_driver.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/machine_fault.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/machine_metrics.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/machine_onboard.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/machine_pause.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/machine_stats.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/merge_queue.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/milestone_chat.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/milestone_dispatch.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/milestone_gate.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/milestone_order.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/mock_author.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/models.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/network.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/new_issue_chat.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/notifier/__init__.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/notifier/baseline.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/notifier/cli.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/notifier/collect.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/notifier/digest.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/notifier/models.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/notifier/predicate.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/notifier/service.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/notifier/store.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/notifier/transport.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/notify.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/openapi.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/overlap_fence.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/overlap_predict.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/parentage.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/parentage_github.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/plan_parser.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/plans.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/platform_paths.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/portal_bridge.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/portal_store.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/portal_sync.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/pr_body_lint.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/prereqs.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/progress.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/providers/__init__.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/providers/base.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/providers/claude.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/providers/claude_pty.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/providers/opencode.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/queue_diagnose.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/reconcile.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/reconcile_tick.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/refine_chat.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/release_cordon.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/release_gate.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/release_propagate.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/release_verify.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/release_window.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/repo_dormancy.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/repo_edit.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/repo_onboard.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/reports.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/rest_schema.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/restart_cmd.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/revalidate.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/review.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/scorecard.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/self_health.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/serve_app.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/skills/coord-dispatch-verbs/SKILL.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/skills/drive-queue-preflight/SKILL.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/skills/fleet-restart-safety/SKILL.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/skills/merge-stuck-triage/SKILL.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/skills/pipeline-limbo-triage/SKILL.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/skills/portal-followup/SKILL.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/skills/release-now/SKILL.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/skills/review-verdict-recovery/SKILL.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/skills/tui-quadraui-workflow/SKILL.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/skills/update-issue/SKILL.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/smoke.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/smoke_tags.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/spend_ceiling.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/split_work.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/sql.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/stage_projection.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/state.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/store_migrate.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/store_parity.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/templates/deploy-cloudflare.node.yml +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/test_author.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/test_chat.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/test_orchestrator.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/test_report.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/tui_pty_driver.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/tui_release.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/uat_checks.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/usage.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/usage_limits.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/usage_rollup.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/win_native_bridge.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/win_native_driver.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coord/worker_events.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/coordinator.example.yml +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/deploy/coord-agent.service +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/deploy/coord-backup.service +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/deploy/coord-backup.timer +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/deploy/coord-db-backup.service +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/deploy/coord-db-backup.sh +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/deploy/coord-db-backup.timer +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/deploy/coord-dr-verify.service +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/deploy/coord-dr-verify.timer +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/deploy/coord-drive-queue.service +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/deploy/coord-drive-queue.timer +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/deploy/coord-failure-notify.service +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/deploy/coord-failure-notify.sh +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/deploy/coord-fleet-watchdog.service +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/deploy/coord-fleet-watchdog.timer +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/deploy/coord-notify.service +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/deploy/coord-notify.timer +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/deploy/coord-release-propagate.service +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/deploy/coord-release-propagate.timer +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/deploy/coord-release-window.service +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/deploy/coord-release-window.timer +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/deploy/coord-serve.service +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/deploy/coord-web-dist-build.service +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/deploy/coord-web-dist-build.sh +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/deploy/coord-web-dist-build.timer +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/deploy/coord-web-rollback.sh +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/deploy/coord-web.service +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/deploy/node-shim.sh +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/ADR_COORD_TUI_CI.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/ADR_COORD_WEB_ACCEPTANCE_SUITE.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/ADR_COORD_WEB_CI.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/ADR_COORD_WEB_DIST.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/ADR_PY_RUST_MIRRORS.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/AGENT_OPERATIONS.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/ARCHITECTURE.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/ARCH_SECURITY_GATES.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/COCKPIT.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/COST_DISCIPLINE.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/CROSS_PLATFORM.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/CUSTOMER_FACING_APPS.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/CUSTOMER_PORTAL.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/DATA_STORE_SELECTION.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/DISASTER_RECOVERY.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/DRIVE_QUEUE.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/EPHEMERAL_WORKERS.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/FORGE_MIGRATION.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/GRAPHIFY_SETUP.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/ISSUE_GUIDANCE.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/MAC_MINI.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/MERGE_AUTO_DRAIN_TRUST_BAR.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/NOTIFIER.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/OPENCODE_VERIFICATION.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/OPERATING_GOTCHAS.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/OPERATOR_GUIDES.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/ORACLE_LOOP.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/PHONE_WEBAPP.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/PIPELINE_V2.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/PLATFORM_EVOLUTION.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/SECOND_BACKEND.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/STORE_SERVICE.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/TEST_FIRST_BUG_LANE.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/WEB_CONTROL_CENTER.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/WSL_WINDOWS_WORKER.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/mocks/web/README.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/mocks/web/_tokens.css +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/mocks/web/issue-detail.html +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/mocks/web/pipeline-narrow.html +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/docs/mocks/web/pipeline-wide.html +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/graphify-out/.gitignore +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/install-agent.sh +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/pyproject.toml +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/audit_review_verdict_overrides.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/azure-workers/bootstrap-shared.sh +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/azure-workers/build-worker-image.sh +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/azure-workers/coordinator-machine.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/azure-workers/dr-down.sh +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/azure-workers/dr-up.sh +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/azure-workers/epic-down.sh +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/azure-workers/epic-up.sh +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/azure-workers/preflight.sh +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/azure-workers/provision-server.sh +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/azure-workers/provision-worker.sh +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/azure-workers/scrub-and-generalize.sh +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/azure-workers/tailnet-acl.hujson +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/azure-workers/throwaway-vm.sh +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/azure-workers/verify-github-token.sh +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/check_gh_argv_containment.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/codegen.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/coord-test-runner.sh +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/coord-tui-scaffold/.github/coord-ci-acceptance.yml +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/coord-tui-scaffold/.github/workflows/cargo-test.yml +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/coord-tui-scaffold/.github/workflows/codegen-drift.yml +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/coord-tui-scaffold/CLAUDE.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/coord-venv-rollback.sh +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/drive-batch.sh +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/extract-coord-tui.sh +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/fleet_watchdog.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/gen_board_fixture.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/gen_mock_index.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/lib/provision-core.sh +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/next_release_tag.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/provision-machine.sh +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/run_tests_in_populated_home.sh +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/run_tests_without_gh.sh +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/setup-macmini.sh +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/smoke_437_interactive.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/verify-provision-noble.sh +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/verify_878_review_capture.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/verify_release_published.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/scripts/verify_release_wheel.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/setup.cfg +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/SMOKE_SET.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/__init__.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/acceptance/ms-37/conftest.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/acceptance/ms-37/contract.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/acceptance/ms-37/manifest.yml +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/acceptance/ms-37/test_usage_cli_1115.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/acceptance/ms-37/test_usage_core_1118.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/acceptance/ms-51/contract.md +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/acceptance/ms-51/home-active-extended.spec.ts +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/acceptance/ms-51/home-active.spec.ts +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/acceptance/ms-51/manifest.yml +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/acceptance/ms-51/mocks/home-active.html +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/acceptance/ms-51/tsconfig.json +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/acceptance/ms-example/mocks/home-active.html +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/backends.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/conftest.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/fixtures/board-pipeline-basic.json +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/fixtures/board-pipeline-terminal-gates.json +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/fixtures/opencode_run_failure_sample.jsonl +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/fixtures/opencode_run_length_sample.jsonl +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/fixtures/opencode_run_sample.jsonl +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/fixtures/playwright/all_pass.json +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/fixtures/playwright/global_setup_crash.json +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/fixtures/playwright/mixed_fail.json +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/fixtures/playwright/retry_then_pass.json +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/fixtures/playwright/retry_then_pass.junit.xml +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/fixtures/playwright/skip.json +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/fixtures/playwright/truncated.json +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/fixtures/test_report/cargo_compile_error.txt +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/fixtures/test_report/cargo_multi_target_failures.txt +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/fixtures/test_report/cargo_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/fixtures/test_report/pytest_collection_error.txt +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/fixtures/test_report/pytest_error_log_record.txt +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/fixtures/test_report/pytest_error_string_in_body.txt +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/fixtures/test_report/pytest_internal_error.txt +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/fixtures/test_report/pytest_mixed_failures.txt +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/fixtures/test_report/pytest_no_parseable_failures.txt +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_acceptance.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_acceptance_drivers.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_agent.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_agent_api_error.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_agent_app.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_agent_branch_base.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_agent_branch_capture.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_agent_config_free_1712.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_agent_deploy_units_endpoint.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_agent_dirty_worktree.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_agent_drive_queue_reconcile_2373.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_agent_graph_self_heal.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_agent_health_h3.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_agent_idle_restart.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_agent_push_failure.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_agent_reap.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_agent_repos_and_pull.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_agent_restart_services_endpoint.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_agent_skills_self_heal.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_agent_startup_diagnostics.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_agent_update.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_agent_update_bluegreen.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_agent_usage_limit.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_agent_zero_commit.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_ambient_home_isolation.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_approve_capability_reroute_3241.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_approve_dependency_busy_2804.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_approve_reject_plan.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_approve_usage_gate.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_approved_work_2532.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_approved_work_2996.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_assignment_already_recorded_daemon.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_audit_log.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_audit_outcome.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_audit_query.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_auto_loop.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_auto_release_publish_2035.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_backend_selection.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_backup.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_base_checkout_restore.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_block_log.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_board_cap_762.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_board_fixture.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_board_read_path.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_board_schema.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_board_service.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_board_state.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_board_wire.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_brain.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_branch_model.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_bug_intake.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_bugbash.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_build_worker_image_env_update.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cargo_cache.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_check_gh_argv_containment.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_ci_acceptance_gate_1950.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_ci_fix.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_ci_github.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_ci_gitlab.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_ci_parity_2091.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_ci_store.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_claim.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_claude_md_budget.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_claude_setup_token.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_acceptance.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_assign.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_assign_interactive_oracle_gate.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_assign_interactive_remote.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_assign_provider.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_assign_repo_drift_2219.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_audit.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_chat_continue.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_ci.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_codegen.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_decide.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_diagnose_capability_rules.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_diagnose_config_provenance.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_diagnose_forge_availability.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_diagnose_graph.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_diagnose_self.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_diagnose_test_coverage.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_doctor.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_doctor_config_free_1801.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_doctor_config_mismatch_1712.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_doctor_store_backend_3084.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_drive.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_drive_queue.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_escalate.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_fix_headless_review.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_gate_a.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_install_drift.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_install_skills.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_issue_comment.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_issue_create_label.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_issue_reopen.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_issue_view_list.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_issues.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_merge.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_milestone_assign.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_milestone_capture.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_milestone_chat_add_child.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_milestone_gate_b.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_milestone_gate_c.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_milestone_order.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_milestone_remove_and_issue_close.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_milestone_ship.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_network.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_new_issue_chat.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_plans.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_portal.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_pr.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_pull_artifact.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_queue.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_reattach_sessions.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_refine_board.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_release_preflight.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_release_propagate.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_release_window.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_repo_2220.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_review_test_author_tracking_epic_2639.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_scorecard.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_serve_store_backend_3084.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_set_review_findings.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_status_advisory_terminal.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_status_contested_tag.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_status_invariant_alarms.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_status_machine_fault.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_status_merge_queue.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_status_provider.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_status_retried_3340.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_status_review_finalizing.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_status_supervisor_3366.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_status_test_failed_tag.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_status_usage_limit.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_sync_comments_873.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_test_plan.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_track.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_tui_update.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cli_wait.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_client.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_client_base_install.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_client_config_cache_atomic_3052.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_client_resource_migration_1946.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_commands_common.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_comments.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_completion_summary.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_config.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_config_acceptance.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_config_audit.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_config_drift_check.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_config_effective.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_config_pricing.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_config_snapshot_noncanonical_2208.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_config_usage_gate.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_confirm_test.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_conflict_fix.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_conflict_fix_semantic.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_coord_log_daemon_fallback_2547.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_coord_test.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_coord_test_runner_acceptance_toolchain_2936.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_coord_test_runner_baseline.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_coord_test_runner_populated_home.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_coord_test_runner_routing.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_coord_test_runner_toolchain.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_coord_uat.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_coord_web_sse_restart_live.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_coordinator_machine.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_cross_platform_imports.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_dao.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_dashboard_api.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_dashboard_fixture.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_dashboard_reports.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_dashboard_server.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_dashboard_terminal.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_dashboard_terminal_live.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_db.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_dead_end.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_decomposition_chat.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_deploy_coord_db_backup.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_deploy_coord_web_dist.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_deploy_coord_web_rollback.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_deploy_db_backup_unit.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_deploy_drive_queue_unit.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_deploy_failure_notify_unit.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_deploy_manifest.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_deploy_notify_unit.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_deploy_units_lane.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_deploy_web_unit.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_deprecation_telemetry.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_deps.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_diagnose.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_dispatch.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_dispatch_liveness.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_dispatch_target_validation.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_dispatch_workers.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_dist_name.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_done_housekeeping.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_dr_azure_scripts.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_dr_promote.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_dr_verify.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_drive.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_drive_machine_fault.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_drive_queue.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_drive_queue_blocked_rendering.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_drive_queue_launch_argv.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_drive_queue_max_parallel_config.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_drive_queue_max_parallel_per_repo_config.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_drive_queue_roll_pending.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_drive_queue_self_cordon_escalation.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_drive_sessions_snapshot.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_drive_state.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_drive_tmux.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_epic_up_capability_detection.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_epic_up_down_symlinked_config_1887.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_epic_up_image_provenance.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_errors.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_events.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_failure_class.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_failure_classifier.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_filelock.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_finalize_interactive_exit_test_verdict.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_fix_escalation_classifier.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_fix_of_force_override.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_fleet_config_health.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_fleet_health_probes.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_fleet_health_snapshot.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_fleet_watchdog.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_forge_availability.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_freshness.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_gate_a.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_gate_b.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_gate_snapshot_staleness.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_gates.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_gather_fleet_tmux_sessions.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_gen_mock_index.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_generated_rust_fixture.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_generated_rust_requests.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_generated_types_fixture.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_github_ops.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_github_throttle.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_goal.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_graph_health.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_graph_selfheal_absent_2237.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_gtk_native_driver.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_handoff.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_health_checks.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_health_cli.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_health_cli_graph.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_health_config.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_health_context.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_health_coord_tui_ci_pin.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_health_coord_web_ci_pin.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_health_deploy_lane_facts.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_health_fix.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_health_incident_regression.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_health_issues_sync_staleness.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_health_pr_churn.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_health_pypi.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_health_registry.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_health_release_cordon_probe.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_health_timer_active.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_health_toolchain.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_health_unit_drift.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_health_unit_enablement.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_health_wedged_drive_queue.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_hooks.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_housekeeping.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_human_attended_437.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_init.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_install_agent_capabilities_3515.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_install_agent_venv_2911.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_install_agent_wsl_bridge_3515.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_integration.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_interactive.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_interactive_briefing_echo.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_interactive_pane_log_2541.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_interactive_prefill_state.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_interactive_session_relaunch.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_interactive_test_verdict_backstop.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_interactive_token_attribution.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_interactive_worktree.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_invariant_alarms.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_issue_store_seam.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_issues_sync_status.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_liveness_auditor.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_liveness_notify.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_lock_contention_ratchet.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_mac_native_driver.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_machine_fault.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_machine_metrics.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_machine_onboard.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_machine_pause.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_machine_stats.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_merge_queue.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_merge_verify.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_milestone_chat.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_milestone_dispatch.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_milestone_gate.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_milestone_order.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_milestone_seam.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_mock_author.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_model_tiering.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_models.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_models_config_labels.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_needs_attention.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_network.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_new_issue_chat.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_next_release_tag.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_node_shim.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_notifier_baseline.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_notifier_cli.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_notifier_collect.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_notifier_config.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_notifier_drive_seam.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_notifier_isolation.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_notifier_predicate.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_notifier_quiet_hours.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_notifier_service.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_notify.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_notify_drain.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_openapi.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_operational_defaults.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_overlap_fence.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_overlap_predict.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_packaged_deploy_units.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_parentage.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_paste_landed.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_phantom_heal_venv_independence_2570.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_plan_followup_approve_plan_command.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_plan_followup_pr_command.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_plan_followup_review_command.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_plan_only.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_plan_parser.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_platform_paths.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_portal_bridge.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_portal_config.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_portal_store.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_portal_sync.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_pr_body_lint.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_prereqs.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_production_db_guard.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_progress.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_provider_seam.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_providers.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_providers_config_labels.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_providers_pty.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_provision_core.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_provision_machine.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_py_rust_mirror_inventory.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_quiet_hours.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_quiet_hours_store_2146.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_reap_merged_sessions.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_reap_stale_interactive_tick.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_reconcile.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_reconcile_branch.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_reconcile_completions.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_reconcile_late_agent_reports_2547.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_reconcile_merges.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_reconcile_no_agent_record.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_reconcile_tick.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_reconcile_usage_limit_done.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_refine_chat.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_release_cordon_2101.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_release_cordon_daemon_leads_2176.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_release_cordon_deadlock_2240.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_release_cordon_drain_stall_3336.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_release_cordon_stuck_2490.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_release_gate.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_release_propagate.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_release_propagate_threshold.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_release_roll_between_legs_2854.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_release_roll_window_handoff.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_release_unified_1242.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_release_verify.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_release_window.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_remote_auto_prune.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_remote_interactive_reaper.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_repo_add.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_repo_dormancy.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_repo_edit_2220.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_repo_graph_fleet_2237.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_repo_max_parallel_3423.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_repo_onboard_2220.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_report_public_export.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_report_result_push.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_reports.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_restart_cmd.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_retry.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_retry_advisory_1606.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_retry_escalation_classify_3360.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_retry_type_1636.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_revalidate.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_review.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_review_end_review_without_verdict.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_review_parse_failure_diagnostic.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_review_reaffirm.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_review_state.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_review_verdict_backstop.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_review_verdict_override_audit.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_review_verdict_relay.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_review_zero_commits.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_scoped_review_wiring.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_scorecard.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_self_health.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_serve.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_serve_app.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_serve_app_board_trim.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_serve_rest_routes.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_session.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_slice_issue_attribution.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_smoke.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_smoke_fanout_manifest_3333.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_smoke_live_checkout_restore.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_smoke_workflow.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_spend_ceiling.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_spend_ceiling_coordinator.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_split.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_split_work.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_sql_dialect.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_sqlite_connect_ratchet.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_stage_projection.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_stale_busy_reviewer_697.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_stalled_pipeline.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_state.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_state_review_findings_daemon.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_status_fleet_footer.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_stop_1567.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_store_contract.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_store_migrate.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_stuck.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_stuck_test_state_watchdog_2803.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_terminal_command.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_test_author.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_test_chat.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_test_orchestrator.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_test_report.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_test_verdict_parsing.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_test_verdict_transcript_floor.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_text_io_encoding_audit.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_thin_client_board_audit.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_thin_client_config_load_1080.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_thin_client_daemon_routing_906.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_throwaway_vm.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_tmux_host.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_tmux_session.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_transcript_floor.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_tui_pty_driver.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_uat_checks.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_usage.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_usage_limits.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_usage_rollup.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_venv_live_install_2121.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_version_single_source.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_watch.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_win_native_bridge.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_win_native_driver.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_windows_job_is_a_real_gate_2000.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_worker_env_venv_isolation.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_worker_events.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_worker_image_pin_sync.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_worker_safety.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_worker_test_scoping.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_worktree.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_worktree_rmtree_chokepoint.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/test_write_parity.py +0 -0
- {code_coordinator-0.5.575 → code_coordinator-0.5.577}/tests/write_parity.py +0 -0
|
@@ -634,6 +634,29 @@ _SESSIONS_SLOW_THRESHOLD = 3.0 # seconds; a healthy sweep is normally <1s
|
|
|
634
634
|
# on every ~4s dashboard poll.
|
|
635
635
|
_SESSIONS_COOLDOWN = 20.0 # seconds before a down machine is re-probed
|
|
636
636
|
|
|
637
|
+
# #1228: belt-and-suspenders hard cap on each per-machine sweep *future*,
|
|
638
|
+
# applied by api_sessions itself via `asyncio.wait_for` rather than trusted
|
|
639
|
+
# to `list_coord_tmux_sessions`'s internal `subprocess.run(timeout=5.0)`.
|
|
640
|
+
# #1217 iteration 2 assumed that internal timeout bounded every sweep to
|
|
641
|
+
# ~5-6s worst case, but a live smoke test measured a >60s (12x) overrun
|
|
642
|
+
# against a real offline machine and the root cause was never confirmed —
|
|
643
|
+
# a same-night diagnostic session could only reproduce fast (<1s) ssh
|
|
644
|
+
# rejections, not a genuine hang, against that machine. A deterministic
|
|
645
|
+
# repro against a TEST-NET-1 (192.0.2.0/24, RFC 5737) address — guaranteed
|
|
646
|
+
# non-routable, no DNS/auth involved — shows `ssh -o BatchMode=yes -o
|
|
647
|
+
# ConnectTimeout=4` (with or without this codebase's `_SSH_MUX_OPTS`
|
|
648
|
+
# ControlMaster options) and Python's own `subprocess.run(timeout=5.0)`
|
|
649
|
+
# wrapping it BOTH bound correctly to ~4s against a genuinely packet-dropped
|
|
650
|
+
# host (see TestSessionsHardTimeout / the ssh timing note in
|
|
651
|
+
# tests/test_dashboard.py) — so neither hypothesis in the issue reproduces
|
|
652
|
+
# here. Since the real overrun's cause is still unconfirmed, this endpoint
|
|
653
|
+
# no longer trusts any upstream timeout at all: whatever the per-machine
|
|
654
|
+
# sweep future does, `api_sessions` itself gives up on it after this many
|
|
655
|
+
# seconds and reports that machine as empty for this poll (and starts its
|
|
656
|
+
# offline cooldown), so one bad host can never stall the response past this
|
|
657
|
+
# bound regardless of what's actually slow underneath.
|
|
658
|
+
_SESSIONS_HARD_TIMEOUT = 6.0 # seconds; event-loop-side cap per machine
|
|
659
|
+
|
|
637
660
|
# #2066: PipelineView.current_stage values that represent genuinely finished
|
|
638
661
|
# work with no pending action — safe for api_pipeline's recency cutoff to age
|
|
639
662
|
# out. Every other current_stage ("coding", "review_running", "review_done",
|
|
@@ -3343,6 +3366,17 @@ def build_app(
|
|
|
3343
3366
|
(see the comment above ``_sessions_executor``'s definition for why:
|
|
3344
3367
|
#1217 iteration 1 fixed a dashboard-wide hang caused by exactly this
|
|
3345
3368
|
fan-out saturating the process's shared default executor).
|
|
3369
|
+
|
|
3370
|
+
#1228: ``list_coord_tmux_sessions``'s internal 5s ``subprocess.run``
|
|
3371
|
+
timeout is treated as unverified, not trusted — a live smoke test
|
|
3372
|
+
of iteration 2 measured a >60s overrun against a real offline
|
|
3373
|
+
machine with the root cause never confirmed. Each per-machine sweep
|
|
3374
|
+
future is additionally wrapped in ``asyncio.wait_for(...,
|
|
3375
|
+
timeout=_SESSIONS_HARD_TIMEOUT)`` so this endpoint itself gives up
|
|
3376
|
+
on a stalled sweep regardless of what's slow underneath (the
|
|
3377
|
+
in-flight thread keeps running to completion in the background —
|
|
3378
|
+
``asyncio.wait_for`` cannot cancel a blocking OS thread — but the
|
|
3379
|
+
request no longer waits on it).
|
|
3346
3380
|
"""
|
|
3347
3381
|
if _fixture is not None:
|
|
3348
3382
|
# Seeded roster — no tmux, no ssh fan-out in fixture mode.
|
|
@@ -3386,6 +3420,21 @@ def build_app(
|
|
|
3386
3420
|
async def _cached_empty(machine, is_local):
|
|
3387
3421
|
return machine, [], is_local
|
|
3388
3422
|
|
|
3423
|
+
async def _bounded_sweep(machine, is_local):
|
|
3424
|
+
# #1228: `asyncio.wait_for` bounds how long THIS request waits
|
|
3425
|
+
# on the sweep — it cannot cancel the underlying OS thread, so
|
|
3426
|
+
# on timeout the thread keeps running in `_sessions_executor` to
|
|
3427
|
+
# completion (and its result, when it eventually lands, is just
|
|
3428
|
+
# discarded). That's an acceptable trade for never letting one
|
|
3429
|
+
# stalled host block the response past `_SESSIONS_HARD_TIMEOUT`.
|
|
3430
|
+
future = loop.run_in_executor(_sessions_executor, _sweep_one, machine)
|
|
3431
|
+
try:
|
|
3432
|
+
return await asyncio.wait_for(future, timeout=_SESSIONS_HARD_TIMEOUT)
|
|
3433
|
+
except asyncio.TimeoutError:
|
|
3434
|
+
if not is_local:
|
|
3435
|
+
_sessions_offline_since[machine.name] = time.monotonic()
|
|
3436
|
+
return machine, [], is_local
|
|
3437
|
+
|
|
3389
3438
|
tasks = []
|
|
3390
3439
|
for m in config.machines:
|
|
3391
3440
|
is_local = _is_local_machine(m)
|
|
@@ -3397,7 +3446,7 @@ def build_app(
|
|
|
3397
3446
|
):
|
|
3398
3447
|
tasks.append(_cached_empty(m, is_local))
|
|
3399
3448
|
else:
|
|
3400
|
-
tasks.append(
|
|
3449
|
+
tasks.append(_bounded_sweep(m, is_local))
|
|
3401
3450
|
|
|
3402
3451
|
sweeps = await asyncio.gather(*tasks)
|
|
3403
3452
|
# Local host(s) first so they win any session-name collision, matching
|
|
@@ -4329,6 +4378,19 @@ def build_app(
|
|
|
4329
4378
|
``dispatched_at`` is unconditionally stamped at dispatch time by
|
|
4330
4379
|
every code path, so the bound holds even for a row whose
|
|
4331
4380
|
``finished_at`` never got recorded.
|
|
4381
|
+
|
|
4382
|
+
#1277: separately from the age-based cutoff above, a ``failed`` row
|
|
4383
|
+
is also dropped (default view only — ``?include=all`` still returns
|
|
4384
|
+
it) once ``PipelineView.superseded`` says a LATER work assignment
|
|
4385
|
+
for the same ``(repo, issue)`` actually succeeded — a retry/fix/
|
|
4386
|
+
rework attempt shipped the issue, so the earlier failed attempt is
|
|
4387
|
+
pure historical noise, no matter how recent it was. This is
|
|
4388
|
+
deliberately narrower than "the GitHub issue is closed": that would
|
|
4389
|
+
also cover a failure resolved by hand with no coord-dispatched
|
|
4390
|
+
retry, but checking it here would mean a live ``gh`` call on every
|
|
4391
|
+
failed row of every ``/api/pipeline`` request — left as a follow-up
|
|
4392
|
+
rather than risking the hot GET path on GitHub API latency/rate
|
|
4393
|
+
limits (and `compute_pipeline`'s pure-computation contract above).
|
|
4332
4394
|
"""
|
|
4333
4395
|
from dataclasses import asdict
|
|
4334
4396
|
|
|
@@ -4377,6 +4439,15 @@ def build_app(
|
|
|
4377
4439
|
ts = pv.finished_at if pv.finished_at is not None else a.dispatched_at
|
|
4378
4440
|
if ts is not None and ts < cutoff:
|
|
4379
4441
|
continue
|
|
4442
|
+
# #1277: a `failed` row whose issue later shipped via a
|
|
4443
|
+
# different (retry/fix/rework) assignment is pure historical
|
|
4444
|
+
# noise on the default view — suppress it regardless of its own
|
|
4445
|
+
# age (unlike the recency cutoff above, this doesn't depend on
|
|
4446
|
+
# how recently the failure happened, only on whether a later
|
|
4447
|
+
# attempt superseded it). `?include=all` still returns it — this
|
|
4448
|
+
# is a display-layer filter, the DB row is untouched (#1041).
|
|
4449
|
+
if cutoff is not None and pv.superseded:
|
|
4450
|
+
continue
|
|
4380
4451
|
rev_aid = review_by_work.get(a.assignment_id)
|
|
4381
4452
|
if rev_aid:
|
|
4382
4453
|
found = (
|
|
@@ -114,6 +114,20 @@ class PipelineView:
|
|
|
114
114
|
# recently made progress) — see compute_pipeline for the derivation.
|
|
115
115
|
# None only when nothing involved has finished yet (still coding).
|
|
116
116
|
finished_at: float | None = None
|
|
117
|
+
# #1277: True when this is a `current_stage == "failed"` row AND a later
|
|
118
|
+
# work assignment for the same (repo_name, issue_number) reached a
|
|
119
|
+
# genuinely successful terminal status ("done"/"merged") — i.e. a
|
|
120
|
+
# retry/fix/rework attempt superseded this failure and the issue
|
|
121
|
+
# shipped. Always False for any other current_stage. Pure — derived
|
|
122
|
+
# entirely from the already-passed-in `board` (every work assignment
|
|
123
|
+
# ever dispatched for this issue), no I/O — so it recomputes fresh on
|
|
124
|
+
# every call rather than needing a persisted flag, and self-corrects the
|
|
125
|
+
# instant a pending retry's own status flips to "done"/"merged". The
|
|
126
|
+
# dashboard (coord/dashboard/server.py's api_pipeline) uses this to
|
|
127
|
+
# suppress stale failed rows from the default view while leaving the DB
|
|
128
|
+
# rows themselves untouched (#1041 audit trail) — `?include=all` still
|
|
129
|
+
# surfaces them.
|
|
130
|
+
superseded: bool = False
|
|
117
131
|
|
|
118
132
|
|
|
119
133
|
# ── GateSpec registry (#3261 S-2) ────────────────────────────────────────────
|
|
@@ -602,6 +616,32 @@ def compute_pipeline(
|
|
|
602
616
|
review_of_assignment_id=assignment.review_of_assignment_id,
|
|
603
617
|
)
|
|
604
618
|
|
|
619
|
+
# #1277: a failed row is "superseded" once a LATER work assignment for
|
|
620
|
+
# the same (repo, issue) actually succeeded ("done"/"merged" — not
|
|
621
|
+
# merely dispatched again; an in-flight retry doesn't supersede anything
|
|
622
|
+
# until it itself lands). Ordered by `dispatched_at` — the attempt
|
|
623
|
+
# order, and per the #2066 docstring above the one timestamp every
|
|
624
|
+
# assignment is unconditionally stamped with, unlike `finished_at`.
|
|
625
|
+
# Scoped to `current_stage == "failed"` only: a review/smoke failure on
|
|
626
|
+
# the SAME work assignment (review_failed/smoke_failed) isn't this kind
|
|
627
|
+
# of "stale duplicate row" — the work assignment itself is still the
|
|
628
|
+
# live one.
|
|
629
|
+
superseded = False
|
|
630
|
+
if current_stage == "failed":
|
|
631
|
+
this_dispatched = assignment.dispatched_at
|
|
632
|
+
for other in all_assignments:
|
|
633
|
+
if (
|
|
634
|
+
other.assignment_id != aid
|
|
635
|
+
and other.type in ("work", None, "")
|
|
636
|
+
and other.repo_name == assignment.repo_name
|
|
637
|
+
and other.issue_number == assignment.issue_number
|
|
638
|
+
and other.status in ("done", "merged")
|
|
639
|
+
and other.dispatched_at is not None
|
|
640
|
+
and (this_dispatched is None or other.dispatched_at > this_dispatched)
|
|
641
|
+
):
|
|
642
|
+
superseded = True
|
|
643
|
+
break
|
|
644
|
+
|
|
605
645
|
# #1218: most-recent finished_at across the work assignment and any
|
|
606
646
|
# linked review/smoke assignment — whichever last made progress. This is
|
|
607
647
|
# what the dashboard sorts the collapsed "Work done" section by, so it
|
|
@@ -641,4 +681,5 @@ def compute_pipeline(
|
|
|
641
681
|
needs_attention_reason=needs_attention_reason,
|
|
642
682
|
needs_attention_detail=needs_attention_detail,
|
|
643
683
|
finished_at=finished_at,
|
|
684
|
+
superseded=superseded,
|
|
644
685
|
)
|
|
@@ -412,6 +412,162 @@ class TestSessionsFanOutResilience:
|
|
|
412
412
|
assert calls.count("flaky.tailnet") == 2
|
|
413
413
|
|
|
414
414
|
|
|
415
|
+
class TestSessionsHardTimeout:
|
|
416
|
+
"""#1228 (follow-up to #1217): `list_coord_tmux_sessions`'s internal 5s
|
|
417
|
+
`subprocess.run` timeout was *assumed*, never verified, to bound every
|
|
418
|
+
per-machine sweep to ~5-6s worst case. A live smoke test of the #1217
|
|
419
|
+
iteration-2 fix measured a >60s (12x) overrun against a real offline
|
|
420
|
+
machine and the root cause was never confirmed. These tests prove
|
|
421
|
+
`api_sessions` no longer trusts that internal bound at all: it wraps
|
|
422
|
+
each sweep future in its own `asyncio.wait_for(..., timeout=
|
|
423
|
+
_SESSIONS_HARD_TIMEOUT)`, so a sweep that stalls for *any* reason —
|
|
424
|
+
not just the ConnectTimeout/BatchMode path the internal timeout
|
|
425
|
+
covers — cannot hold the response hostage."""
|
|
426
|
+
|
|
427
|
+
def test_endpoint_returns_within_hard_timeout_even_if_sweep_never_returns_in_time(
|
|
428
|
+
self, monkeypatch: pytest.MonkeyPatch,
|
|
429
|
+
) -> None:
|
|
430
|
+
"""Simulates exactly the unverified assumption in #1228: a
|
|
431
|
+
per-machine sweep that blocks far longer than the internal 5s cap
|
|
432
|
+
is ever supposed to allow. Without the endpoint-level
|
|
433
|
+
`asyncio.wait_for`, this request would block for the full sleep;
|
|
434
|
+
with it, the request returns at `_SESSIONS_HARD_TIMEOUT` instead."""
|
|
435
|
+
monkeypatch.setattr("coord.dashboard.server._SESSIONS_HARD_TIMEOUT", 0.1)
|
|
436
|
+
monkeypatch.setattr("coord.dashboard.server._SESSIONS_SLOW_THRESHOLD", 0.05)
|
|
437
|
+
monkeypatch.setattr("coord.dashboard.server._SESSIONS_COOLDOWN", 60.0)
|
|
438
|
+
|
|
439
|
+
config = Config(
|
|
440
|
+
repos=[Repo(name="api", github="acme/api")],
|
|
441
|
+
machines=[Machine(name="stuck", host="stuck.tailnet", repos=["api"])],
|
|
442
|
+
)
|
|
443
|
+
|
|
444
|
+
def _fake_list(*, host=None):
|
|
445
|
+
# Far longer than _SESSIONS_HARD_TIMEOUT and longer than this
|
|
446
|
+
# endpoint's old assumed ~5-6s worst case too — stands in for
|
|
447
|
+
# whatever made the real fan-out take >60s in the #1217
|
|
448
|
+
# iteration-2 smoke test.
|
|
449
|
+
time.sleep(1.0)
|
|
450
|
+
return []
|
|
451
|
+
|
|
452
|
+
client = TestClient(build_app(config))
|
|
453
|
+
with (
|
|
454
|
+
patch("coord.interactive.list_coord_tmux_sessions", side_effect=_fake_list),
|
|
455
|
+
patch("coord.dashboard.server.read_board", return_value=Board()),
|
|
456
|
+
):
|
|
457
|
+
start = time.monotonic()
|
|
458
|
+
r = client.get("/api/sessions")
|
|
459
|
+
elapsed = time.monotonic() - start
|
|
460
|
+
|
|
461
|
+
assert r.status_code == 200
|
|
462
|
+
assert r.json() == []
|
|
463
|
+
# Bounded by the hard timeout (0.1s) plus generous scheduling slack
|
|
464
|
+
# — nowhere near the mocked sweep's full 1.0s sleep.
|
|
465
|
+
assert elapsed < 0.6, f"endpoint waited {elapsed}s past its hard timeout"
|
|
466
|
+
|
|
467
|
+
def test_sweep_that_hits_hard_timeout_still_triggers_offline_cooldown(
|
|
468
|
+
self, monkeypatch: pytest.MonkeyPatch,
|
|
469
|
+
) -> None:
|
|
470
|
+
"""A machine whose sweep gets abandoned via the hard timeout (not
|
|
471
|
+
the in-thread slow-threshold check, which never gets a chance to
|
|
472
|
+
run since the thread is still mid-sleep) must still enter the
|
|
473
|
+
offline cooldown — otherwise every ~4s poll re-pays the full stall
|
|
474
|
+
for a chronically wedged machine."""
|
|
475
|
+
monkeypatch.setattr("coord.dashboard.server._SESSIONS_HARD_TIMEOUT", 0.1)
|
|
476
|
+
monkeypatch.setattr("coord.dashboard.server._SESSIONS_COOLDOWN", 60.0)
|
|
477
|
+
|
|
478
|
+
config = Config(
|
|
479
|
+
repos=[Repo(name="api", github="acme/api")],
|
|
480
|
+
machines=[Machine(name="stuck", host="stuck.tailnet", repos=["api"])],
|
|
481
|
+
)
|
|
482
|
+
|
|
483
|
+
calls: list[str | None] = []
|
|
484
|
+
|
|
485
|
+
def _fake_list(*, host=None):
|
|
486
|
+
calls.append(host.ssh_target if host is not None else None)
|
|
487
|
+
time.sleep(1.0)
|
|
488
|
+
return []
|
|
489
|
+
|
|
490
|
+
client = TestClient(build_app(config))
|
|
491
|
+
with (
|
|
492
|
+
patch("coord.interactive.list_coord_tmux_sessions", side_effect=_fake_list),
|
|
493
|
+
patch("coord.dashboard.server.read_board", return_value=Board()),
|
|
494
|
+
):
|
|
495
|
+
client.get("/api/sessions")
|
|
496
|
+
client.get("/api/sessions")
|
|
497
|
+
|
|
498
|
+
# The second poll must skip spawning a new sweep entirely — it's
|
|
499
|
+
# within the cooldown window started by the first poll's hard
|
|
500
|
+
# timeout, even though that first sweep's thread is still asleep.
|
|
501
|
+
assert calls.count("stuck.tailnet") == 1
|
|
502
|
+
|
|
503
|
+
|
|
504
|
+
class TestSshConnectTimeoutAgainstUnreachableHost:
|
|
505
|
+
"""#1228: settle (rather than assume) whether `ssh -o BatchMode=yes -o
|
|
506
|
+
ConnectTimeout=4` — with this codebase's exact `TmuxHost(batch=True)`
|
|
507
|
+
argv, including the `_SSH_MUX_OPTS` ControlMaster options — actually
|
|
508
|
+
bounds a genuinely unreachable (packet-dropped, no route) host, as
|
|
509
|
+
opposed to only the fast auth/host-key rejections the #1217 chat
|
|
510
|
+
diagnostic session reproduced.
|
|
511
|
+
|
|
512
|
+
Uses a TEST-NET-1 address (``192.0.2.0/24``, RFC 5737) instead of a
|
|
513
|
+
real fleet machine's uptime: it is guaranteed non-routable on the
|
|
514
|
+
public internet, involves no DNS lookup and no auth, so any machine
|
|
515
|
+
running this suite reproduces the same "no response at all" condition
|
|
516
|
+
a chronically offline fleet machine would present at the network
|
|
517
|
+
level — deterministically, without needing one to stay offline.
|
|
518
|
+
|
|
519
|
+
This is a real subprocess test (no mocking) and is skipped outright
|
|
520
|
+
when the local network stack rejects the destination instantly (e.g.
|
|
521
|
+
a sandbox with no outbound routing at all) — that's a different,
|
|
522
|
+
already-bounded failure signature and doesn't exercise the packet-drop
|
|
523
|
+
path this test is for.
|
|
524
|
+
"""
|
|
525
|
+
|
|
526
|
+
_TEST_NET_1_HOST = "192.0.2.1" # RFC 5737: reserved, never routed
|
|
527
|
+
|
|
528
|
+
def test_connect_timeout_bounds_a_packet_dropped_host(self) -> None:
|
|
529
|
+
import subprocess
|
|
530
|
+
|
|
531
|
+
from coord.interactive import TmuxHost
|
|
532
|
+
|
|
533
|
+
host = TmuxHost(ssh_target=self._TEST_NET_1_HOST, batch=True)
|
|
534
|
+
cmd = host.cmd(["list-panes", "-a"])
|
|
535
|
+
|
|
536
|
+
start = time.monotonic()
|
|
537
|
+
try:
|
|
538
|
+
# Mirrors list_coord_tmux_sessions' own subprocess.run(timeout=5.0)
|
|
539
|
+
# exactly — if ssh's ConnectTimeout=4 didn't bound the call, this
|
|
540
|
+
# outer timeout would be the one to fire instead.
|
|
541
|
+
result = subprocess.run(cmd, capture_output=True, text=True, timeout=5.0)
|
|
542
|
+
except subprocess.TimeoutExpired:
|
|
543
|
+
elapsed = time.monotonic() - start
|
|
544
|
+
pytest.fail(
|
|
545
|
+
f"ssh did not return within the outer 5s timeout at all "
|
|
546
|
+
f"(elapsed={elapsed:.2f}s) — ConnectTimeout=4 failed to "
|
|
547
|
+
f"bound a packet-dropped host; this IS the #1228 bug."
|
|
548
|
+
)
|
|
549
|
+
elapsed = time.monotonic() - start
|
|
550
|
+
|
|
551
|
+
if elapsed < 1.0:
|
|
552
|
+
pytest.skip(
|
|
553
|
+
f"this environment rejected {self._TEST_NET_1_HOST} "
|
|
554
|
+
f"instantly (elapsed={elapsed:.2f}s, rc={result.returncode}, "
|
|
555
|
+
f"stderr={result.stderr.strip()!r}) instead of black-holing "
|
|
556
|
+
"it — can't exercise the packet-drop path here."
|
|
557
|
+
)
|
|
558
|
+
|
|
559
|
+
# ssh failed to connect (never reaches auth) ...
|
|
560
|
+
assert result.returncode != 0
|
|
561
|
+
# ... and ConnectTimeout=4 genuinely bounded it: comfortably under
|
|
562
|
+
# the outer 5s subprocess timeout, and in the right ballpark for a
|
|
563
|
+
# ~4s connect timeout rather than some other unrelated fast/slow
|
|
564
|
+
# path.
|
|
565
|
+
assert 3.0 <= elapsed <= 4.8, (
|
|
566
|
+
f"elapsed={elapsed:.2f}s outside the expected ConnectTimeout=4 "
|
|
567
|
+
f"window (rc={result.returncode}, stderr={result.stderr.strip()!r})"
|
|
568
|
+
)
|
|
569
|
+
|
|
570
|
+
|
|
415
571
|
class TestProposalsAPI:
|
|
416
572
|
def test_returns_proposals(self, tmp_path: Path) -> None:
|
|
417
573
|
proposals = [
|
|
@@ -524,6 +524,85 @@ class TestFinishedAtField:
|
|
|
524
524
|
assert pv.finished_at == 100.0
|
|
525
525
|
|
|
526
526
|
|
|
527
|
+
# ── #1277: superseded field (stale failed row hidden after a later success) ─
|
|
528
|
+
|
|
529
|
+
|
|
530
|
+
class TestSupersededField:
|
|
531
|
+
def test_failed_with_no_sibling_is_not_superseded(self) -> None:
|
|
532
|
+
a = _work(aid="work-1", status="failed")
|
|
533
|
+
pv = compute_pipeline(a, _board(a), [], _config())
|
|
534
|
+
assert pv.current_stage == "failed"
|
|
535
|
+
assert pv.superseded is False
|
|
536
|
+
|
|
537
|
+
def test_failed_superseded_by_later_successful_retry(self) -> None:
|
|
538
|
+
"""The canonical #790 shape: a failed attempt, then a later retry
|
|
539
|
+
(different assignment_id, same repo+issue) that actually succeeded."""
|
|
540
|
+
failed = _work(aid="work-1", status="failed")
|
|
541
|
+
failed.dispatched_at = 100.0
|
|
542
|
+
retry = _work(aid="work-2", status="done")
|
|
543
|
+
retry.dispatched_at = 200.0
|
|
544
|
+
board = Board(active=[], completed=[failed, retry])
|
|
545
|
+
pv = compute_pipeline(failed, board, [], _config())
|
|
546
|
+
assert pv.current_stage == "failed"
|
|
547
|
+
assert pv.superseded is True
|
|
548
|
+
|
|
549
|
+
def test_merged_retry_also_supersedes(self) -> None:
|
|
550
|
+
failed = _work(aid="work-1", status="failed")
|
|
551
|
+
failed.dispatched_at = 100.0
|
|
552
|
+
retry = _work(aid="work-2", status="merged")
|
|
553
|
+
retry.dispatched_at = 200.0
|
|
554
|
+
board = Board(active=[], completed=[failed, retry])
|
|
555
|
+
pv = compute_pipeline(failed, board, [], _config())
|
|
556
|
+
assert pv.superseded is True
|
|
557
|
+
|
|
558
|
+
def test_earlier_success_does_not_supersede_a_later_failure(self) -> None:
|
|
559
|
+
"""Ordering matters: a success dispatched BEFORE this failure doesn't
|
|
560
|
+
make the failure stale — it's the live, most-recent attempt."""
|
|
561
|
+
earlier_success = _work(aid="work-1", status="done")
|
|
562
|
+
earlier_success.dispatched_at = 100.0
|
|
563
|
+
failed = _work(aid="work-2", status="failed")
|
|
564
|
+
failed.dispatched_at = 200.0
|
|
565
|
+
board = Board(active=[], completed=[earlier_success, failed])
|
|
566
|
+
pv = compute_pipeline(failed, board, [], _config())
|
|
567
|
+
assert pv.current_stage == "failed"
|
|
568
|
+
assert pv.superseded is False
|
|
569
|
+
|
|
570
|
+
def test_later_in_flight_retry_does_not_supersede_yet(self) -> None:
|
|
571
|
+
"""A retry that hasn't itself succeeded (still running/pending)
|
|
572
|
+
doesn't retroactively clear the earlier failure — only an actual
|
|
573
|
+
success does."""
|
|
574
|
+
failed = _work(aid="work-1", status="failed")
|
|
575
|
+
failed.dispatched_at = 100.0
|
|
576
|
+
retry = _work(aid="work-2", status="running")
|
|
577
|
+
retry.dispatched_at = 200.0
|
|
578
|
+
board = Board(active=[retry], completed=[failed])
|
|
579
|
+
pv = compute_pipeline(failed, board, [], _config())
|
|
580
|
+
assert pv.superseded is False
|
|
581
|
+
|
|
582
|
+
def test_sibling_in_a_different_repo_does_not_supersede(self) -> None:
|
|
583
|
+
failed = _work(aid="work-1", status="failed")
|
|
584
|
+
failed.dispatched_at = 100.0
|
|
585
|
+
other_repo_success = Assignment(
|
|
586
|
+
machine_name="laptop", repo_name="other-repo",
|
|
587
|
+
issue_number=42, issue_title="Fix auth", assignment_id="work-2",
|
|
588
|
+
status="done", type="work", dispatched_at=200.0,
|
|
589
|
+
)
|
|
590
|
+
board = Board(active=[], completed=[failed, other_repo_success])
|
|
591
|
+
pv = compute_pipeline(failed, board, [], _config())
|
|
592
|
+
assert pv.superseded is False
|
|
593
|
+
|
|
594
|
+
def test_non_failed_stage_is_never_superseded(self) -> None:
|
|
595
|
+
"""superseded is scoped to current_stage == 'failed' — a review/smoke
|
|
596
|
+
failure on the SAME still-live work assignment isn't this kind of
|
|
597
|
+
stale duplicate row."""
|
|
598
|
+
a = _work(status="done")
|
|
599
|
+
smk = _smoke(of_aid="work-1", status="failed")
|
|
600
|
+
board = Board(active=[], completed=[a, smk])
|
|
601
|
+
pv = compute_pipeline(a, board, [], _config())
|
|
602
|
+
assert pv.current_stage == "smoke_failed"
|
|
603
|
+
assert pv.superseded is False
|
|
604
|
+
|
|
605
|
+
|
|
527
606
|
# ── #846: needs_attention field ─────────────────────────────────────────────
|
|
528
607
|
|
|
529
608
|
|
|
@@ -992,6 +1071,94 @@ class TestPipelineRetention:
|
|
|
992
1071
|
assert r.json() == []
|
|
993
1072
|
|
|
994
1073
|
|
|
1074
|
+
class TestPipelineAPISupersededFiltering:
|
|
1075
|
+
"""#1277: /api/pipeline suppresses a `failed` row by default once a
|
|
1076
|
+
later retry/fix for the same (repo, issue) actually succeeded — one
|
|
1077
|
+
current-stage row per issue, not a growing pile of dead retries."""
|
|
1078
|
+
|
|
1079
|
+
def test_failed_then_succeeded_yields_one_row_by_default(self) -> None:
|
|
1080
|
+
"""The exact scenario from the issue: two assignments for the same
|
|
1081
|
+
issue — one failed, one later succeeded — yields a single
|
|
1082
|
+
current-stage pipeline row, not two."""
|
|
1083
|
+
import time
|
|
1084
|
+
|
|
1085
|
+
now = time.time()
|
|
1086
|
+
failed = Assignment(
|
|
1087
|
+
machine_name="laptop", repo_name="api",
|
|
1088
|
+
issue_number=790, issue_title="Flaky thing",
|
|
1089
|
+
assignment_id="w-fail", status="failed", type="work",
|
|
1090
|
+
dispatched_at=now - 3600, finished_at=now - 3600,
|
|
1091
|
+
)
|
|
1092
|
+
succeeded = Assignment(
|
|
1093
|
+
machine_name="laptop", repo_name="api",
|
|
1094
|
+
issue_number=790, issue_title="Flaky thing",
|
|
1095
|
+
assignment_id="w-retry", status="done", type="work",
|
|
1096
|
+
dispatched_at=now - 1800, finished_at=now - 1800,
|
|
1097
|
+
)
|
|
1098
|
+
board = Board(active=[], completed=[failed, succeeded])
|
|
1099
|
+
client = _dashboard_client()
|
|
1100
|
+
with (
|
|
1101
|
+
patch("coord.dashboard.server.read_board", return_value=board),
|
|
1102
|
+
patch("coord.merge_queue.load_queue", return_value=[]),
|
|
1103
|
+
):
|
|
1104
|
+
r = client.get("/api/pipeline")
|
|
1105
|
+
assert r.status_code == 200
|
|
1106
|
+
data = r.json()
|
|
1107
|
+
ids = [pv["assignment_id"] for pv in data]
|
|
1108
|
+
assert ids == ["w-retry"]
|
|
1109
|
+
|
|
1110
|
+
def test_include_all_still_returns_the_superseded_failed_row(self) -> None:
|
|
1111
|
+
"""Display-layer filter, not a delete (#1041): the full history is
|
|
1112
|
+
still reachable via ?include=all."""
|
|
1113
|
+
import time
|
|
1114
|
+
|
|
1115
|
+
now = time.time()
|
|
1116
|
+
failed = Assignment(
|
|
1117
|
+
machine_name="laptop", repo_name="api",
|
|
1118
|
+
issue_number=790, issue_title="Flaky thing",
|
|
1119
|
+
assignment_id="w-fail", status="failed", type="work",
|
|
1120
|
+
dispatched_at=now - 3600, finished_at=now - 3600,
|
|
1121
|
+
)
|
|
1122
|
+
succeeded = Assignment(
|
|
1123
|
+
machine_name="laptop", repo_name="api",
|
|
1124
|
+
issue_number=790, issue_title="Flaky thing",
|
|
1125
|
+
assignment_id="w-retry", status="done", type="work",
|
|
1126
|
+
dispatched_at=now - 1800, finished_at=now - 1800,
|
|
1127
|
+
)
|
|
1128
|
+
board = Board(active=[], completed=[failed, succeeded])
|
|
1129
|
+
client = _dashboard_client()
|
|
1130
|
+
with (
|
|
1131
|
+
patch("coord.dashboard.server.read_board", return_value=board),
|
|
1132
|
+
patch("coord.merge_queue.load_queue", return_value=[]),
|
|
1133
|
+
):
|
|
1134
|
+
r = client.get("/api/pipeline?include=all")
|
|
1135
|
+
assert r.status_code == 200
|
|
1136
|
+
ids = {pv["assignment_id"] for pv in r.json()}
|
|
1137
|
+
assert ids == {"w-fail", "w-retry"}
|
|
1138
|
+
|
|
1139
|
+
def test_still_open_failure_with_no_later_success_stays_visible(self) -> None:
|
|
1140
|
+
"""#772's shape — only failed row for an issue, never retried — must
|
|
1141
|
+
not be swept away by this filter."""
|
|
1142
|
+
import time
|
|
1143
|
+
|
|
1144
|
+
failed = Assignment(
|
|
1145
|
+
machine_name="laptop", repo_name="api",
|
|
1146
|
+
issue_number=772, issue_title="Optional thing",
|
|
1147
|
+
assignment_id="w-fail-only", status="failed", type="work",
|
|
1148
|
+
dispatched_at=time.time() - 3600, finished_at=time.time() - 3600,
|
|
1149
|
+
)
|
|
1150
|
+
board = Board(active=[], completed=[failed])
|
|
1151
|
+
client = _dashboard_client()
|
|
1152
|
+
with (
|
|
1153
|
+
patch("coord.dashboard.server.read_board", return_value=board),
|
|
1154
|
+
patch("coord.merge_queue.load_queue", return_value=[]),
|
|
1155
|
+
):
|
|
1156
|
+
r = client.get("/api/pipeline")
|
|
1157
|
+
assert r.status_code == 200
|
|
1158
|
+
ids = [pv["assignment_id"] for pv in r.json()]
|
|
1159
|
+
assert ids == ["w-fail-only"]
|
|
1160
|
+
|
|
1161
|
+
|
|
995
1162
|
class TestPipelineActionAPI:
|
|
996
1163
|
def test_missing_fields_returns_400(self) -> None:
|
|
997
1164
|
client = _dashboard_client()
|
|
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.575 → code_coordinator-0.5.577}/code_coordinator.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{code_coordinator-0.5.575 → code_coordinator-0.5.577}/code_coordinator.egg-info/entry_points.txt
RENAMED
|
File without changes
|
{code_coordinator-0.5.575 → code_coordinator-0.5.577}/code_coordinator.egg-info/requires.txt
RENAMED
|
File without changes
|
{code_coordinator-0.5.575 → code_coordinator-0.5.577}/code_coordinator.egg-info/scm_file_list.json
RENAMED
|
File without changes
|
{code_coordinator-0.5.575 → code_coordinator-0.5.577}/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
|