feat(portal): assume the microphone works, retire the mic check from the monitor - #1064
Merged
Conversation
…phone The onboarding deck loses its microphone check. Nearly every phone's microphone is fine, and the check cost every participant a permission prompt, a test, and a tap before they had said a word. The deck now runs privacy, then (if the host asks for one) a name and tags, then recording. The permission prompt moves to the first tap on Record. If nothing arrives once recording starts, the meter turns red and opens the microphone test itself, so the one participant in fifty who needs it still gets it, and the other forty-nine never see it. The mic_ok / mic_skipped / mic_blocked funnel stages stay in the monitor's vocabulary but the portal no longer emits them. The thank you page settles its hierarchy: "Show QR Code" and "Record another conversation" are tertiary text links; "dembrane at your event?" is a secondary outline button in the footer, full width on a phone and a fixed width on anything wider. The page fills the viewport so the footer sits at the bottom even when the content is short. The header keeps to the same column as the content beneath it. On a wide screen the logo and the actions used to sit at the window's edges, a foot away from the text they belong to; now everything shares one 42rem column, and the page reads as the phone layout it is. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… page The portal no longer runs a microphone check, so the host monitor no longer has a place for one. The three mic stages leave the funnel's vocabulary on both sides: the dashboard drops the "Mic checked", "Skipped mic check" and "Mic blocked" timeline rows and the blocked colour, the server stops accepting them from the portal and stops counting them in the funnel summary. A visitor session written by a portal tab from before the change can still carry one of the old stages for as long as the session lives. Those fold forward to "terms": the participant had passed consent, and "scanned" would have read as a step backwards. On the thank you page every button is secondary now: "Show QR Code", "Record another conversation" and the footer's "dembrane at your event?", which goes back to full width with its label centred. The heading gets more room from the header above it. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two changes to the participant portal that landed after #1059 was squash-merged, carried over onto
main(which now includes #1063's needs-form link on the event card; the two combine cleanly).The microphone check is gone
The onboarding deck no longer tests the microphone. Nearly every phone's microphone is fine, and the check cost every participant a permission prompt, a test and a tap before they had said a word. The deck now runs privacy, then a name and tags if the host asks for them, then recording. The permission prompt moves to the first tap on Record.
The safety net is the level meter #1059 introduced: it runs blue, turns yellow when the connection is unhealthy and red when the recording itself is in trouble, and eight seconds of a flat signal (a muted, unplugged or taken-over microphone; a quiet room still returns room tone) opens the microphone test on its own. The one participant in fifty who needs the test still gets it; the other forty-nine never see it.
Retired on both sides
The
mic_ok/mic_skipped/mic_blockedfunnel stages leave the monitor's vocabulary. The dashboard drops its three mic timeline rows, the drilldown labels and the blocked colour; the server stops accepting them from the portal and stops counting them in the funnel summary. A visitor session written by a portal tab from before the change can still carry one for as long as the session lives; those fold forward toterms, since the participant had passed consent andscannedwould read as a step backwards. There is a test for the fold.The thank you page, settled
One column, everywhere
The header keeps to the same 42rem column as the content beneath it. On a wide screen the logo and the actions used to sit at the window's edges, a foot away from the text they belong to; now everything shares one column and the page reads as the phone layout it is. The header's shadow still runs edge to edge.
Verification
tsc --noEmit, biome, production build; participant / voice / common / conversation / hooks suites (116 pass; the 5 failures are pre-existing and identical onmain).ruff checkclean;test_visitor_session,test_participant_ping,test_conversation_monitorpass (64 tests) in the devcontainer.ruff formatdrift in these files predates this PR and CI only runsruff check.🤖 Generated with Claude Code