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)
hash Ready Ready Preview Aug 28, 2026 12:50pm
petrinaut Ready Ready Preview Aug 28, 2026 12:50pm
petrinaut-docs Ready Ready Preview Aug 28, 2026 12:50pm
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
hashdotdesign-tokens Ignored Ignored Preview Aug 28, 2026 12:50pm

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

Medium Risk
Sweep tool output shape grows (captures + full completion on every applied sweep), which affects the wire stream and any consumers of harness facts; presentation logic lives in the demo app transport layer rather than core Petrinaut.

Overview
Applied brunch_sweep results now carry the full capture list (with derived active/superseded/retracted status) and the full completion report, not just IDs and a partial completion summary. The Flue binding spreads the completion evaluation into the tool output and maps each capture through deriveCaptureStatus.

The local-storage demo wraps chat transport with createBrunchPanelTransport, which intercepts brunch_sweep stream chunks and merges human-readable title / detail / items onto tool outputs (refused, no-settled-range, and applied with capture lines and completion gaps). SWEEP_TOOL_NAME is exported from transport-aisdk for that hook.

Tests assert the baseline harness exposes captures, evidence, and completion failures on the sweep tool part; a new unit test locks the decorated sweep payloads. Docs add the Petrinaut–Brunch attach contract (chat stream, brunch_ask, principal header), note inline sweep cards in the assistant guide, and tweak integration topology/terminology (UI-executed tools, same-origin /api/chat).

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

@lunelson
lunelson force-pushed the ln/fe-1506-legible-panel-status branch from 5ce8bb3 to ef9b8ab Compare August 27, 2026 15:55
@lunelson
lunelson force-pushed the ln/fe-1506-legible-panel-status branch from ef9b8ab to aa0c7f4 Compare August 27, 2026 17:42
lunelson and others added 4 commits August 28, 2026 14:32
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>
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