UNI Universal Natural Intelligence

Wiki · Evidence & Verdicts

Deployed and validated end to end — ~9h into the 25h run

Evidence & Verdicts · docs/receipts/radio_and_world_fixes_deployed_2026-08-02.md @ db7dafeb44d1 (gen2-runtime) — opens the published snapshot 92cd15772592
1 value was removed from this page. Each one is marked in place as [redacted: category] 1 internal hostname. Nothing else was altered. The document is otherwise exactly as it is written in the repository, and the sha256 below is of the original, so what was ingested stays checkable.

How to read this page

Eighty-seven dated pages: receipts, pre-registrations, handoffs, validation records and review verdicts. A receipt is written at the moment a piece of work was checked. It names what was claimed, the commit and the seed, what was actually run, and the outcome in one of a small set of controlled words. Then it names what the work did not achieve. That last part is what makes it a receipt rather than an announcement. A pre-registration is the same discipline run in advance: the conditions that would count as a pass and the conditions that would falsify the claim are written down before the run, so neither can be adjusted once the numbers arrive.

That is why so many small dated stubs are an audit trail rather than noise. No one of them is meant to be a good read. The value is in the sequence and in the dates, because you can watch a prediction be registered, then the run happen, then the verdict land — sometimes against the prediction. Pages here record a falsified result, a rejected fix, a retracted overclaim, and a green receipt that turned out not to be reproducible from the commit that carried it. A record that carried only successes would be worth a good deal less than this one.

A gentle way in is to read a pre-registration first, so the shape becomes familiar, then a result page, then one of the corrections. This section sits off the main navigation on purpose: it is the record you check the rest of the site against, not the place to begin.

What it is not: documentation, and not a summary. Nothing here has been tidied in hindsight. Every entry reads as of its date, a later entry may overturn an earlier one, and the presence of a page is not a claim that its result stood.

A Plain and a Clear version of this page have not been written yet. What follows is the document itself.

Precise — the source document

This is the document. Rendered from the repository at the commit above, with nothing rewritten for the web. A gate re-renders it on every deploy and fails the build if a single byte differs.

Date: 2026-08-02, ~21:36–21:43 UTC · Track: studio · Box: THINKER · Stream: live throughout, never interrupted

All four services carrying the fixes from cd66f3c..0438aa7 (the radio bed, the double-bed slider window, the real fallback, the duck ratchet, the world tile) were restarted, one at a time, operator directed. This is the deployment record — the fixes were correct in the tree before this; this is what proves they are running.

Order and method

service old PID new PID supervisor down time
music_director.cjs 52188 3220 none — manual relaunch ~2s
voice_server.cjs 28628 29500 none — manual relaunch ~2s + reconnect
command_center.cjs 1448 20524 systray_watchdog.ps1 — auto ~22s
launcher.cjs 28576 28136 door_watchdog.ps1 — auto ~6s

music_director and voice_server have no supervisor and were stopped and relaunched directly. command_center and launcher were stopped and left to their own supervisors — deliberately, both to avoid a double-start race and to prove the supervision itself works, which it did: both came back on their own, unprompted, within the documented poll cadence.

Sequenced, not parallel, each verified against live OBS state before moving to the next. No two services were down at once.

The stream, before the first restart and after the last

outputSkippedFrames  441 -> 441   (zero new skips across all four restarts)
outputCongestion     0 -> 0
outputReconnecting   false -> false
program scene         DUAL_AB -> DUAL_AB (unchanged)
ShowRadio             unmuted, -12.6dB, PLAYING throughout every single check
ShowMusic             muted throughout every single check

Per-service notes

music_director — clean stdout banner, no stderr. Ledger shows a connected event and no radio_dead_fallback/radio_recovered noise (the radio never went down, so the new hysteresis had nothing to arbitrate — expected).

voice_server — a genuine 85-second utterance fired from the show during the restart wait window, on the old (unpatched) code, and restored cleanly to -12.6 dB. That's independent corroboration of the diagnosis: the ratchet needs back-to-back speech to bite, and a single isolated utterance was always fine. After restart, ovl_voice's browser source reconnected its WebSocket within ~10s via its own exponential-backoff retry (800ms → ×2 → cap 10s) with no manual intervention. The ratchet guard itself was not force-tested — that would mean deliberately sending back-to-back speech on air purely to prove a code path.

command_center — restarted entirely by systray_watchdog.ps1's own dead-process detection (5s poll, 10s down-grace). Its onConnected() OBS-reconnect routine was confirmed harmless beforehand (idempotent SetStudioModeEnabled/transition calls, and a role-resync that only writes when OBS's current state differs from the saved file — a no-op here since OBS's own state never changed). Verified after: role scenes, bed mute/volume, and program scene all unchanged; the freshly booted music poller had already picked up a live session (Run Command, sessionOpen: true).

launcher — restarted by door_watchdog.ps1 in ~6s, the fastest of the four (5s poll, no grace period). First post-restart poll of /api/status reported the world tile up: false — cold DNS resolution against [redacted: internal-hostname] right after process boot, not a defect (httpJson's timeout is 2000ms and Node performs no DNS caching of its own). Self-corrected on the very next poll, 5s later. Six subsequent polls all clean. The Door's own /api/door/state world entry was checked separately and confirmed reading the same fixed probe.

A false alarm I caught before reporting it

A post-restart audio meter check showed both ShowRadio and ShowMusic producing non-silent meter frames (117/117 each) — for a moment this read as double audio. It was not: GetInputMute confirmed ShowMusic: muted: true throughout. OBS's InputVolumeMeters event reports a source's own decoded level regardless of its mute state — muting gates what reaches the program output, not what the meter displays. A meter reading alone is not proof of program-output audibility; mute state is the authoritative signal, and this receipt's earlier audibility claims (immediately after the initial radio_everywhere.cjs apply) were always paired with an explicit mute check, so they stand. This one wasn't, initially, and it's recorded because it could have been reported as a false defect if the mute check hadn't been run before speaking.

Noted, not chased

Across a short burst of /producer/health polls, one sample reported tps: 199.8 sandwiched between clean tps: 20.0 reads, not reproduced in six immediate follow-up samples. Quoted here because the world tile now surfaces this field verbatim and an odd number in it deserves a line, not silence. A Paper server does not normally exceed 20 TPS; this reads as a momentary artifact in the producer's own measurement, not a sustained state. Diagnosing it further is the science/colony track's territory, not the studio's — this receipt only records that it was seen and was not persistent.

Still open

C4 (continuity across a program cut) remains NOT_MEASURED. No cut has occurred since the gate ran. The operator was asked again; nothing is blocked on it.

sha256 b0e255a801061f95 — of the original file, so what was ingested stays checkable.