Skip to content

FE-1506: Show captures and completion while a panel elicitation runs - #9346

Open
lunelson wants to merge 4 commits into
ln/fe-1504-panelfrom
ln/fe-1506-legible-panel-status
Open

FE-1506: Show captures and completion while a panel elicitation runs#9346
lunelson wants to merge 4 commits into
ln/fe-1504-panelfrom
ln/fe-1506-legible-panel-status

Conversation

@lunelson

Copy link
Copy Markdown
Contributor

🌟 What is the purpose of this PR?

The first human elicitation from the Petrinaut panel (FE-1503) needs the person at the panel to see what the interviewer has captured and whether the interview is complete while it runs. This branch surfaces capture and completion facts in the sweep results, keeps their presentation in the Petrinaut host, and states the attach contract between Petrinaut and the Brunch server.

Draft: opened so the stack is visible end to end. The description is completed when the branch is tied off.

🔗 Related links

🚫 Blocked by

  • Stacks on ln/fe-1504-panel; lands after it.

🔍 What does this change?

Capture and completion facts flow into sweep results; the Petrinaut host renders them; docs/specs/petrinaut-integration.md states the attach contract.

Pre-Merge Checklist 🚀

🚢 Has this modified a publishable library?

This PR:

  • does not modify any publishable blocks or libraries, or modifications do not need publishing

📜 Does this require a change to the docs?

The changes in this PR:

  • are internal and do not require a docs change

@vercel

vercel Bot commented Aug 26, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
petrinaut Ready Ready Preview Aug 27, 2026 9:24am
3 Skipped Deployments
Project Deployment Actions Updated (UTC)
hash Ignored Ignored Preview Aug 27, 2026 9:24am
hashdotdesign-tokens Ignored Ignored Preview Aug 27, 2026 9:24am
petrinaut-docs Skipped Skipped Aug 27, 2026 9:24am

Request Review

lunelson commented Aug 26, 2026

Copy link
Copy Markdown
Contributor Author

@cursor

cursor Bot commented Aug 26, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
Changes are demo-host presentation and richer sweep tool payloads for the UI; no auth or persistence semantics change beyond documented contract text.

Overview
Sweep results now carry the facts the panel needs to show during elicitation, and the local-storage demo decorates those streams so inline sweep cards read clearly.

On the server, an applied brunch_sweep response includes the full capture list (each with derived active / superseded / retracted status) and a fuller completion report, not just a trimmed cue. The transport package exports SWEEP_TOOL_NAME so the host can target sweep chunks reliably.

The demo app wraps DefaultChatTransport with createBrunchPanelTransport, which parses sweep outputs and merges title, detail, and items (formatted captures, provenance, and completion gaps) into tool-output chunks for the existing Petrinaut tool UI. A Vitest suite locks the three outcomes: no settled range, refused, and applied.

Docs are updated: petrinaut-integration.md adds the stable attach contract (chat stream, brunch_ask, x-brunch-principal) and clarifies same-origin /api/chat and UI-executed tools; ai-assistant.md mentions inline sweep cards for captures and open requirements. The baseline harness test asserts the same capture and completion shape on streamed message parts.

Reviewed by Cursor Bugbot for commit 5ce8bb3. Bugbot is set up for automated code reviews on this repo. Configure here.

lunelson and others added 3 commits August 27, 2026 10:47
Expose current captures and the full completion report through readable sweep output so Petrinaut's existing generic tool renderer can display live elicitation state.

Co-authored-by: Cursor <cursoragent@cursor.com>
Pin the chat stream, structured ask schema, and principal identity as the stable UI and voice integration surface that changes only with notice.

Co-authored-by: Cursor <cursoragent@cursor.com>
Move readable sweep summaries to the app-owned transport so the reusable binding exposes raw capture history and completion facts without renderer coupling.

Co-authored-by: Cursor <cursoragent@cursor.com>

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 9697f14. Configure here.

Comment thread apps/petrinaut-website/src/main/app/local-storage-demo/brunch-panel-transport.ts Outdated
Lowercasing the whole formatFailure string also folded node, slot, and capture ids, so a sweep card could show the same node under two identities.

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/apps area/infra Relates to version control, CI, CD or IaC (area) area/libs Relates to first-party libraries/crates/packages (area) area/tests New or updated tests type/eng > frontend Owned by the @frontend team

Development

Successfully merging this pull request may close these issues.

1 participant