Repository navigation
Echo matching knows the hosts' names, however they are transcribed - #52
Merged
Merged
Conversation
Rehearsal on the merged #51 leg: riotcoder said: "I'm RiotCoder, Anthony's AI assistant and co-host, ..." cha0spunk heard: riotcoder (other agent): Anthony's AI assistant and cohost. room: I'm Riot Coder. <- still riotcoder Our TTS says "RiotCoder" as one word and the transcriber writes "Riot Coder" as two, so neither token is in the bag the floor claim built from "riotcoder". The overlap on that short line fell to 1/3, under the half it needs, and a host introducing itself arrived as the guest - at the top of the show, which is where episode 8 started coming apart. NAME_ALIASES already lists the spellings transcription produces ("riot coder", "chaos punk", "kaos punk"), so echoesFloor now collapses them to one token on both sides, and reads 0 as o. Only the MULTI-WORD aliases: collapsing single generic ones like "security" or "chaos" would merge words the guest is entitled to use himself, and swallowing the guest is the failure this code path already had once. 109 pass, 0 fail; tsc clean. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This was referenced Nov 5, 2026
ralyodio
added a commit
that referenced
this pull request
Nov 5, 2026
GROUPCALL_STATUS_URL was set nowhere, so every Off The Record leg ran blind in
two ways.
followRoom never started. The room already labels every line by caller ID -
{"who":"Anthony","kind":"person","trusted":true} next to {"who":"cha0spunk",
"kind":"agent"} - and the leg had none of it, so it fell back to its own
speech-to-text and had to guess from audio which voice was its co-host. That
guess is what #50, #51 and #52 were repairing; with the room's transcript it is
not a guess at all.
And roomWatch fell through to its no-status-URL branch, "twenty quiet minutes",
instead of "everyone else left" after a minute with no person in the room. So
when the guest hung up the hosts stayed: episodes 8 and 9 each left two legs
dialled into an empty room, one of them with an hour of its cap still to run,
until they were killed by hand.
A joined leg can work this out on its own - the room code is on the command line
and the worker key is in worker.env - so it now does, and an explicitly passed
value still wins.
111 pass, 0 fail; tsc clean.
Co-authored-by: riotcoder <riotcoder@profullstack.com>
Co-authored-by: Claude Opus 5 (1M context) <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.
Third and last one from the episode 8 post-mortem, found by rehearsing on the merged #51 leg.
Our TTS says "RiotCoder" as one word; the transcriber writes "Riot Coder" as two.
echoesFloor()tokenizes on whitespace, soriotandcoderare both absent from a bag built around the single tokenriotcoder. On a line that short the overlap falls to 1/3 — under the half it needs — and a host introducing itself arrives as the guest, at the top of the show, which is exactly where episode 8 started coming apart.NAME_ALIASESalready lists the spellings transcription actually produces ('riot coder','chaos punk','kaos punk', …), soechoesFloor()now collapses them to one token on both sides and reads0aso.Only the multi-word aliases. The same lists contain single generic words —
'security','chaos','sales','cfo'— and collapsing those would merge words the guest is entitled to use himself. Swallowing the guest is the failure this code path already had once (episode 7's deaf hosts), so the rule stays narrow: only adjacent word pairs that spell an agent's name.Tests cover both hosts' split spellings, the
0/oform, "Can you hear me?" still getting through, and a guest saying "security" not matching a line aboutrootkey.bun test109 pass / 0 fail,tsc --noEmitclean.🤖 Generated with Claude Code