FE-1793: Brunch assistant follow-ups and improvements - #9886
Conversation
…unch presentations Restore main's stock transcript, tool rows, tabs, scrolling and composer behind the default presentation, and give the stock and Brunch transcripts, tool lists, composer and status row their own files. Stopped in-progress stock tools show Cancelled instead of a spinner. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
A failed stream never ends its reasoning part, so the stock disclosure stayed open with a running timer after an error. Co-authored-by: Cursor <cursoragent@cursor.com>
Make the stock active and inactive tab treatment a compound variant of the stock style, and cover stock transcript chrome and tab styling for both presentations. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
1028aac to
f4d9c20
Compare
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
PR SummaryMedium Risk Overview Transcript & Activity: Working… with a spinner now appears in the transcript where that turn’s Activity will land (not above the composer except on the Ledger host tab). Live’s spoken-reply messages no longer host the working row; a pending BrunchWorkPending placeholder keeps the label position when work streams in. Activity drops the inner max-height scrollbar so every tool stays visible in the main transcript scroll. The Activity header keeps the spinner until work finishes; copy shifts from “Brunch…” to Working…, Preparing request / Sending request / Request sent, and Answer captured. Working on it. Tabs: Stock tab fade/opacity applies only when Live bridge: Turns prepared or submitted in a conversation that is no longer active are withdrawn or released—unsent text returns to the composer with notices to Live; in-flight submitted work no longer settles or summarizes in the new conversation. Voice control: Re-selecting Voice while a session is still stopping is treated as connecting until the prior session ends, then auto-starts the next session (no retry UI flash). Docs, changesets, and tests/stories cover the new placement, labels, tab styling, tool list height, and conversation-switch behavior. Reviewed by Cursor Bugbot for commit 3366380. Bugbot is set up for automated code reviews on this repo. Configure here. |
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 6049ec8. Configure here.
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>

🌟 What is the purpose of this PR?
Fix the Bugbot findings left open when the FE-1793/FE-1795 stack merged that #9883 doesn't cover: Brunch tabs fading like stock tabs, and a Live voice turn splitting across two conversations. It also stops Activity hiding its last tools behind a nested scroll, and shows the wait for Brunch where that turn's Activity will appear. #9883 fixes the stock styling findings.
🔗 Related links
🚫 Blocked by
ka/fe-1808-presentation-split.Stack: main → #9883 → this PR.
🔍 What does this change?
Pre-Merge Checklist 🚀
🚢 Has this modified a publishable library?
@hashintel/petrinaut.📜 Does this require a change to the docs?
docs/ai-assistant.mdnow says Activity scrolls with the conversation and describes where the waiting state appears.🕸️ Does this require a change to the Turbo Graph?
LiveConversationControl's support for a session that outlives a conversation switch, which its tests exercise.🐾 Next steps
None planned.
🛡 What tests cover this?
BrunchWaitingForResponsestory's play test passes in Chat and Voice.BrunchVoiceTurnActivitystory checks that the Activity label stays in the same spot from waiting to finished, andBrunchStreamingActivitynow checks the same through streaming updates.live-brunch-bridge.test.ts(89 tests) pass, apart from a known locallocalStoragefailure that also happens onmain.❓ How to test this?
turbo run lint:tsc lint:eslint test:unit --filter @hashintel/petrinaut --filter @apps/petrinaut-website.📹 Demo
A Voice turn from waiting to finished. Before, Working… attaches to Live's spoken reply and drops once Brunch responds. After, Working… waits under the spoken reply and gains its chevron in the same spot once Brunch's work starts.
pr-9886-activity-labels.mp4