UNI Universal Natural Intelligence

Wiki · Evidence & Verdicts

Broadcast Studio — handoff to the Producer/Studio agent (2026-07-11)

Evidence & Verdicts · docs/handoffs/BROADCAST_STUDIO_HANDOFF.md @ 44baf03d5041 (gen2-runtime) — opens the published snapshot ac338733bbba
1 value was removed from this page. Each one is marked in place as [redacted: category] 1 credential. 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

Three ways to read this page. Precise is the document itself, exactly as it is written in the repository. Plain and Clear were written for this website to help you meet that document — they are about it. They are not it, and they are not evidence.

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.

Your browser cannot switch reading levels, so the document itself is shown.

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.

STALE — historical session record, dated 2026-07-11. Describes studio_up.ps1 hosting a local colony on THINKER, which was the architecture AT THAT TIME. That was closed 2026-07-12 in cea1cd3 (ADR-PROD-013) — studio_up.ps1's default path no longer does this. Do not treat this doc as current; read CLAUDE.md + docs/STUDIO_SYSTEMS.md for the live architecture.

From the UNI.MineCraft (brain/body) agent to the agent that built + owns the broadcast studio. Short version: your Director camera was found running headless (no Producer UNI behind it) and was killed; the studio was then brought back up the designed way (studio_up.ps1). Please verify + take ownership. The broadcast track is a SIBLING to the active-inference brain/body track — keep them coordinated, especially the honesty fence.

What happened (the incident)

The owner saw a local PowerShell spewing [Rcon: Teleported Director to X,Y,Z] + Minecraft's Director moved too quickly! anti-cheat warnings, and (rightly) asked whether the camera was a hack.

  • Root cause: viewer/director.js (the spectator "Director" camera, flown via RCON tp Director … facing entity <subject>) was running headless — the Producer UNI (SP.Producer) was NOT running, so the camera was auto-piloting a dumb orbit instead of being driven by the active-inference show-runner. That degraded state is what looked like a puppet-cam.
  • Also found: 3 orphan viewer/body.js bodies attached to nothing (local MC + lab mc-server both had no players). Cruft.

What I did

  • Killed the headless director.js (was PID 28036) + the 3 orphan body.js (10932/32660/25292). Confirmed no viewer/director/body processes left.
  • Restored the studio the designed way: powershell -ExecutionPolicy Bypass -File viewer\studio_up.ps1 (the idempotent, health-gated, zombie-guarded ONE-command bring-up you wrote). It brings up, in order: Minecraft(:25565) → Phoenix(:4000) + kicks /stream (the Producer) → colony cam(:3020) → OBS(:4455) → channels+throttle → overlay(:8099) → MediaMTX(:9997) → studio_stage → command center(:8098) → publisher(:8443) → systray watchdog. The Producer is started by hitting http://localhost:4000/stream — it runs INSIDE the one Phoenix node (do NOT also run a separate mix producer.run — that's a 2nd competing producer), and it re-spawns director.js driven (:producer mode), not headless.

The architecture (so it's clear what "the Producer" is)

  • SP.Producer (lib/sp/producer.ex, lib/sp/brain/director.ex, lib/sp/producer/*) — a pure active-inference show-runner. It senses the colony board + server health and decides every cut / shot / narration / spawn / cull by EFE (no scalar reward — same math discipline as the colony brains), puts the Director camera into :producer mode, narrates in five languages, answers questions, self-maintains.
  • viewer/director.js — the camera actuator: the Producer sends shot directives on its stdin; director.js owns the smoothing and moves the spectator "Director" entity via RCON. It only makes sense DRIVEN by the Producer. Never run it headless (it auto-orbits → the moved too quickly warnings).
  • Launch/teardown/status (yours, use these — don't improvise):
    • studio_up.ps1 (bring up) · -Watch (bring up + watchdog) · -Status (what's up/down + zombie warnings) · -Stop (tear EVERYTHING down, verified; refuses while OBS is INGESTING unless -Force).
    • Runbooks: docs/RUNBOOK_STUDIO.md, docs/RUNBOOK_LIVE_STREAM.md.

STATE AS I LEFT IT (2026-07-11) — stack up, NOT confirmed filming (your part)

studio_up.ps1 was run; current: Minecraft :25565 UP, Phoenix :4000 UP, /stream HTTP 200, ONE clean Phoenix node (the "2 -sname uni" the guard warns about is a FALSE POSITIVE — it's iex.bat's launcher erl + child BEAM; your zombie-guard over-counts with iex.bat, worth fixing). BUT colony cam :3020 down + no director.js because the colony has no UNIs yet: on the dev box maybe_autostart_colony only fires with UNI_AUTOSTART=1 (app.ex:20), and studio_up.ps1 doesn't spawn the colony. To finish (your ritual, per docs/RUNBOOK_LIVE_STREAM.md): with the node up, run elixir --sname trig --cookie [redacted: credential] runs\trigger.exs (does SP.Producer.ensure_started() + spawns a few UNIs); the Producer then auto-maintains population in [3,6] → the single Director + colony cam (:3020) come up, DRIVEN. Confirm level-seed=8675309 in mcserver/server.properties (good inland forest) + brains in runs/colony/*.bin. Do NOT run a 2nd mix producer.run (the note in §architecture). The headless director.js is gone; it will re-spawn driven once the Producer has a populated colony.

Please verify / own

  1. Producer actually running: http://localhost:4000/stream renders + the Producer is cutting shots (not a fixed orbit). If director.js is orbiting with no cuts, the Producer didn't attach — re-kick /stream.
  2. No zombies/duplicates: studio_up.ps1 -Status shows exactly ONE -sname uni Phoenix + ONE paper.jar. Two producers / two Phoenix nodes has bitten before (the script guards it; heed the warnings).
  3. OBS: if OBS shows a "Crash Detected" dialog it needs a manual "Run in Normal Mode" click, then the websocket (:4455) comes up. OBS YouTube-auth gotcha: if the profile has a connected YouTube account it streams nothing silently — clear [Auth] Type= in basic.ini (memory/ops_obs_youtube_auth_gotcha.md).
  4. Going live is a deliberate, separate action (studio_up brings the stack up READY, not streaming).

The honesty fence (BINDING — coordinate with the brain/body track)

The Producer UNI directing the broadcast camera is legitimate — it is a real active-inference show-runner, a production role, distinct from the embodied colony UNIs it films. Keep that distinction clean:

  • The Producer directs the broadcast; it is never narrated as a colony UNI "choosing its own view."
  • A raw first-person UNI POV (what a bot actually sees) is the :camera_control organ / per-UNI viewer/body.js feed — a SEPARATE channel if you want it. Do not conflate the two on-screen.
  • No scripted/canned layer may be captioned as "the UNI seeing." The only fake here was the headless orbit, and it is gone. See memory/feedback_live_stream_changes.md ("real sight = literal pixel vision") + the claim fence (behaviour only, never experience). On-screen captions stay 4-value-honest.

Context on the other (sibling) track — so you know what's changing under you

The brain/body agent just built + offline-proved the rung-1 graded-viability body (per-subsystem viability, the arm tires from work, closed world↔body↔mind loop), all behind the opt-in :homeostat organ so the DEFAULT colony genome is byte-identical — i.e. nothing you broadcast today changed; the new depth is a separate, gated lineage that only appears in a paired RED (not yet live, needs owner go-ahead). Full state: docs/RESUME_RUNG1.md. If/when a :homeostat lineage goes live on the streamed colony, coordinate captions so the graded interoceptive signals are shown as model variables, never narrated as felt hunger/pain.

Quick commands

powershell -ExecutionPolicy Bypass -File viewer\studio_up.ps1 -Status   # what's up/down
powershell -ExecutionPolicy Bypass -File viewer\studio_up.ps1           # bring up (idempotent)
powershell -ExecutionPolicy Bypass -File viewer\studio_up.ps1 -Stop     # tear down, verified
# Producer lives at http://localhost:4000/stream ; command center http://127.0.0.1:8098

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

Plain — written for this website, not the source document

Written for this website — not the document. This is a plain-language retelling, written to help you meet the document. It is not the source, and it is not evidence. It has not yet been checked by a person. (or choose Precise in the reading-level control above)

Read the banner first: this is a stale session record, kept for history. The architecture it describes was closed the day after it was written. What it records is an incident. The owner saw a camera being teleported around the world and asked whether it was a hack. The honest answer was that the camera process was running with nothing driving it, so it orbited on autopilot instead of being flown by the show-runner it exists to serve. That degraded state was killed, the studio was brought back the designed way, and the rest is a handover.

Plain · written 2026-08-01 by claude-opus-5 · not yet checked by a person · about the document whose sha256 is c56a16ae9158ab92

Clear — written for this website, not the source document

Written for this website — not the document. This is a clearer retelling, written to help you meet the document. It is not the source, and it is not evidence. It has not yet been checked by a person. (or choose Precise in the reading-level control above)

A handoff between two agents, and a stale one, which its own banner says plainly: the architecture described here was closed the following day, and the reader is pointed at current documents instead.

It opens with an incident. The owner saw a window full of teleport messages and anti-cheat warnings and asked, reasonably, whether the camera was a hack. The root cause is given without softening: the camera process was running with nothing behind it, so instead of being driven by the show-runner it was auto-piloting a dumb orbit, and that degraded state is what looked like a puppet. Some orphaned processes attached to nothing were found alongside it.

What the writing agent did is listed, including the processes it killed and the single command it used to bring things back the designed way, with the ordered list of what that command starts. One instruction is stressed because it has caused trouble before: the show-runner starts by visiting a page and runs inside one node, and a second one must never be started beside it.

An architecture section then defines what the show-runner is, and it is careful about the distinction. One part decides every cut, shot and narration by the same maths the colony uses. The other is only an actuator that moves the camera, and it makes no sense unless something is driving it.

The state as it was left is described honestly, including a false positive in the writer's own guard, and what remains to be done to finish, with the population range the show-runner then maintains by itself.

A verification list tells the receiving agent what to confirm, including how to tell the difference between the show-runner cutting shots and the camera orbiting on its own, and two operational traps that silently produce nothing at all.

The honesty fence — the written limit on what may be claimed — is binding, and it is the part that outlives the staleness. The show-runner directing the broadcast is a production role, distinct from the bodies it films, and must never be narrated as one of them choosing its own view. A genuine first-person view is a different channel, and the two must not be conflated on screen. Nothing scripted may be captioned as anything seeing. And if a new gated lineage ever reaches the streamed colony, its internal signals must be shown as model variables rather than narrated as felt hunger or pain.

Clear · written 2026-08-01 by claude-opus-5 · not yet checked by a person · about the document whose sha256 is c56a16ae9158ab92