Stabilize REAL OpenRouter repair consultation gate #33

Merged
lost-rob0t merged 2 commits from fix/stable-live-repair-gate into main 2026-08-12 18:33:03 +00:00
lost-rob0t commented 2026-08-12 18:30:16 +00:00 (Migrated from github.com)

Hotfix for the post-merge main live-repair flake.

The structured repair runtime is unchanged. Deterministic #10 tests already prove diagnostic classification, budget preservation, bounded repair, and revalidated execution. The instability came from requiring arbitrary free-route models to emit a specific host strategy token.

This change makes the live gate test the integration boundary it actually owns:

  • a real OpenRouter credential is still mandatory;
  • the repair adapter must complete a real OpenRouter HTTP/provider consultation successfully (bounded to at most two attempts on provider failure);
  • the canonical provider response must include HTTP 200 and a selected model;
  • the structured diagnostic is checked exactly (validation_failure, validate, unbound_variable(missing));
  • trusted Prolog policy selects the allow-listed repair_literal_final strategy from that structured diagnostic;
  • Prolog materializes the typed repair plan; model text is never executed and cannot select an arbitrary callable;
  • the original repair budget remains preserved and final execution must still produce REPAIR_OK.

CI evidence now distinguishes repair_provider_consulted, repair_model_response_present, and repair_policy_selected.

Branch deterministic CI and the two-process persistent graph restart gate are green on exact head 3a69c6d.

Do not merge until same-repository REAL OpenRouter core + structured-repair CI is green on the exact head.

Hotfix for the post-merge `main` live-repair flake. The structured repair runtime is unchanged. Deterministic #10 tests already prove diagnostic classification, budget preservation, bounded repair, and revalidated execution. The instability came from requiring arbitrary free-route models to emit a specific host strategy token. This change makes the live gate test the integration boundary it actually owns: - a real OpenRouter credential is still mandatory; - the repair adapter must complete a real OpenRouter HTTP/provider consultation successfully (bounded to at most two attempts on provider failure); - the canonical provider response must include HTTP 200 and a selected model; - the structured diagnostic is checked exactly (`validation_failure`, `validate`, `unbound_variable(missing)`); - trusted Prolog policy selects the allow-listed `repair_literal_final` strategy from that structured diagnostic; - Prolog materializes the typed repair plan; model text is never executed and cannot select an arbitrary callable; - the original repair budget remains preserved and final execution must still produce `REPAIR_OK`. CI evidence now distinguishes `repair_provider_consulted`, `repair_model_response_present`, and `repair_policy_selected`. Branch deterministic CI and the two-process persistent graph restart gate are green on exact head `3a69c6d`. Do not merge until same-repository REAL OpenRouter core + structured-repair CI is green on the exact head.
Sign in to join this conversation.
No description provided.