mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-09-11 22:12:23 +00:00
cb1ced8b8c
Consolidates the OpenCode-restraint arc's user-visible promises into one runnable corpus, mirroring the Discovery corpus pattern (internal/servicediscovery/scenario_corpus_test.go). Each scenario drives a full ExecuteStream turn against a scripted provider and pins the browser-facing event stream: ordered/forbidden event types, answer-text teeth, and payload teeth. Six scenarios: clean plain-answer turn (done stamped with the model route, no tool noise), greeting answered directly with tools offered but unused, tool turn rendered as compact tool events with real tool names and no provider call ids in the answer, clean no-narrative fallback sentence (no raw JSON / call_ ids), invisible pre-event provider retry (no error event), and exactly one clear error event on terminal provider failure. Teeth proven by mutation probes: a wrong ordered type and a wrong answer assertion both fail with the promise named in the message. Corpus documented in ai-runtime.md Current State as the canonical home for interaction-quality regressions, so Patrol-phase churn on the shared agentic loop cannot silently regress the chat feel.