H-6763: Preview generated Petrinaut scratch nets automatically - #9538
Conversation
Signed-off-by: Lu Nelson <ln@hash.ai>
The built-app test still required the retired Brunch identity sentence, so its faux provider rejected the request before emitting any response and surfaced an empty-reasoning assertion instead.
The production-path test already proves skill activation, resource reads, server and client tools, and transcript behavior. Exact system-prompt sentences only coupled it to editorial changes and obscured failures behind empty downstream output.
Signed-off-by: Lu Nelson <ln@hash.ai>
Signed-off-by: Lu Nelson <ln@hash.ai>
…rchitecture pinned
Add a software-behavior/Gherkin paper plugin, extract the cross-plugin transformation and evidence invariant, and capture the prospective software-correctness/Dafny boundary for mission planning. Amp-Thread-ID: https://ampcode.com/threads/T-01a05d1a-c858-722b-b53a-d0c448d14155 Co-authored-by: Amp <amp@ampcode.com>
619e7c9 to
23a67c5
Compare
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
23a67c5 to
d839994
Compare
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 81ad66b. Configure here.
| idempotencyKey, | ||
| ...(messageId === undefined && options.initialData !== undefined | ||
| ? { initialData: options.initialData } | ||
| : {}), |
There was a problem hiding this comment.
Initial data sent on every user turn
Medium Severity
Scratch-mode initialData is attached to every user send, not only the first admission that creates the conversation. Flue records initialData once at creation and treats it as immutable, so follow-up turns in an open scratch chat can be rejected or ignore a late mode seed. The transport only distinguishes user messages from tool results, not first admission from later user turns.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 81ad66b. Configure here.
b53b100 to
be56a18
Compare
|
Closing this obsolete stacked draft instead of recutting it. The accepted Voice foundation is #9564 with settlement follow-up #9588. This closure does not claim that automatic scratch preview or #9523 current-net grounding landed; either behavior should return only as fresh current-main work if still desired. |


Important
Closed as an obsolete stacked draft. This branch is not being recut. #9564 is merged and #9588 owns the omitted Voice settlement work. Automatic scratch preview and #9523 current-net grounding were not accepted by this closure; pursue them only in fresh current-
mainwork if still wanted. Do not merge this branch.🌟 What is the purpose of this PR?
Close the bounded Brunch interview-to-canvas loop in the Petrinaut local demo. Brunch now reads the live document before answering a request about the current net in every conversation. When a typed or Voice conversation begins against an empty scratch document, Brunch can also construct the elicited net through Petrinaut's canonical client tools and each accepted mutation appears on the canvas immediately. There is no separate Preview, Publish, or Generate action.
This is a temporary stacked implementation intended to prove the complete interaction. Its generic client-tool catalog and input-mapping seams are reconciled with Mission 6 without adopting Mission 6 fixture state or durability claims.
🔗 Related links
ec85958981: generic host-supplied client-tool projection seams🚫 Blocked by
🔍 What does this change?
Donor behavior
#9523 is a behavior donor. This PR adopts live-net reading before answering a request about the current net in every conversation, including conversations attached to existing non-empty documents, and preserves that browser client tool through transport and history hydration. It reimplements those behaviors against the shared Flue route and SDCPN plugin rather than importing #9523's older agent topology. Mutation tools remain gated to explicit scratch or validated construction modes. This PR does not supersede or authorize retirement of #9523.
From #9537, this PR adopts only the generic host-supplied client-tool catalog and input-mapping seams. It preserves FE-1580 hidden-tool filtering, admission and response tracking, complete errors, Voice provenance, and the exclusion of
brunch_ask; it does not import prepared fixtures, identities, coherent bundles, settled manifests, or evidence architecture.Pre-Merge Checklist 🚀
🚢 Has this modified a publishable library?
This PR:
📜 Does this require a change to the docs?
The changes in this PR:
🕸️ Does this require a change to the Turbo Graph?
The changes in this PR:
🐾 Next steps
🛡 What tests cover this?
❓ How to test this?
📹 Demo
Not recorded yet.
Made with Cursor