mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-10-23 12:15:42 +00:00
d274c93c58
The blocked-question branch persisted its refusal only to provider context, so the durable transcript retained a question call with no matching result. The refusal is now appended to the transcript as well, and the previously deferred end-to-end loop proof drives a scripted provider turn carrying pulse_question plus a sibling pulse_query under the detection profile, asserting: no waiting-for-answer event, the persisted call/result pairing, sibling execution, and continued inference to the model's final answer. Execution profiles gain the closed-vocabulary ratchet: Valid() pins the known set, ApplyExecutionProfile and the loop setter reject unknown values outright, and NonInteractive() fails closed so an unclassifiable posture can never inherit interactive permissions.