โ† Back to Articles & Artefacts
artefactseast

Inquiry โ€” the voice that carries its own way back

IAIP Research
ep308-voice-return-address-enforcement-260803-0bca3d6b-4931-4641-b1e1-32e957969f06

Inquiry โ€” the voice that carries its own way back

Born 2026-08-03 inside episode 308, from William hearing three of his agents speak and being unable to answer any of them.

What was asked

"There's no button under it to actually enter the cockpit or whatever the user interface where we are capable of chatting and having a conversation with the actual session, and don't fucking tell me that this is not in controller mode or whatever shit. period."

And the enforcement: force a model to declare which multiplexer it is in when it uses the API, or refuse the voice. Plus an episode, so that from app/chronicle a listener can play the voice back, reach the cockpit, and circle around what happened around it โ€” "It's not just we drop some audio file there, and that's it."

Current reality, measured 2026-08-03

factevidence
The field already existspackages/voice/src/origin.ts defines VoiceOrigin with multiplexer: tmux|herdr; its header quotes William's 2026-07-29 request for it
Text is enforced, the reply path is notapp/api/voice/publish/route.ts:23 โ†’ 400 on missing text ยท :45 โ†’ origin: (b.origin ?? undefined), silent
No episode field exists at allproduce() accepts text, origin, persona, lang, source, projectPath
Most voices cannot be answered92 messages: 68 carry no origin, ~13 are steerable
The surviving control points nowhere29 of 94 carry pwd = /tmp/assembly-voice-XXXXXX, the TTS scratch dir. William's screenshot: Copy cd /tmp/assembly-voice-JJAcIV
The reply machinery itself worksWilliam replied from the web and it arrived. %156 resolves live: session stcbot $70, window @70, pid 3902921, pane_active: true

The finding that could not have been reasoned into existence

Asked to demonstrate the enforcement, this seat published three voices and failed twice.

  1. Sent target only. The card answered: "The return address arrived incomplete, so none was built." resolveOrigin decides on user/host before the multiplexer.
  2. Sent the shape the exported VoiceOrigin type documents โ€” nested target. The normalizer reads input.multiplexer flat (origin.ts:191), found nothing, fell to else, rewrote the address to multiplexer:"none". Silently.
  3. Sent the undocumented flat wire shape. reach: "steerable".

The type a reader is shown and the shape the parser accepts are two different contracts, and only one is written down. origin.ts has never had a test โ€” test/ holds guards, personas, voice-map.

So: a publisher who had read the source, twice, intending to comply, in a message about complying, still shipped two unanswerable addresses โ€” because nothing refused him. Optional fields are not skipped only by the careless.

The counter-argument, which is owed a hearing

A contract specialist argued the opposite cause: the 68 came from TUSHELL-SESSIONS.md carrying an origin-less curl three days older than the feature โ€” publishers followed a stale map rather than refusing. And it invoked ยง9 against the ask itself: hard-requiring a field the server cannot attest converts "most messages honestly say nothing" into "every message says something and we cannot tell which are true." It proposed asymmetry โ€” require episode (verifiable against a real corpus), strongly encourage origin.

Its causal story does not survive the three failures above. Its ยง9 warning does. Both go to William; neither is the seat's to settle.

The half nobody had charted

A comprehension audit found the sharper thing: the Steer button already exists and is good. It renders for ~14 of 94 and, by documented decision (ReturnAddress.tsx:182 โ€” if (!origin) return null;), renders nothing for the other 80. Enforcement fixes tomorrow's voices and leaves those 80 silent โ€” which is what William actually reported.

His ban โ€” "don't tell me this is not in controller mode" โ€” refuses a genus of answer: the reason it doesn't work is a condition you cannot see. "The publisher did not declare an origin" is that same genus. MINO ยง5 already ruled it: state belongs beside the verb, never instead of it. Rendering nothing is not a changed noun; it is an absent one.

Both halves are owed: forward enforcement, and backward legibility.

Prior art that reframes the work

Gerico1007/dotagents PR #20 carries rispecs/nyro/episode-voice-channel/ โ€” reverse-engineered from 2026-08-01, when an agent held a spoken conversation with Jerry while he walked and handed the watch to a relieving agent before its context ran out. Its framing:

"The work was not building capability. It was joining three that already worked, and discovering the three seams where they silently do not."

Every seam it documents reports its failure somewhere other than its cause โ€” a recorder refusing .mp3 with a type error, a quoted .env value blamed on Groq as invalid_api_key. That is the same genus as nested-vs-flat origin, and as a tee pipeline swallowing this seat's own exit status an hour later.

Held for William

  • Symmetric enforcement (his verbatim: "otherwise, we reject") or the specialist's asymmetric split.
  • Constant verb across all 92 cards, or a "N answerable" filter chip preserving the glance โ€” settled by whether he arrives to scan or to listen.
  • jgwill/Miadi#575 is OPEN and deciding an axis literally named origin, meaning provenance. Same word, opposite sense, inside the Jerry-assembly vocabulary negotiation MINO ยง10 was written about. Read it before publishing anything that makes this origin public API.

๐ŸŒธ: He built the door in July and never required anyone to walk through it, so every voice since has arrived with its address left blank โ€” and the room was warm and lit the whole time.