phase-loop-runtime 0.7.16__tar.gz → 0.7.18__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.
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/PKG-INFO +2 -2
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/README.md +1 -1
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/pyproject.toml +2 -1
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/__init__.py +1 -1
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_contract_docs/phase-loop/protocol.md +67 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/CONTRACTS.md +203 -20
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/backing.py +290 -4
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/composition.py +4 -4
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/config.py +99 -1
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/fixtures.py +14 -11
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/harness_mapping.py +25 -12
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/presets.py +10 -8
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/registries.py +2 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/schema.py +1 -1
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/agy_canary_evidence.py +237 -15
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/build_bundle.py +10 -4
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/capability_registry.py +11 -7
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/cli.py +199 -13
- phase_loop_runtime-0.7.18/src/phase_loop_runtime/gemini_heartbeat.py +292 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/governed_review.py +57 -1
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/launcher.py +21 -12
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/panel_invoker.py +939 -119
- phase_loop_runtime-0.7.18/src/phase_loop_runtime/president_adapter.py +572 -0
- phase_loop_runtime-0.7.18/src/phase_loop_runtime/president_operation.py +173 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/profiles.py +9 -8
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/roadmap_assumptions.py +2 -2
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/roadmap_lint.py +57 -15
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/runner.py +10 -1
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/sandbox_egress.py +34 -1
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-advisor-board/SKILL.md +12 -8
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-advisor-panel/SKILL.md +12 -8
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/SKILL.md +3 -3
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-plan-phase/SKILL.md +5 -4
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-run-train/SKILL.md +50 -18
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-advisor-board/SKILL.md +12 -8
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-advisor-panel/SKILL.md +12 -8
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-run-train/SKILL.md +48 -16
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-advisor-board/SKILL.md +12 -8
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-advisor-panel/SKILL.md +12 -8
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-run-train/SKILL.md +48 -16
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-advisor-board/SKILL.md +12 -8
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-advisor-panel/SKILL.md +12 -8
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-run-train/SKILL.md +48 -16
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/train_ledger.py +4 -1
- phase_loop_runtime-0.7.18/src/phase_loop_runtime/train_review_packet.py +862 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/train_runner.py +387 -268
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime.egg-info/PKG-INFO +2 -2
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime.egg-info/SOURCES.txt +23 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_composition.py +1 -1
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_golden.py +19 -2
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_presets.py +10 -10
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_registries.py +10 -3
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_static_import_862.py +2 -2
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_agy_canary_evidence.py +1391 -28
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_autosel.py +2 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_broker_command_builders.py +5 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_broker_staged_tree_delivery.py +51 -1
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_ci_chronology_scope.py +168 -24
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_ci_offload_lock.py +96 -6
- phase_loop_runtime-0.7.18/tests/test_ci_quarantine.py +299 -0
- phase_loop_runtime-0.7.18/tests/test_ci_xdist_adoption.py +416 -0
- phase_loop_runtime-0.7.18/tests/test_ci_xdist_witness.py +142 -0
- phase_loop_runtime-0.7.18/tests/test_conform_timing_instrumentation.py +809 -0
- phase_loop_runtime-0.7.18/tests/test_execfind_falsifier.py +777 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fab_activation_promotion.py +35 -13
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fab_delta_consumer.py +73 -54
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fab_flag_off_recovery_leak_299.py +15 -10
- phase_loop_runtime-0.7.18/tests/test_frozen_blob_batch_parse.py +127 -0
- phase_loop_runtime-0.7.18/tests/test_gemini_heartbeat_bootstrap.py +1465 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_governed_premerge.py +65 -1
- phase_loop_runtime-0.7.18/tests/test_governed_review.py +642 -0
- phase_loop_runtime-0.7.18/tests/test_govlean_panel_policy.py +288 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_grok_narrow_reject_231.py +39 -21
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_grokexec.py +17 -8
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_harden_evidence_verifier.py +54 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_launcher_liveness.py +4 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_legible_review_repairs.py +2 -2
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_legible_roadmap_contract.py +21 -21
- phase_loop_runtime-0.7.18/tests/test_local_check.py +210 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_model_class_policy.py +3 -3
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_model_tier_taxonomy.py +11 -6
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_native_claude_seat_fill.py +5 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_conform_evidence.py +97 -3
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_redaction_separation.py +59 -20
- phase_loop_runtime-0.7.18/tests/test_owned_command_procfs_1003.py +77 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_panel_invoker_spawn.py +4 -4
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_panel_invoker_timeout_argv.py +19 -5
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_panel_native_fill_183.py +18 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_panel_per_leg_model_66.py +6 -6
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_panel_tui_workspace_trust_223.py +59 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_execution_policy.py +6 -2
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_launcher.py +9 -1
- phase_loop_runtime-0.7.18/tests/test_phase_loop_roadmap_validate.py +654 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_v45_schedharden.py +4 -1
- phase_loop_runtime-0.7.18/tests/test_president_heartbeat_1001.py +338 -0
- phase_loop_runtime-0.7.18/tests/test_president_ladder_config.py +587 -0
- phase_loop_runtime-0.7.18/tests/test_president_wiring.py +1232 -0
- phase_loop_runtime-0.7.18/tests/test_presroute_cli.py +100 -0
- phase_loop_runtime-0.7.18/tests/test_presroute_hardening.py +503 -0
- phase_loop_runtime-0.7.18/tests/test_presroute_landed.py +35 -0
- phase_loop_runtime-0.7.18/tests/test_proc_cpu.py +99 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_public_installer.py +185 -9
- phase_loop_runtime-0.7.18/tests/test_qualify_network_owner.py +135 -0
- phase_loop_runtime-0.7.18/tests/test_redaction_channel_control_isolation.py +115 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_review_monitor_policy.py +278 -35
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_review_policy_govlean_repairs.py +9 -4
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_sandbox_egress.py +76 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_skill_liveness_contract.py +4 -1
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_skills_canon_parity.py +5 -4
- phase_loop_runtime-0.7.18/tests/test_subscription_scrub_xai_864.py +74 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_tdd_chronology.py +220 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_train_e2e.py +7 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_train_invariants.py +6 -1
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_train_merge.py +24 -21
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_train_prebuilt.py +79 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_train_review_authorization.py +9 -1
- phase_loop_runtime-0.7.18/tests/test_train_review_monitoring_policy.py +325 -0
- phase_loop_runtime-0.7.18/tests/test_train_review_packet.py +2532 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_train_runner.py +14 -6
- phase_loop_runtime-0.7.18/tests/test_verify_qualified_agy_route_core.py +218 -0
- phase_loop_runtime-0.7.16/src/phase_loop_runtime/president_adapter.py +0 -143
- phase_loop_runtime-0.7.16/tests/test_governed_review.py +0 -212
- phase_loop_runtime-0.7.16/tests/test_govlean_panel_policy.py +0 -157
- phase_loop_runtime-0.7.16/tests/test_phase_loop_roadmap_validate.py +0 -234
- phase_loop_runtime-0.7.16/tests/test_president_wiring.py +0 -689
- phase_loop_runtime-0.7.16/tests/test_proc_cpu.py +0 -45
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/MANIFEST.in +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/protocol/protocol.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/setup.cfg +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_contract_docs/phase-loop/extraction-readiness.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_contract_docs/phase-loop/granular-execution-policy.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_contract_docs/phase-loop/harness-capability-matrix.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_contract_docs/phase-loop/harness-skill-matrix.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_contract_docs/phase-loop/harness-substrate-manifest.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_contract_docs/phase-loop/pi-loop-control.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_contract_docs/phase-loop/runtime-boundary.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_contract_docs/phase-loop/spec-discovery-roots.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_contract_docs/phase-loop/substrate-soak-governed-pipeline.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_contract_docs/phase-loop/substrate-soak-portal-projection.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_contract_docs/phase-loop/substrate-soak-regenesis.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_contract_docs/phase-loop/substrate-soak-report.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_contract_docs/runtime/verification-evidence-contract.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_proc_cpu.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-mixed-signals/commands.txt +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-mixed-signals/manifest.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-mixed-signals/mixed.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-provider-timeout/manifest.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-provider-timeout/timeout-note.txt +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-redacted-summary/manifest.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-redacted-summary/redacted-summary.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-small-sample/manifest.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-small-sample/sample.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-threshold-edge/edge.txt +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/borderline/borderline-threshold-edge/manifest.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-duplicate-png/manifest.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-duplicate-png/shot-a.txt +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-duplicate-png/shot-b.txt +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-duplicate-png/shot-c.txt +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-missing-references/claimed-results.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-missing-references/manifest.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-subtle-low-variance/manifest.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-subtle-low-variance/metrics.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-templated-prose/findings.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-templated-prose/manifest.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-uniform-scores/manifest.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-uniform-scores/scores.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-fake/fake-uniform-scores/summary.txt +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-adoption-bundle/bundle-check.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-adoption-bundle/manifest.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-adoption-bundle/operator-note.txt +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-handoff-ledger/events-sample.jsonl +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-handoff-ledger/manifest.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-handoff-ledger/receipt.txt +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-runner-diff/evidence.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-runner-diff/manifest.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-runner-diff/summary.txt +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-test-matrix/manifest.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-test-matrix/matrix.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-test-matrix/notes.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-ui-screenshot-standin/console-summary.txt +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-ui-screenshot-standin/manifest.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/_test_fixtures/evidence-audit-calibration/known-real/real-ui-screenshot-standin/screenshot-standin.ppm +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/adoption_bundle.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/__init__.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/backing_omnigent.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/events.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/fixtures/advisor-boards.example.toml +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/matrix.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/observability.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/research.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/resolver.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/standin.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/advisor_board/validation.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/agent_runtime_provider.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/baml_modular.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/baml_src/dotfiles_adoption_manifest.baml +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/baml_src/dotfiles_c4_document.baml +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/baml_src/dotfiles_plan_manifest.baml +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/baml_src/dotfiles_runtime_projection.baml +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/baml_src/dotfiles_task_catalog.baml +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/baml_src/emit_phase_closeout.baml +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/baml_src/evaluate_suspected_fake_evidence.baml +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/baml_src/verification_evidence.baml +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/broker.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/classifier.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/claude_agent_view.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/claude_channel_sidecar.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/closeout.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/closeout_classifier.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/closeout_evidence_audit.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/closeout_validation.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/closeout_validators.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/__init__.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/_contract/VENDOR.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/_contract/consiliency_spec/outside_agent_router.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/_contract/schemas/outside-agent-route-verdict.schema.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/_contract/schemas/outside-agent-submission.schema.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-empty-evidence-refs.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-git-object-id-length.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-missing-digest.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-path-traversal.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-raw-payload.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-source-bundle-mismatch.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-unknown-producer-identity-posture.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/invalid-unsupported-verdict.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/manifest.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/valid-ambiguity-report.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/valid-implementation-submission.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/_contract/test-vectors/outside-agent/valid-work-request.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/certificate_tier.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/git_grounded_projection.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/outside_agent_advisory.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/outside_agent_conform_evidence.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/outside_agent_core.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/outside_agent_imports.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/outside_agent_pin.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/outside_agent_provenance.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/outside_agent_real.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/outside_agent_real_output.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/outside_agent_redaction.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/outside_agent_schema.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/conformance/outside_agent_vectors.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/consiliency_gates.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/consiliency_ingest.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/consiliency_layout.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/consiliency_scaffold.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/__init__.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/adapters/__init__.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/adapters/base.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/adapters/claude.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/adapters/codex.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/adapters/outside_agent.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/broker/__init__.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/broker/admission.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/broker/credsep.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/broker/evidence.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/broker/live.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/broker/verbs.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/contracts.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/dispatch.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/event_log.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/fencing.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/provider_contracts.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/reconcile.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/refresh.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/convergence/status.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/cross_repo_channel.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/declared_identity.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/default_executor_resolver.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/deploy/phase-loop-task-message-broker.service +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/discovery.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/dispatch_lock.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/doc_delta_validator.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/docs_audit.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/docs_freshness.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/docs_surfaces.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/doctor.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/dotfiles_profile_plugin.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/entry_doc_check.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/events.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/events_migration.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/evidence_audit.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/evidence_audit_config.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/executor_availability.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/fab_canonical.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/fab_delta.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/fab_gate.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/fab_producer.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/fab_provenance.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/fabpub_capability.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/fabpub_tdd_chronology.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/fabreadmit_capability.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/fleet_map.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/fleet_metrics.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/fleet_metrics_export.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/gate_posture.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/git_discipline.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/git_ops.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/git_topology.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/goal_coverage.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/governed_bundle.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/governed_premerge.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/handoff.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/handoff_path.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/harness_env_signatures.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/injection.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/install_status.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/lane_scheduler.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/lease_store.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/legible_evidence.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/maintenance.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/migrate_handoffs.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/models.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/observability.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/phase_loop_drift_audit.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/phase_worktree_executor.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/pipeline_adapter/__init__.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/pipeline_adapter/branch_ops.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/pipeline_adapter/flag.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/pipeline_adapter/markers.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/pipeline_adapter/merge_policy.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/pipeline_adapter/ratification.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/pipeline_adapter/sibling_matcher.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/plan_ir.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/plan_manifest.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/plan_pin_lint.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/planner_validation.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/producer_manifest.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/prompts.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/proof_stages.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/provenance.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/publishing.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/py.typed +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/ratification_policy.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/reconcile.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/redaction.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/reflection_sync.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/release_guard.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/render.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/repo_validation.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/review_stage.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/review_summary.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/reviewtruth_native_fill_capability.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/roadmap_authority.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/roadmap_ownership.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/roadmap_representation_check.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/roadmap_reseal.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/route_log.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/route_policy/__init__.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/route_policy/fixtures/route_selection.golden.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/runtime_paths.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/runtime_projection.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/runtime_resources.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/sandbox_policy.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/sandbox_retention.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/schema_export.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/schemas/phase-loop-doctor.v1.golden.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/schemas/phase-loop-doctor.v1.schema.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/schemas/phase_loop_closeout.schema.json +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skill_install.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skill_inventory.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skill_paths.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skill_sources_plugin.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-advisor-board/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-advisor-panel/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-execute-detailed/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-execute-detailed/SKILL.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/allocate_worktree_name.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/audit_lane_file_touches.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/cleanup_lane_worktrees.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/parent_tree_leakage_check.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/post_merge_import_smoke.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/pre_merge_destructiveness_check.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/prune_merged_worktrees.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/resolve_branch_from_sha.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/state.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/sweep_stale_worktrees.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/team_teardown.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/validate_plan_doc.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-execute-phase/scripts/verify_harness.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-phase-loop/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-phase-loop/SKILL.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/SKILL.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/assets/review_prompt.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/references/parallelization-heuristics.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/references/roadmap-template.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-phase-roadmap-builder/scripts/validate_roadmap.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-plan-detailed/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-plan-detailed/SKILL.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-plan-detailed/assets/review_prompt.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-plan-phase/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-plan-phase/assets/review_prompt.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-plan-phase/scripts/validate_plan_doc.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-run-train/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-skill-editor/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-skill-editor/SKILL.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-skill-editor/assets/editor_prompt.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-skill-improvement-planner/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-skill-improvement-planner/SKILL.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-skill-improvement-planner/assets/aggregator_prompt.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-task-contextualizer/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-task-contextualizer/SKILL.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/claude-task-contextualizer/references/task-templates.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-advisor-board/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-advisor-panel/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-execute-detailed/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-execute-detailed/SKILL.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/SKILL.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/allocate_worktree_name.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/audit_lane_file_touches.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/cleanup_lane_worktrees.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/parent_tree_leakage_check.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/post_merge_import_smoke.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/pre_merge_destructiveness_check.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/prune_merged_worktrees.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/resolve_branch_from_sha.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/state.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/sweep_stale_worktrees.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/team_teardown.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/validate_plan_doc.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-execute-phase/scripts/verify_harness.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-phase-loop/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-phase-loop/SKILL.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-phase-roadmap-builder/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-phase-roadmap-builder/SKILL.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-phase-roadmap-builder/assets/review_prompt.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-phase-roadmap-builder/references/parallelization-heuristics.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-phase-roadmap-builder/references/roadmap-template.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-phase-roadmap-builder/scripts/validate_roadmap.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-plan-detailed/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-plan-detailed/SKILL.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-plan-detailed/assets/review_prompt.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-plan-phase/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-plan-phase/SKILL.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-plan-phase/assets/review_prompt.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-plan-phase/scripts/validate_plan_doc.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-run-train/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-skill-editor/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-skill-editor/SKILL.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-skill-editor/assets/editor_prompt.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-skill-improvement-planner/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-skill-improvement-planner/SKILL.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-skill-improvement-planner/assets/aggregator_prompt.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-task-contextualizer/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-task-contextualizer/SKILL.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/codex-task-contextualizer/references/task-templates.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-advisor-board/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-advisor-panel/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-execute-detailed/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-execute-detailed/SKILL.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/SKILL.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/allocate_worktree_name.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/audit_lane_file_touches.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/cleanup_lane_worktrees.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/parent_tree_leakage_check.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/post_merge_import_smoke.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/pre_merge_destructiveness_check.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/prune_merged_worktrees.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/resolve_branch_from_sha.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/state.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/sweep_stale_worktrees.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/team_teardown.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/validate_plan_doc.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-execute-phase/scripts/verify_harness.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-phase-loop/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-phase-loop/SKILL.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-phase-roadmap-builder/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-phase-roadmap-builder/SKILL.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-phase-roadmap-builder/assets/review_prompt.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-phase-roadmap-builder/references/parallelization-heuristics.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-phase-roadmap-builder/references/roadmap-template.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-phase-roadmap-builder/scripts/validate_roadmap.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-plan-detailed/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-plan-detailed/SKILL.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-plan-detailed/assets/review_prompt.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-plan-phase/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-plan-phase/SKILL.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-plan-phase/assets/review_prompt.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-plan-phase/scripts/validate_plan_doc.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-run-train/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-skill-editor/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-skill-editor/SKILL.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-skill-editor/assets/editor_prompt.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-skill-improvement-planner/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-skill-improvement-planner/SKILL.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-skill-improvement-planner/assets/aggregator_prompt.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-task-contextualizer/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-task-contextualizer/SKILL.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/gemini-task-contextualizer/references/task-templates.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-advisor-board/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-advisor-panel/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-execute-detailed/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-execute-detailed/SKILL.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/SKILL.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/allocate_worktree_name.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/audit_lane_file_touches.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/cleanup_lane_worktrees.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/parent_tree_leakage_check.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/post_merge_import_smoke.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/pre_merge_destructiveness_check.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/prune_merged_worktrees.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/resolve_branch_from_sha.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/state.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/sweep_stale_worktrees.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/team_teardown.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/validate_plan_doc.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-execute-phase/scripts/verify_harness.sh +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-phase-loop/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-phase-loop/SKILL.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-phase-roadmap-builder/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-phase-roadmap-builder/SKILL.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-phase-roadmap-builder/assets/review_prompt.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-phase-roadmap-builder/references/parallelization-heuristics.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-phase-roadmap-builder/references/roadmap-template.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-phase-roadmap-builder/scripts/validate_roadmap.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-plan-detailed/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-plan-detailed/SKILL.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-plan-detailed/assets/review_prompt.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-plan-phase/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-plan-phase/SKILL.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-plan-phase/assets/review_prompt.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-plan-phase/scripts/validate_plan_doc.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-run-train/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-skill-editor/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-skill-editor/SKILL.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-skill-editor/assets/editor_prompt.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-skill-improvement-planner/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-skill-improvement-planner/SKILL.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-skill-improvement-planner/assets/aggregator_prompt.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-task-contextualizer/README.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-task-contextualizer/SKILL.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/skills_bundle/opencode-task-contextualizer/references/task-templates.md +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/state.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/state_degradation.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/state_ops.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/task_message_broker.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/task_message_broker_client.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/task_message_resolver.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/tdd_receipts.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/train_roadmap.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/verification_evidence.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/verification_evidence_validator.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/visual_avatar_evidence_validator.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/visual_evidence_validator.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/worker_pool.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime/worktree_index.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime.egg-info/dependency_links.txt +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime.egg-info/entry_points.txt +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime.egg-info/requires.txt +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/src/phase_loop_runtime.egg-info/top_level.txt +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_acceptance_falsifier_contract.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_advisory_mode.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_alias_install.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_backcompat.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_backing_homebrew.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_backing_omnigent.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_cli_legacy.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_concurrency.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_config.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_ingestion.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_integration.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_live_research.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_matrix.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_observability.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_research.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_resolver.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_board_schema.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_advisor_twin_alias_legacy.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_agent_runtime_provider_cs08.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_branchgov_preflight.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_broker_evidence_schema_drift_789.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_certificate_tier.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_ci_gate_metrics.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_ci_main_red.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_ci_workflow_concurrency.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_claude_json_schema_metaschema_291.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_cli_train_status_45.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_closeout_break_glass_cli.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_closeout_classifier.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_closeout_convergence_fixes.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_closeout_exception_vocab.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_closeout_gitignored_disposable_186b.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_closeout_import_cycle_819.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_closeout_new_owned_directory_closes_clean.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_closeout_validator_hook.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_closeout_verification_gate.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_codex_effort_max_clamp_49.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_committed_range_diff.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_common_directory_leases_807.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_conformance_golden.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_conftest_isolation.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_consiliency_dual_layout.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_consiliency_gates.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_consiliency_ingest.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_consiliency_scaffold.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_console_scripts_are_declared.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_contract_floor_guard_378.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_adapters.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_broker_admission.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_broker_api.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_broker_credsep.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_broker_evidence.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_broker_revocation_race.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_broker_verbs.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_cli_integration.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_coordination_contracts.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_dispatch.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_event_contracts.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_event_log.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_fencing.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_fixture_contracts.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_invalidation.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_live_enable.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_provider_contracts.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_reconcile.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_refresh.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_runtime_imports.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_seat_lifecycle.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_status.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_convergence_train_integration.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_coordinator_wave_loop.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_cr_fixes_pr220.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_delegated_visual_evidence_91.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_discovery_hygiene_legacy.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_dispatch_hold_guard.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_dispatch_lock_cross_roadmap.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_dispatch_lock_helper.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_dispatch_lock_reentrancy.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_dispatch_lock_same_roadmap.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_doc_delta_validator.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_docs_audit.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_docs_freshness.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_doctor_bom.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_dotfiles_tree.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_egress_prefix_crosses_the_broker_thread.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_entry_doc_check.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_execgov.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_execreg_launch_registry.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_execute_phase_handoff_mode.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_execution_policy_tiering.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_executor_availability.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_executor_exited_without_closeout_785.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_export_schema.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fab_canonical_b.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fab_closeout_crash_safety.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fab_closeout_wiring.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fab_delta_c.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fab_gate_d.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fab_producer.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fab_provenance_a.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fabpub_admission_compat_789.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fabpub_inventory_worktree_lifecycle_789.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fabpub_partition_rotation_789d.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fabpub_recovery_controls_789.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fabpub_rotate_partition_cli_789d.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fabpub_shared_epoch.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fabpub_zero_history_bootstrap.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fabreadmit_authority_digest_v2.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fabreadmit_broker.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fleet_map.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fleet_metrics.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_fleet_metrics_export.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_gate_a_wheel_isolation.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_gate_fail_open_visibility.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_gate_parity_244_245.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_gate_posture.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_git_discipline.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_git_grounded_projection.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_goal_coverage.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_governed_cross_vendor_floor_358.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_governed_disjointness_model_first.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_governed_e2e.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_governed_gate_crfixes.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_governed_planning_gate.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_governed_premerge_live.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_govlean_declared_identity.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_govlean_plan_manifest_issue_dispositions.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_govlean_plan_pin_lint.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_govlean_producer_manifest.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_govlean_proof_stages.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_govlean_roadmap_reseal.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_govlean_skill_policy_parity.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_govlean_tdd_receipts.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_harden_evidence_producer.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_harden_json_depth_825.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_hotfix_lane.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_injection_skill_failloud.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_lane_ir_override.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_launchspec_golden.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_lease_store.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_lease_store_conformance.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_ledger_serialization.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_leg_liveness_monitor.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_legible_evidence.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_live_smoke_gate_executes.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_manifest_per_entry_164.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_model_id_source_guard.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_native_claude_seat_fill_green.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_nonzero_suite_command_fails_closed.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_observability_alerting.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_advisory.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_advisory_cli.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_advisory_fixtures.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_authority_boundary.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_canonical_corpus.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_contract_drift.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_contract_imports.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_contract_pin.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_core_api.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_provenance.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_real_ci.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_real_cli.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_real_output.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_real_runtime.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_redaction.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_release_surface.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_schema_validation.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_outside_agent_vectors.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_packaged_vector_manifest_pin.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_panel_advisory_mode_63.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_panel_codex_auth_signature_body_252.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_panel_context_refs_114.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_panel_gemini_no_command_preamble.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_panel_invoker.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_panel_invoker_windows_import.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_panel_leg_auth_preflight_64.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_panel_leg_failure_diagnostic.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_panel_streaming_verdicts.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_panel_tui_eof_48.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_panel_tui_liveness_188.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_panel_verdict_summary.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_parallel_dispatch_backcompat.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_parallel_dispatch_cli.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_adoption_bundle.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_adoption_bundle_cli.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_baml_dependency.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_baml_end_to_end.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_baml_injection.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_baml_modular.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_baml_prompt_taxonomy.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_baml_runner_closeout.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_baml_schema_export.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_baml_schema_source.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_branch_divergence_event.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_break_glass_rerun.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_build_bundle.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_classifier.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_claude_agent_view_adapter.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_claude_agent_view_lifecycle.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_claude_channel_hooks.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_claude_channel_mcp.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_claude_channel_security.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_claude_channel_session_launch.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_claude_channel_sidecar.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_claude_channel_smoke_suite.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_claude_route_selection.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_cli.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_cli_plugin_load.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_closeout_control_only.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_closeout_event.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_closeout_evidence_audit.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_closeout_hardening.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_closeout_owned_dirty_fallback.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_closeout_schema.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_closeout_validation.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_collaborator_citation.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_collaborator_docs.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_collaborator_rollback.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_concurrent_phase_dispatch.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_def4_writer_namespacing.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_dirty_path_classify_phase_owned_tests.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_dirty_path_classify_previous_phase_owned.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_discovery.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_docs.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_dotfiles_schemas.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_dotfiles_sources.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_downstream_governed_pipeline.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_downstream_instruction_scope_readme.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_downstream_portal.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_downstream_regenesis.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_drift_audit.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_dry_run_closeout_guard.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_dry_run_then_run.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_events_migration.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_evidence_audit.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_evidence_audit_runner.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_evidence_audit_tier2.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_evidence_audit_tier3.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_evidence_audit_tuning.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_executor_degradation.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_full_phase_mode.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_handoff.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_handoff_migration.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_init.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_injection.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_install_status.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_issue_84_explicit_phase.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_lane_harnesses.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_lane_ir.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_lane_ir_fixtures.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_lane_scheduler.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_ledger_debug.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_ledger_dedup.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_live_adapters.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_maintenance.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_metrics.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_migration_regressions.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_mixedrun_dispatch.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_mixedrun_matrix.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_mixedrun_observability.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_models.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_native_flags.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_parallel_plan_safe.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_pi_executor.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_pipeline_boundaries.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_pipeline_bridge.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_pipeline_bundle.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_pipeline_closeout.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_pipeline_freshness.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_pipeline_mode.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_plan_doc_skip.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_plan_manifest.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_planner_redispatch_when_plan_current.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_planner_validation.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_policy.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_protocol_contract.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_provenance.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_reconcile.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_reconcile_blocker_self_clear.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_reconcile_recovery_mode.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_reconcile_to_status_planned_recovery.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_reducers.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_repair_precondition_planned_closeout.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_repair_skipped_when_blocker_cleared.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_roadmap_amendments.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_rotation.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_runner.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_runner_closeout_validation.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_runtime_boundary.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_runtime_decouple.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_runtime_package_data.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_runtime_projection.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_schema_flow.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_skill_baml_closeout.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_skill_bridge_contract.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_skill_contract.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_skill_execute_contract.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_skill_install.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_skill_planner_contract.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_smoke_blockers.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_smoke_exhaustion.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_smoke_reentry.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_spurious_completion_rejection.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_start_gate_phase_status.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_start_gate_refuses_cross_phase_dirty.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_state.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_status_transition_events_emitted.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_substrate_soak_docs.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_substrate_soak_governed.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_substrate_soak_portal.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_terminal_summary_mirrors_baml_closeout.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_v22_e2e.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_v22_principles.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_v45_found_contracts.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_v45_reconcile.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_v45_sched.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_wave_runner.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_work_unit_observability.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_work_unit_runner.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_work_unit_state.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_loop_worktrees.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_owned_dirty_relaxation.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_state_disagreement_312.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_phase_worktree_executor.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_pipeline_adapter_branch_ops_create.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_pipeline_adapter_branch_ops_rebase_conflict.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_pipeline_adapter_branch_ops_refuse_default.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_pipeline_adapter_flag.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_pipeline_adapter_markers.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_pipeline_adapter_merge_policy_parse.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_pipeline_adapter_ratification_event_payload.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_pipeline_adapter_ratification_runner.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_pipeline_adapter_ratification_skipped_standalone.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_pipeline_adapter_standalone_regression.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_pkg_layout_freeze.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_plan_ir_iter_waves.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_pr_readback_789.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_preflight_verification.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_proofgate_attestation_workflow.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_proofgate_cleanup.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_proofgate_isolation.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_proofgate_receipts.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_prune_merged_worktrees_script.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_publishing.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_pushflow.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_ratification_policy.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_reconcile_manifest_dedup_46.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_reconcile_portability_85c.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_reconcile_tracked_closeout_recovery_90.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_reconcile_verification_log.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_reconcile_visual_avatar_evidence_91.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_reflection_sync.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_release_dispatch_operator_approval_145.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_release_pin_autotrack.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_repo_validation.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_review_leg_sandbox.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_review_stage_binding.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_review_stage_board_findings.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_review_staged_tree_authorization.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_review_summary.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_roadmap_authority.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_roadmap_ownership.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_roadmap_representation_consistency.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_route_log.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_route_policy_conformance.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_routing_invariants.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_runner_visual_evidence_authoritative_91.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_runtime_adapter_output_720.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_runtime_event_log_hardening_720.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_runtime_procfs_identity_870.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_runtime_state_mirror_agreement.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_sandbox_clone.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_sandbox_policy.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_sandbox_preamble.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_sandbox_retention.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_self_asserted_passed_without_evidence_is_gated.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_sibling_matcher_patterns.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_skill_bundle_pinned.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_skill_install_body_expansion.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_skill_plan_manifest_write.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_skill_sources_seam.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_skills_bundle_drift.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_skills_src_claude_literal_lint.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_spec_conformance_gate.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_specpkgmin_wheel.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_stale_roadmap_dispatch_guard.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_status_read_only_62.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_suite_interpreter_satisfies_requires_python.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_sweep_fleet_worktrees_script.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_sync_skills_apply_failloud.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_task_message_broker.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_task_message_broker_cli.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_task_message_resolver.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_the_real_launch_carries_the_prefix.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_train_authority_import_811.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_train_order_only_deps_47.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_train_roadmap.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_unattended_release.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_v34_parallel_dispatch_soak.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_validate_plan_doc_docs_lane.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_validate_plan_doc_fail_closed.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_validate_plan_doc_goal_coverage.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_validate_plan_doc_producer_dependency.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_validate_plan_doc_proofgate.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_verification_dotdot_execution_428.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_verification_evidence.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_verification_evidence_validator.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_verification_interpreter_guard_221.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_verification_venv_identity_428.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_visual_avatar_evidence_validator.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_visual_evidence_validator.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_workerpool_failure_isolation.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_workerpool_parallel.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_workerpool_worktree_alloc.py +0 -0
- {phase_loop_runtime-0.7.16 → phase_loop_runtime-0.7.18}/tests/test_worktree_index.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: phase-loop-runtime
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.18
|
|
4
4
|
Summary: Harness-neutral phase-loop orchestration runtime and CLI
|
|
5
5
|
Author-email: ViperJuice <viperjuice@users.noreply.github.com>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -49,7 +49,7 @@ To install just this runtime package directly:
|
|
|
49
49
|
|
|
50
50
|
```sh
|
|
51
51
|
pip install phase-loop-runtime # latest compatible release
|
|
52
|
-
pip install phase-loop-runtime==0.7.
|
|
52
|
+
pip install phase-loop-runtime==0.7.18 # …or pin an exact version
|
|
53
53
|
```
|
|
54
54
|
|
|
55
55
|
To pin a specific tag from source instead, substitute a tag from
|
|
@@ -19,7 +19,7 @@ To install just this runtime package directly:
|
|
|
19
19
|
|
|
20
20
|
```sh
|
|
21
21
|
pip install phase-loop-runtime # latest compatible release
|
|
22
|
-
pip install phase-loop-runtime==0.7.
|
|
22
|
+
pip install phase-loop-runtime==0.7.18 # …or pin an exact version
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
To pin a specific tag from source instead, substitute a tag from
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "phase-loop-runtime" # PyPI dist name; NOT "agent-harness" (an unrelated third-party PyPI project)
|
|
7
|
-
version = "0.7.
|
|
7
|
+
version = "0.7.18"
|
|
8
8
|
description = "Harness-neutral phase-loop orchestration runtime and CLI"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -154,6 +154,7 @@ phase_loop_runtime = [
|
|
|
154
154
|
[tool.pytest.ini_options]
|
|
155
155
|
markers = [
|
|
156
156
|
"dotfiles_integration: test requires a dotfiles fleet tree (skipped standalone)",
|
|
157
|
+
"quarantine(reason): known flake tracked by an OPEN issue; deselected on pull-request CI only (agent-harness#1029)",
|
|
157
158
|
]
|
|
158
159
|
|
|
159
160
|
[tool.setuptools.data-files]
|
|
@@ -2659,6 +2659,73 @@ Fields:
|
|
|
2659
2659
|
A synthetic `_train_review_` record (`node_id="_train_review_"`) is appended
|
|
2660
2660
|
when the train-level review panel approves. Its `status` is `"approved"`.
|
|
2661
2661
|
|
|
2662
|
+
An approval with usable-reviewer evidence may also carry the optional
|
|
2663
|
+
`review_packet_sha256` field, omitted on historical and non-review records.
|
|
2664
|
+
Reuse requires its exact immutable packet bytes and the current usable-reviewer
|
|
2665
|
+
floor; a legacy approval without the digest cannot authorize pending merges.
|
|
2666
|
+
|
|
2667
|
+
The version-1 train review packet binds train order/edges, full admitted heads,
|
|
2668
|
+
PR identities, live base tips, unique merge bases, tree IDs, changed-path/mode/blob
|
|
2669
|
+
inventory, full substantive patches, acceptance and head-bound evidence.
|
|
2670
|
+
`--review-material FILE` declares supporting material for every exact node ID;
|
|
2671
|
+
local command/disposal evidence is labelled operator-supplied attestation.
|
|
2672
|
+
GitHub check runs are fetched by identity and checked against the admitted head.
|
|
2673
|
+
Optional explicit whole-subtree disposal certificates bind full inventories and
|
|
2674
|
+
unabridged diff hashes; they certify deletion mechanics, not generatedness.
|
|
2675
|
+
Operator-only removal sidecars never enter reviewer scratch.
|
|
2676
|
+
|
|
2677
|
+
`run-train --governed --review-only --review-material FILE --preview-review DIR`
|
|
2678
|
+
prepares identical review material before broker construction, leases, recovery,
|
|
2679
|
+
admission or models. A ready receipt is not approval. The rendered prompt,
|
|
2680
|
+
including framing and instructions, must fit 512 KiB; the separate 1 MiB packet
|
|
2681
|
+
parser limit does not establish readiness. There is no truncation fallback.
|
|
2682
|
+
|
|
2683
|
+
`run-train --governed --monitoring-policy heartbeat_only` runs the train-level review
|
|
2684
|
+
under review monitoring policy v1 heartbeat-only: the frozen four-vendor default board
|
|
2685
|
+
(any other composition is refused), no model deadline, no native host seat. The policy
|
|
2686
|
+
is bound into the review authorization and passed to the invoker, which refuses a
|
|
2687
|
+
mismatch. Native emission/fill, a non-governed run or an unqualified Gemini route is
|
|
2688
|
+
refused before ledger, broker, publish or packet effects (CLI and direct callers), and
|
|
2689
|
+
re-checked before any seat launches. The bounded review path is unchanged.
|
|
2690
|
+
|
|
2691
|
+
Trusted-opt-in FAB readmission during ordinary governed merging first freezes
|
|
2692
|
+
the entire prospective packet against proposed-head evidence without granting
|
|
2693
|
+
authority. Existing broker readmission and fresh complete durable bindings must
|
|
2694
|
+
then match before those identical bytes enter review/cache/native sinks. Current
|
|
2695
|
+
readmission eligibility is checked immediately before recovery. While FAB promotion
|
|
2696
|
+
is active, real repository revocation is replayed before recovery, sinks, approval
|
|
2697
|
+
and each merge. Review-only/native emission perform no recovery/readmission; preview
|
|
2698
|
+
does not consult broker evidence. No late head advancement follows train review.
|
|
2699
|
+
Transport readiness does not attest actual provider consumption of all content.
|
|
2700
|
+
|
|
2701
|
+
Production stores read-back packets under `review-packets/<sha256>/` beside the
|
|
2702
|
+
ledger. Missing/corrupt packet storage holds. Explicit fresh material invalidates
|
|
2703
|
+
changed approvals; omitted material retains stored snapshots without asserting
|
|
2704
|
+
checks were refreshed. Native fills retain artifact/brief/composition validation.
|
|
2705
|
+
Partial resumes keep original merged-node sections only after validating their
|
|
2706
|
+
complete admission bindings (node, branch, PR, head and FAB run) and live merge
|
|
2707
|
+
outcomes; unavailable history holds rather than
|
|
2708
|
+
reconstructing scope from current main. Observed pending base/head drift before
|
|
2709
|
+
approval and each merge requires a fresh packet. GitHub's existing head pin
|
|
2710
|
+
remains independent; these reads do not atomically pin the base.
|
|
2711
|
+
|
|
2712
|
+
Direct patch text preserves LF/TAB and reversibly escapes backslashes, CR and
|
|
2713
|
+
disallowed Unicode. JSON sections decode as outer escapes, JSON, then nested
|
|
2714
|
+
`content.text` escapes, including four-digit `\u` and supplementary eight-digit
|
|
2715
|
+
`\U` escapes (the latter are not standard JSON escapes).
|
|
2716
|
+
`raw_sha256` hashes original bytes; `escaped_sha256`
|
|
2717
|
+
hashes intermediate escaped text; preview `presentation_sha256` hashes the
|
|
2718
|
+
final rendered section. Readback integrity is not a power-loss durability
|
|
2719
|
+
guarantee; that recovery work is tracked in agent-harness#977.
|
|
2720
|
+
Packet identity, material and revocation checkpoints, including finalization,
|
|
2721
|
+
storage and checks immediately before review and approval, use `review_halted`
|
|
2722
|
+
before recovery/readmission begins and `merge_halted` afterward. The per-node
|
|
2723
|
+
recovery/readmission handler alone appends a blocked row, and only after that
|
|
2724
|
+
node's helper began; later packet holds retain the latest durable binding.
|
|
2725
|
+
Panel rejections and native-fill refusals remain `review_halted`; merge-loop
|
|
2726
|
+
refusals remain `merge_halted`. All retain the typed reason and prior merges. Malformed
|
|
2727
|
+
stored metadata and excessive JSON nesting yield a typed hold and preview receipt.
|
|
2728
|
+
|
|
2662
2729
|
Idempotent resume: re-running `run_train` reads the ledger to skip nodes that
|
|
2663
2730
|
are already `pr_open` (confirmed via a live `_pr_is_open` check) or already
|
|
2664
2731
|
`merged`. A `blocked` node in the ledger is retried on resume.
|
|
@@ -95,14 +95,17 @@ equivalence is proven by a test (not asserted in prose).
|
|
|
95
95
|
deferred seat natively and the fill counts only once bound (EC-REVIEWTRUTH-14,
|
|
96
96
|
agent-harness#921) — the host×seat routing rule above.
|
|
97
97
|
- **`VENDOR_API_KEY_VARS`** — the flat `_API_KEY_VARS` tuple re-keyed by vendor
|
|
98
|
-
family; its union equals today's tuple (proven)
|
|
99
|
-
|
|
98
|
+
family; its union equals today's tuple (proven). It is also the api-key INJECTION map.
|
|
99
|
+
`scrub_subscription_env` additionally removes `SUBSCRIPTION_SCRUB_ONLY_VARS`
|
|
100
|
+
(`XAI_API_KEY`, `GROK_CODE_XAI_API_KEY`; agent-harness#864): the api-key variables of the
|
|
101
|
+
subscription-only grok harness, scrubbed but never injectable -- and
|
|
102
|
+
`GROK_SUBSCRIPTION_BLOCKED_ENV_VARS`, grok's endpoint redirects.
|
|
100
103
|
|
|
101
104
|
## IF-0-ABDFREEZE-4 — Back-compat contract · `fixtures.py` + `tests/test_advisor_board_backcompat.py`
|
|
102
105
|
|
|
103
106
|
- The model-first `default` board (`DEFAULT_BOARD`) resolves four vendors in
|
|
104
|
-
`DEFAULT_BOARD_VENDOR_ORDER`: Codex/Sol, Gemini/Flash high, Claude/
|
|
105
|
-
Grok 4.
|
|
107
|
+
`DEFAULT_BOARD_VENDOR_ORDER`: Codex/Sol, Gemini/Flash high, Claude/Opus 5.5, and
|
|
108
|
+
Grok 4.7. The separate legacy `PANEL_LEGS` tuple and explicit `invoke_panel`
|
|
106
109
|
API remain the frozen three-leg Codex/Gemini/Claude boundary.
|
|
107
110
|
- `advisor-panel` stays a working alias of `advisor-board` — the rename + alias is
|
|
108
111
|
ABDRESOLVE; this contract only *states* the invariant.
|
|
@@ -184,24 +187,27 @@ The seven built-in presets (`presets.PRESETS`). Every preset self-validates agai
|
|
|
184
187
|
the real matrix at `load_boards()` time (`tests/test_advisor_board_config.py`,
|
|
185
188
|
`tests/test_advisor_board_integration.py`).
|
|
186
189
|
|
|
187
|
-
- **Review-class =
|
|
188
|
-
review are mid-tier decisions where being wrong is expensive, so the
|
|
189
|
-
boards (`default`, `code-review`, `legal-review`,
|
|
190
|
-
|
|
190
|
+
- **Review-class = Opus 5.5 (for now), decoupled from the implementer.** Pre-merge
|
|
191
|
+
and legal review are mid-tier decisions where being wrong is expensive, so the
|
|
192
|
+
review-class boards (`default`, `code-review`, `legal-review`,
|
|
193
|
+
`legal-strategy-review`) seat Opus 5.5 (`claude-opus-5-5`) on the claude lane — the
|
|
194
|
+
maintainer's review default "for now" (2026-09-23), Fable (`claude-fable-5-1`)
|
|
195
|
+
before that and still selectable — NOT the implementer model
|
|
191
196
|
`profiles.CLAUDE_IMPLEMENTER_MODEL` (`claude-sonnet-5`). `panel_invoker.DEFAULT_LEG_MODELS["claude"]`
|
|
192
197
|
is the SINGLE source of truth for the panel's default claude model: the claude
|
|
193
198
|
leg builder (`_claude_tui_command`) and the Agent-View attempt both read it, so
|
|
194
199
|
the *legacy* `invoke_panel` path AND the live governed gates
|
|
195
200
|
(`governed_review` / `governed_premerge`, which call `invoke_panel` with no model
|
|
196
|
-
override) review on
|
|
201
|
+
override) review on Opus 5.5. `CLAUDE_IMPLEMENTER_MODEL` is untouched — the
|
|
197
202
|
implementer stays Sonnet. The `default` board (`fixtures.DEFAULT_BOARD`) is
|
|
198
|
-
byte-pinned to this
|
|
203
|
+
byte-pinned to this `invoke_panel` panel by the golden proof
|
|
199
204
|
(`tests/test_advisor_board_golden.py`); the sole sanctioned delta stays `seat_key`.
|
|
200
205
|
- **`default` and `code-review` are four-vendor frontier boards.** Gemini uses
|
|
201
|
-
`gemini-3.8-flash` at its `high` ceiling alongside Sol,
|
|
206
|
+
`gemini-3.8-flash` at its `high` ceiling alongside Sol, Opus 5.5, and Grok 4.7;
|
|
202
207
|
`code-review` preserves availability-aware backfill and distinct lenses.
|
|
203
|
-
- **President availability ladder.** Review findings go first to
|
|
204
|
-
|
|
208
|
+
- **President availability ladder.** Review findings go first to the `fable` seat
|
|
209
|
+
(Opus 5.5 by default — the rung names the seat, not the model), then
|
|
210
|
+
Sol, Grok 4.7, and Gemini 3.8 Flash. Descent occurs only for a typed
|
|
205
211
|
`president_unavailable` result, never because a president dissents. The ladder
|
|
206
212
|
is EXECUTED (not merely declared) by every `requires_president` landing policy —
|
|
207
213
|
see ABDPRES below.
|
|
@@ -214,8 +220,8 @@ the real matrix at `load_boards()` time (`tests/test_advisor_board_config.py`,
|
|
|
214
220
|
- **Catch-alls for unmodeled tasks (`general`, `solo`).** So the board library is not
|
|
215
221
|
limited to the pre-modeled domains: `general` is the domain-agnostic top-tier PANEL
|
|
216
222
|
(three frontier vendors — gpt-6-astra/adversarial, gemini-3.8-flash/alternative,
|
|
217
|
-
claude-
|
|
218
|
-
single-MEMBER form (one `claude-
|
|
223
|
+
claude-opus-5-5/completeness — hand it any task + brief), and `solo` is the
|
|
224
|
+
single-MEMBER form (one `claude-opus-5-5` seat) for a quick top-end opinion when a
|
|
219
225
|
panel is overkill. A ONE-seat board validates + resolves through `invoke_board` like
|
|
220
226
|
any other (bare/single seats are supported). Both default to TOP-END models: an
|
|
221
227
|
unanticipated task cannot be assumed low-stakes, so the safe default is frontier —
|
|
@@ -450,7 +456,9 @@ a landing decision. `tests/test_president_wiring.py`.
|
|
|
450
456
|
seated rung with it: the governed caller must receive that as a board result it
|
|
451
457
|
persists, not as an error it never records. Only a caller-contract error
|
|
452
458
|
(`president_round_limit`) propagates as `PresidentPolicyError`.
|
|
453
|
-
- **Execution route
|
|
459
|
+
- **Execution route — SUPERSEDED by ABDPRESROUTE below** (agent-harness#952): a seated
|
|
460
|
+
rung now runs through `public_board_president.v1`. The text of this bullet records the
|
|
461
|
+
pre-PRESROUTE route. `president_adapter.build_president_invoke`
|
|
454
462
|
binds the ladder to a board's seats (`seat_for_rung`: rung alias → seat model →
|
|
455
463
|
harness). An UNSEATED rung answers typed `president_unavailable` (the ladder
|
|
456
464
|
descends). A SEATED rung answers `failed` / `president_execution_route_unavailable`
|
|
@@ -486,13 +494,139 @@ a landing decision. `tests/test_president_wiring.py`.
|
|
|
486
494
|
president passes an explicit `review_policy=ReviewLandingPolicy(required_seats=...,
|
|
487
495
|
requires_president=False)` rather than a president-requiring tier.
|
|
488
496
|
|
|
497
|
+
## ABDPRESROUTE — The president operation · `president_operation.py`, `president_adapter.py`, `advisor_board/backing.py`, `panel_invoker.invoke_board` (IF-0-PRESROUTE-1, Consiliency/agent-harness#952)
|
|
498
|
+
|
|
499
|
+
The president's OWN HARDEN-authorized operation, `public_board_president.v1`, beside —
|
|
500
|
+
never through — the review operation `public_board_review.v1`. Frozen falsifiers:
|
|
501
|
+
`tests/test_president_wiring.py`, `tests/test_govlean_panel_policy.py` (SL-0,
|
|
502
|
+
`content_tdd_receipt.v1`), golden `tests/data/president_ruling_v1.golden.json`.
|
|
503
|
+
|
|
504
|
+
- **Callable.** `president_operation.run_president_operation(*, brief, findings,
|
|
505
|
+
authorization, invoke, max_substantive_rounds) -> PresidentOperationResult(ruling,
|
|
506
|
+
authorization_identity, rung_index, brief_digest, findings_digest)`. It refuses an
|
|
507
|
+
authorization whose `operation` is not exactly `public_board_president.v1`
|
|
508
|
+
(`PresidentPolicyError("president_operation_authorization_mismatch")`) BEFORE any rung
|
|
509
|
+
is invoked, then walks `PRESIDENT_LADDER` through `invoke` with the president prompt
|
|
510
|
+
built from the findings; the brief is digested, not sent.
|
|
511
|
+
- **Digests.** `brief_digest = sha256(brief)`; `findings_digest =
|
|
512
|
+
sha256("\n".join(findings))` in prompt order; lowercase hex. On a board, the brief is
|
|
513
|
+
the composed president prompt `_president_prompt(findings)`.
|
|
514
|
+
- **Completion grammar.** Per-finding `FINDING <id>: BLOCKING|DEFERRED — <reason>`,
|
|
515
|
+
terminal `FORCING DECISION: <decision>` (`_valid_president_grammar`); a launched rung's
|
|
516
|
+
turn is complete when its last line is a non-empty `FORCING DECISION:`
|
|
517
|
+
(`_completion_ok(text, "president")`), never a review verdict.
|
|
518
|
+
- **Authorization.** `backing.prepare_president_isolation_authorization(board, brief)`
|
|
519
|
+
mints `PresidentIsolationAuthorization` (same seal as review isolation;
|
|
520
|
+
`child_credentialless=True`, `child_network_egress=False`, `live_tree_exposed=False`,
|
|
521
|
+
`api_fallback=False`; subscription routes; brief digest; repository identity when the
|
|
522
|
+
launch has one — the operation reads no tree). The adapter revalidates it
|
|
523
|
+
(`revalidate_president_isolation_authorization`) immediately before a rung launches and
|
|
524
|
+
launches that authorization's route; a seat the authorization does not route (Claude
|
|
525
|
+
included) is refused without launching.
|
|
526
|
+
- **Rung routes** (`president_adapter.build_president_invoke(..., monitoring_policy=)`).
|
|
527
|
+
Unseated rung → typed `president_unavailable` (descend). `sol` / `grok` → the brokered
|
|
528
|
+
`_exec_leg` in a throwaway directory, whose only launch is `launch_provider`. `gemini` →
|
|
529
|
+
the broker's acknowledged agy stream with the PRESIDENT's own final instruction (a ruling,
|
|
530
|
+
not a review verdict), launched through `_run_leg_with_liveness` → `launch_provider` and
|
|
531
|
+
decoded by `_broker_gemini_stream_result`; with the agy subscription credential it runs in
|
|
532
|
+
the broker's agy profile, without one in an empty private HOME (no credential of any kind),
|
|
533
|
+
so the provider itself refuses and the failure is typed. `fable` under Claude Code (from the passed `base_env`; the adapter
|
|
534
|
+
falls back to the process environment only when none is passed, so it never spawns a
|
|
535
|
+
second TUI) → a deferred native fill `{"status": "native_fill_deferred", rung,
|
|
536
|
+
brief_digest, findings_digest}`, refused with `president_fill_heartbeat_refused` under
|
|
537
|
+
`heartbeat_only`. `fable` elsewhere → the brokered self-PTY session
|
|
538
|
+
(`_run_claude_tui_session`, tools off, no directory grant). A failed launch is a typed
|
|
539
|
+
`failed` (`president_invocation_failed`, no descent).
|
|
540
|
+
- **Ladder** (EC-PRESROUTE-3). `PRESIDENT_LADDER` is the seat-alias tuple; each alias
|
|
541
|
+
resolves to its vendor's registry PIN through `DEFAULT_REVIEW_SEAT_ALIASES` (where the
|
|
542
|
+
`model-id-source:` markers live). No model id is spelled in the ladder.
|
|
543
|
+
- **Brokered, monitored launch** (agent-harness#1001). Every non-native rung launch runs
|
|
544
|
+
under the isolation a review seat gets: `isolated_network` egress (no retained
|
|
545
|
+
capabilities), a single-use broker capability minted by
|
|
546
|
+
`backing.derive_president_leg_authorization` from the operation's lease
|
|
547
|
+
(`prepare_president_isolation_authorization(..., monitoring_policy=)` registers it;
|
|
548
|
+
`activate_/close_president_isolation_authorization` bracket each launch) carrying the
|
|
549
|
+
PRESIDENT operation identity, and the `ParentUnixBroker` over read-only staged bytes (the
|
|
550
|
+
brief and a fixed president instruction marker). Under `heartbeat_only` the transport runs
|
|
551
|
+
with a `_ReviewMonitor` -- no model-thinking deadline, no silence kill; cancellation (the
|
|
552
|
+
board's `cancel_event`) and owner loss are the only stops -- and the gemini rung uses the
|
|
553
|
+
owned heartbeat agy profile, and the Claude rung hands the broker's quiescence latch to its
|
|
554
|
+
TUI session. A missing canonical repository, an empty egress prefix (always -- the
|
|
555
|
+
authorization declares no network egress) or a cancelled operation
|
|
556
|
+
(`president_operation_cancelled`, which stops the walk) is a typed refusal before any provider
|
|
557
|
+
starts. Under BOUNDED monitoring only, a patched transport or launch site is the in-process
|
|
558
|
+
control seam and is not brokered (never evidence), as for review seats; `heartbeat_only` is
|
|
559
|
+
always brokered.
|
|
560
|
+
- **Configured ladder** (agent-harness#998 follow-up). `PRESIDENT_LADDER` is the BUILT-IN
|
|
561
|
+
order; the effective order is `advisor_board.config.load_president_ladder(repo_dir, *,
|
|
562
|
+
env, path)`: built-in < the user file's `[president] ladder`
|
|
563
|
+
(`$XDG_CONFIG_HOME/agent-harness/advisor-boards.toml`) < the repository's
|
|
564
|
+
`<repo>/.agent-harness/advisor-boards.toml` (`[president]` only; `[[boards]]` there is
|
|
565
|
+
refused). A ladder is a non-empty list of distinct seat aliases or alias-table model ids
|
|
566
|
+
(`validate_president_ladder`); a malformed one or an unknown key is `BoardConfigError`,
|
|
567
|
+
never a silent fall-back. The seam carries it (`build_president_invoke(..., ladder=)`,
|
|
568
|
+
`PresidentInvoke.ladder`); `invoke_president` walks `effective_president_ladder(invoke)`
|
|
569
|
+
(the seam's ladder, else the built-in), and `rung_index` is the rung's position in THAT
|
|
570
|
+
ladder. The phase-loop runner (`_run_legible_panel`), `advisor-board --landing-tier` and
|
|
571
|
+
`invoke_board`'s auto-wired seam load it; a malformed ladder is refused before any seat
|
|
572
|
+
(`president_ladder_invalid` / CLI exit 2). The user layer follows the environment it is
|
|
573
|
+
given: the auto-wired seam reads it from the passed `base_env` (its `XDG_CONFIG_HOME`,
|
|
574
|
+
else its `HOME`; neither ⇒ no user layer), never from the process HOME.
|
|
575
|
+
- **Defer → resume** (EC-PRESROUTE-2). A deferred Fable rung makes `invoke_board` return
|
|
576
|
+
the seats with `PanelResult.needs_native_president` = `{rung, brief_digest,
|
|
577
|
+
findings_digest, prompt}` and no ruling, persisting `president.pending.json`
|
|
578
|
+
(`president.pending.v1`: the request plus the findings and seat verdicts it was built
|
|
579
|
+
from) to `stream_dir`; a deferral without `stream_dir` is refused
|
|
580
|
+
(`president_native_fill_stream_required`). `invoke_board(..., native_president_fill=
|
|
581
|
+
{rung, brief_digest, findings_digest, text})` RESUMES after the same factory /
|
|
582
|
+
revalidation gate and before any seat launches -- no seat is re-run, so seats that would
|
|
583
|
+
word things differently cannot strand the route. The pending request is BOUND to its run
|
|
584
|
+
(resolved-artifact digest, the review-brief digest captured ONCE before any seat runs,
|
|
585
|
+
the board's ordered seat keys, mode, landing policy, president ladder and the seat each
|
|
586
|
+
rung resolves to under the run's `review_seat_aliases`) and the resume
|
|
587
|
+
refuses any difference. A new deferral removes any `president.ruling.json` an earlier
|
|
588
|
+
run left in the stream (after its pending request is written); every persisted ruling
|
|
589
|
+
removes any pending request (so an older request cannot later resume over it). The
|
|
590
|
+
resume and the ruling record resolve the rung through the run's `review_seat_aliases`. The fill is accepted only when that binding matches, the
|
|
591
|
+
stored verdicts are this board's seats in order and re-derive the stored findings, the
|
|
592
|
+
pending rung is this board's natively filled (Claude) rung, the persisted digests
|
|
593
|
+
recompute from the stored findings, the fill's rung and BOTH digests equal them, and the
|
|
594
|
+
text passes the ruling grammar for those findings. An accepted request is CONSUMED (it
|
|
595
|
+
answers once). This guards against a stale or mismatched stream, not a caller who forges
|
|
596
|
+
its own stream directory (the stream is the caller's durable context); otherwise `president_fill_digest_mismatch` (or
|
|
597
|
+
`president_ruling_format_missing` / `president_native_fill_stream_required`) and nothing
|
|
598
|
+
is persisted. The resumed result carries the deferred seats' verdicts (republished to the
|
|
599
|
+
stream) and the ruling. Under Claude Code, `invoke_board` wires the adapter itself when no
|
|
600
|
+
seam is passed -- keyed on the PASSED `base_env` only, never the process environment.
|
|
601
|
+
- **Ruling record** (EC-PRESROUTE-5). Every president ruling a board obtains on a call that
|
|
602
|
+
has a review stream (`stream_dir`; the runner and the CLI always pass one, and the native
|
|
603
|
+
path refuses without one) is written atomically to `<stream_dir>/president.ruling.json`.
|
|
604
|
+
A stream-less call -- which the frozen SL-0 corpus exercises on several president nodes --
|
|
605
|
+
returns its ruling unrecorded, since there is no stream to record it in. Schema
|
|
606
|
+
`president.ruling.v1`:
|
|
607
|
+
`schema`, `authorization_identity` (`public_board_president.v1`), `rung_index`,
|
|
608
|
+
`model_id` (the ruling rung's registry PIN on the board), `format_reask_count`,
|
|
609
|
+
`brief_digest`, `findings_digest`, `forcing_decision`, `finding_rulings`
|
|
610
|
+
(`[{id, disposition, reason}]`). `president_operation.president_ruling_record(result)`
|
|
611
|
+
builds the same shape from a `PresidentOperationResult`.
|
|
612
|
+
- **Override expiry** (EC-PRESROUTE-4). `panel_invoker.enforce_requires_president(tier,
|
|
613
|
+
*, requires_president)` refuses a `plan`/`production_code` landing carrying
|
|
614
|
+
`requires_president=False` (`requires_president_override_refused`); `invoke_board`
|
|
615
|
+
calls it whenever a `landing_tier` is given. The interim ratification note is EXPIRED.
|
|
616
|
+
- **CLI.** `advisor-board --landing-tier <tier>` runs the board under a tier (a president
|
|
617
|
+
tier binds the seam to the driving process's environment);
|
|
618
|
+
`--native-president FILL.json` resumes a deferred rung against the pending request
|
|
619
|
+
under `--native-fill-dir`/`native-fill/president/`.
|
|
620
|
+
|
|
489
621
|
## Review monitoring policy v1 (agent-harness#892)
|
|
490
622
|
|
|
491
623
|
The opt-in policy vocabulary is `bounded | heartbeat_only`; omission is bounded.
|
|
492
|
-
Heartbeat-only permits
|
|
493
|
-
|
|
494
|
-
or native host seat. Whole-board
|
|
495
|
-
auth, session creation
|
|
624
|
+
Heartbeat-only permits brokered subscription/homebrew Claude TUI, Codex and
|
|
625
|
+
Grok, plus the qualified Gemini extension below. It permits no timeout overrides,
|
|
626
|
+
capture, research, API fallback, gateway or native host seat. Whole-board
|
|
627
|
+
capability preflight precedes availability, auth, session creation and provider
|
|
628
|
+
dispatch. Missing or changed Gemini capability refuses the requested whole board;
|
|
629
|
+
its membership is never reduced or backfilled to satisfy this policy.
|
|
496
630
|
|
|
497
631
|
The requested/effective policy is bound to the operation lease and minted leg.
|
|
498
632
|
Heartbeat-only admission expires 10 seconds after minting and is single-use;
|
|
@@ -523,3 +657,52 @@ PID ownership is established after network entry but before the capability bound
|
|
|
523
657
|
set is emptied. Every launch retains the common provider launch seam and broker
|
|
524
658
|
threads inherit its ContextVar prefix. EgressUnavailable stays DEGRADED with empty
|
|
525
659
|
review text and the exception in detail; sandbox facts describe actual enforcement.
|
|
660
|
+
|
|
661
|
+
### Qualified Gemini extension (agent-harness#905)
|
|
662
|
+
|
|
663
|
+
The Linux x64 subscription `agy` 1.2.10 entry image must match SHA256
|
|
664
|
+
`aea7ed8df1e79b716c0ccd14c7d8086db75b14da535ffb7febdec9a488deff67`.
|
|
665
|
+
The running Python/kernel must support sealed memfds, pidfds and pidfd signaling;
|
|
666
|
+
Python version alone is not a capability check. Unknown images or missing
|
|
667
|
+
capabilities refuse before availability/auth effects. Required bwrap mount/gate
|
|
668
|
+
flags are checked at admission, before inference. Measure help through the
|
|
669
|
+
admitted `agy` filename: the usage line includes that name, while the same
|
|
670
|
+
archive member invoked as `antigravity` produces different help bytes. The
|
|
671
|
+
measured help defines literal `--print-timeout 0` as waiting for completion.
|
|
672
|
+
A quick real completion establishes compatibility; clock controls establish
|
|
673
|
+
that old runtime deadlines and silence cannot terminate a healthy heartbeat-only
|
|
674
|
+
operation.
|
|
675
|
+
|
|
676
|
+
The sealed image and deny-all settings are read-only mounts inside a private
|
|
677
|
+
HOME owned by the existing PID/mount namespace. A private symlink references the
|
|
678
|
+
subscription credential; no credential payload is copied, logged or restored.
|
|
679
|
+
Heartbeat credential lookup uses the supplied scrubbed HOME, recording a process
|
|
680
|
+
HOME fallback truthfully if HOME is absent. Legitimate refresh writes survive.
|
|
681
|
+
The real qualification driver requires an explicit HOME and checks target
|
|
682
|
+
presence before and after, without reading its contents.
|
|
683
|
+
|
|
684
|
+
The broker transports same-session acknowledged input over stdin, with no tree
|
|
685
|
+
attachment, `--add-dir`, permission bypass, retry or native thinking timer. Empty,
|
|
686
|
+
rejected and nonzero-exit streams remain non-votes with fixed diagnostics;
|
|
687
|
+
provider stdout/stderr and arbitrary exception strings are not substituted for
|
|
688
|
+
review prose. Native timeout under zero has a distinct diagnostic. Bounded
|
|
689
|
+
retry timing and supported positive deadline argv remain unchanged; accepted
|
|
690
|
+
Gemini review prose excludes stderr.
|
|
691
|
+
|
|
692
|
+
Namespace init identity is held before execution is released. Cancellation
|
|
693
|
+
reaps before closing a blocked execution gate; abrupt owner death can release
|
|
694
|
+
its EOF gate shortly before the parent-death signal takes effect. There is no
|
|
695
|
+
strict zero-exec claim for abrupt loss. Cleanup requires namespace-init exit
|
|
696
|
+
and corroborating observations, including detached/nested descendants. Failed
|
|
697
|
+
quiescence cannot yield a usable vote. No receipt proves remote billing settlement.
|
|
698
|
+
|
|
699
|
+
`phase-loop-runtime/scripts/qualify_gemini_heartbeat.py` separately qualifies
|
|
700
|
+
completion, cancellation after observed progress, and abrupt owner loss. Its
|
|
701
|
+
receipts bind package source, image/help/profile/helper hashes, inputs, argv,
|
|
702
|
+
monitoring, broker records and local cleanup observations. Helper evidence is
|
|
703
|
+
sampled, not a complete exec audit; the entry image pin does not freeze helper
|
|
704
|
+
images. Directory validation accounts for every attempt in the declared series
|
|
705
|
+
root, rejecting failures, omissions and terminal/admission mismatches. Preserve
|
|
706
|
+
failed series; diagnose a changed candidate before another attempt. Validation
|
|
707
|
+
uses that host's measured helper images. These receipts do not replace the
|
|
708
|
+
historical bounded-success evidence verifier.
|