Skip to content

FE-1839: Shorten and de-jargon Voice and Brunch panel copy - #9893

Closed
kostandinang wants to merge 10 commits into
ka/fe-1808-presentation-splitfrom
ka/fe-1839-voice-copy
Closed

kostandinang wants to merge 10 commits into
ka/fe-1808-presentation-splitfrom
ka/fe-1839-voice-copy

Conversation

@kostandinang

@kostandinang kostandinang commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor

🌟 What is the purpose of this PR?

Make the Voice and Brunch panel text short and plain. The voice consent card was a dense paragraph of internal terms, and Voice notices said things like "Check canonical history; no automatic retry was made." This continues #9886's activity wording, which stopped naming Brunch in turn labels, across the rest of the panel.

🔗 Related links

🚫 Blocked by

  • #9886, branch ka/fe-1793-merged-stack-fixes.

Stack: main → #9883 → #9886 → this PR.

🔍 What does this change?

Copy only; no behaviour changes.

  • Voice consent card: the same disclosures in plainer words. "OpenAI processes your microphone audio and the conversation text. Your transcribed words, the request sent to the assistant and its answer are saved. Audio isn't saved, and captions stay in this browser."
  • Voice issues popover: the popover shows each message's first sentence as its title, so every notice now leads with a short, complete sentence, such as Your earlier words weren't sent. or Couldn't confirm your message was sent. Notices no longer say "admission", "canonical history", "utterance" or "Live", and say "the assistant" instead of "Brunch".
  • Voice status bar: the blocked-audio status reads Audio blocked. Select Play to listen.
  • Connection errors: the ten Live errors under Technical details keep their technical first sentence and drop the repeated "No automatic retry was made."
  • Audio settings, Labs settings, Ledger notices, Activity tool rows, sweep results and the experiment draft card: shorter wording without "settled", "canonical read" or "Ledger revision". For example, Activity reads Reading confirmed passages and Checking for Ledger updates.
  • Naming: inside the assistant panel, copy says "the AI assistant" instead of "Brunch". Labs settings keep Use Brunch, where the name tells the two assistants apart.
  • Unchanged: instructions sent to the Live model, server API errors and prompt chips.
Every change, before and after
Where Before After
Consent card, Live OpenAI processes microphone audio for voice and transcription, and text to prepare briefs and summaries. Brunch saves your finalized spoken words, the brief and its answer. Spoken captions stay in this browser; Petrinaut does not save audio. OpenAI processes your microphone audio and the conversation text. Your transcribed words, the request sent to the assistant and its answer are saved. Audio isn't saved, and captions stay in this browser.
Consent card, Realtime OpenAI processes live audio and speaks the interviewer's words. Petrinaut saves finalized answers—not audio. OpenAI processes your audio and speaks the interviewer's questions. Your transcribed answers are saved; audio isn't.
Test microphone failure Microphone access was not available. Check your browser permissions and try again. Couldn't access the microphone. Check your browser permissions.
Words cancelled by new speech Your earlier utterance was not sent because you started speaking again. Use the composer to send it. Your earlier words weren't sent. You started speaking again, so they're in the composer if you still want them.
Words cancelled by a conversation switch Your earlier utterance was not sent because the conversation changed. Use the composer to send it. Your earlier words weren't sent. The conversation changed, so they're in the composer if you still want them.
Words dropped while busy That utterance was not retained. Wait for the pending input, then use the composer to send it. Those words weren't sent. They're in the composer to send when the assistant is ready.
Answer not confirmed Your message was admitted, but its response could not be confirmed. Check canonical history; no automatic retry was made. Couldn't confirm the answer. Your message was sent; check the conversation before sending it again.
Send not confirmed Voice admission could not be confirmed. Check canonical history before sending again; no automatic retry was made. Couldn't confirm your message was sent. Check the conversation before sending it again.
Assistant didn't finish Brunch did not complete this turn. Check the conversation; no result was offered to Live. The assistant didn't finish. Nothing will be spoken; check the conversation.
No reply to speak Brunch settled without a spoken answer. Check the conversation. The assistant finished without a reply to speak. Check the conversation.
Summary failed Brunch finished, but its spoken summary could not be prepared. Read the written answer; no automatic retry was made. Couldn't prepare a spoken summary. The written answer is in the conversation.
Spoken answer not delivered The answer could not be sent to Live locally / was rejected by Live. Check the conversation; no automatic retry or replay was made. Acceptance does not confirm playback. Couldn't speak the answer. The written answer is in the conversation.
Instruction to Voice not delivered The continuation instruction could not be sent to Live locally / was rejected by Live. (Same ending.) Voice may be out of sync. Check the conversation before relying on what it says.
Blocked audio status Audio playback is blocked. Select Play voice audio to hear Live. Audio blocked. Select Play to listen.
Live connection errors (10) e.g. Transcription failed. No fallback or automatic retry was made. e.g. Transcription failed.
Realtime: answer pending Previous answer waiting. Please try again after it is sent. Still sending your last answer. Try again in a moment.
Realtime: not heard / too long We didn't catch that. Please try again. / That answer is too long. Please try a shorter response. We didn't catch that. Try again. / That answer is too long. Try a shorter one.
Microphone permission / device Allow microphone access in your browser settings, then reconnect voice input. / No usable microphone was found. Connect or select one, then reconnect voice input. Microphone blocked. Allow access in your browser settings, then reconnect. / No microphone found. Connect or select one, then reconnect.
Voice service errors …give the diagnostic reference to an operator. / …preview is unavailable or disabled. Continue with the text composer. …share the diagnostic reference with support. / …is unavailable. You can keep going in chat.
Audio settings Applies next session. Mute your mic while the agent is idle to preview. / Audio controls are unavailable until Voice is connected. Applies next session. To preview, mute your mic while the agent is idle. / Connect Voice to use audio controls.
Labs settings Brunch is unavailable because this site has no Brunch endpoint configured. / Make Voice mode available for Brunch conversations. / Switch to an alternative voice engine if you're having trouble with Live. Brunch isn't set up on this site. / Talk to Brunch by voice. / Use the alternative voice engine if Voice isn't working well.
Ledger notices A newer Ledger revision exists. Ask Brunch to refresh this view before relying on it. / The recorded explanation predates a newer Ledger revision. Ask why again to assess the latest account. This view is out of date. Ask the AI assistant to refresh it. / This explanation is out of date. Ask why again for the latest.
Activity tool rows Reading settled passages (and conversation sources) / Checking Ledger revision Reading confirmed passages (and conversation sources) / Checking for Ledger updates
Sweep with nothing to do No settled range to sweep / The conversation has no settled user entries. Nothing confirmed to sweep yet / None of your messages in this conversation are confirmed yet.
Draft card The model changed since the canonical read… / This draft was prepared before this editor was loaded… / Run is blocked by an unsupported restriction… a reporting-only exploration needs your explicit acceptance. / …or ask Brunch to draft it again. The model changed since the AI assistant read it… / This draft is from an earlier session… / Can't run: a restriction isn't supported. Ask the AI assistant to revise the proposal, or tell it you accept a run that only reports on it. / …or ask the AI assistant to draft it again.
Draft preparation errors Draft requires the latest settled canonical net read after changes. / The latest canonical read has no document revision. The AI assistant needs to read the latest model before drafting. / The AI assistant's latest model read has no document revision.
Experiment follow-up tooltip The experiment finished, but its results could not be sent to Brunch. The experiment finished, but its results could not be sent to the AI assistant.
Activity: connection check Checking Brunch connection / Could not reach Brunch Checking connection to the AI assistant / Could not reach the AI assistant
Ledger region label (screen readers) Brunch Ledger Ledger

Pre-Merge Checklist 🚀

🚢 Has this modified a publishable library?

  • Adds a patch changeset for @hashintel/petrinaut (audio settings copy).

📜 Does this require a change to the docs?

  • No. The docs paraphrase the consent card, and that paraphrase is still accurate.

🕸️ Does this require a change to the Turbo Graph?

  • No.

⚠️ Known issues

  • The consent acknowledgement key (petrinaut:live-voice-interview-disclosure:v3) is not bumped, because the card makes the same claims, so people who already agreed won't be asked again. The new text says OpenAI processes "the conversation text", which is broader than the old "text to prepare briefs and summaries". Bump to v4 if product or legal want everyone to agree again.
  • "Confirmed" stands in for the internal "settled" (passages agreed in the Ledger). Happy to match whatever word the Ledger uses.

🐾 Next steps

None planned.

🛡 What tests cover this?

  • Updated: tests and one story that assert the old wording now assert the new wording. The Live warning test now checks the per-kind message.
  • The website voice and Brunch suites (827 tests) and the Petrinaut assistant panel suite (317 tests) pass, apart from the known local localStorage failures that also happen on main.

❓ How to test this?

  1. Run turbo run lint:tsc lint:eslint test:unit --filter @hashintel/petrinaut --filter @apps/petrinaut-website.
  2. Start yarn dev:brunch, open the assistant and select Start voice mode. Check the consent card shows the new text, and that Test microphone reports in the new wording.
  3. In Voice, start speaking again before a turn is sent and check that the Voice issues popover shows Your earlier words weren't sent. as the title.

kostandinang and others added 7 commits October 1, 2026 12:19
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>
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>
@kostandinang kostandinang self-assigned this Oct 2, 2026
@vercel

vercel Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated
hash Ready Ready Preview Oct 2, 2026 2:27pm UTC
petrinaut Ready Ready Preview Oct 2, 2026 2:27pm UTC
petrinaut-docs Ready Ready Preview Oct 2, 2026 2:27pm UTC
1 Skipped Deployment
Project Deployment Actions Updated
hashdotdesign-tokens Ignored Ignored Preview Oct 2, 2026 2:27pm UTC

Request Review

@github-actions github-actions Bot added area/infra Relates to version control, CI, CD or IaC (area) area/libs Relates to first-party libraries/crates/packages (area) type/eng > frontend Owned by the @frontend team area/apps area/apps > hash.design Affects the `hash.design` design site (app) labels Oct 2, 2026
@kostandinang
kostandinang marked this pull request as ready for review October 2, 2026 10:47
@cursor

cursor Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

PR Summary

Low Risk
User-visible strings and test assertions only; no control-flow or API behavior changes.

Overview
Copy-only refresh across the Voice and Brunch assistant UI: shorter, plainer strings with less internal jargon (“canonical history”, “settled”, “Live”, “Brunch” as the actor).

Voice consent/disclosure, status bar, issues popover notices, Live bridge user messages, connection/playback errors, Realtime session notices, microphone checks, and shared voiceErrorMessage helpers are rewritten (e.g. Audio blocked. Select Play to listen., the AI assistant instead of Brunch for runtime messaging). Repeated “No automatic retry was made.” suffixes are removed from many Live client errors.

Assistant panel areas get the same treatment: Labs settings blurbs, Ledger stale-view notices (aria-label Ledger), Activity tool row titles (“confirmed passages”, “Checking for Ledger updates”), sweep empty-state copy, experiment draft card errors/alerts, and audio settings help (Connect Voice to use audio controls.). Tests and Storybook expectations are updated to match.

A patch changeset for @hashintel/petrinaut documents the audio-settings copy change.

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

kostandinang and others added 3 commits October 2, 2026 15:30
Co-authored-by: Cursor <cursoragent@cursor.com>
Rewrite the voice consent card, Voice issue notices, connection errors, audio and Labs settings, Ledger notices, Activity tool labels and the experiment draft card in plain language. Notices lead with a short first sentence because the Voice issues popover shows it as the title. Instructions sent to the Live model are unchanged.

Co-authored-by: Cursor <cursoragent@cursor.com>
The panel's draft card, Ledger notices, experiment follow-up tooltip and connection activity row say "the AI assistant" instead of naming Brunch. Labs settings keep the Brunch name, where it distinguishes the two assistants.

Co-authored-by: Cursor <cursoragent@cursor.com>
Base automatically changed from ka/fe-1793-merged-stack-fixes to ka/fe-1808-presentation-split October 2, 2026 21:56
@kostandinang
kostandinang deleted the branch ka/fe-1808-presentation-split October 2, 2026 21:56

This branch was successfully deployed

3 active deployments
Preview – petrinaut-docs — bd333fe2 Deployed Oct 2, 2026 by vercel[bot]
Preview – hash — bd333fe2 Deployed Oct 2, 2026 by vercel[bot]
Preview – petrinaut — bd333fe2 Deployed Oct 2, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/apps > hash.design Affects the `hash.design` design site (app) area/apps area/infra Relates to version control, CI, CD or IaC (area) area/libs Relates to first-party libraries/crates/packages (area) type/eng > frontend Owned by the @frontend team

Development

Successfully merging this pull request may close these issues.

2 participants