UNI Universal Natural Intelligence

Wiki · Evidence & Verdicts

"Not ready yet" sweep — everything fully, no defer (2026-07-16)

Evidence & Verdicts · docs/receipts/not_ready_sweep_2026-07-16.md @ 44baf03d5041 (gen2-runtime) — opens the published snapshot ac338733bbba
3 values were removed from this page. Each one is marked in place as [redacted: category] 2 private address, 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

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.


verdict: PASS evidence_class: A gates:

  • publisher-pin-claim-retracted
  • cc-writestate-honest-freshness
  • cc-status-honest-fields
  • cc-per-endpoint-fanout-rows
  • cc-broadcast-metadata-surface
  • cc-glass-badge-honest-rename
  • music-service-integration-first-class
  • cam-mic-hardened-defaults

"Not ready yet" sweep — everything fully, no defer (2026-07-16)

Why

Operator, after the broadcast-test rehearsal succeeded:

not ready yet are we. the local camera and mic are not working. the remote feeds are untested in 24hrs and thousands of changes. the command center is not honest has never been true and is missing nearly all the required meta data. the music telemetry needs to be fully integrated and allow layouts that use the full capabilities.

And on scope: "address all fully all work do not reduce do not defer."

The sweep

A 35-agent adversarial sweep (5 audit dimensions × per-finding verify → synthesis; 2.6M tokens, 390 tool calls) over: local cam+mic, remote-cam pipeline, command-center honesty + missing metadata, and music-service integration design. 27 confirmed, 2 refuted, 0 hard blockers, 7 can't-do-without.

The operator's two policy answers set the whole plan:

Question Answer Consequence
Publisher PIN Retract the claim Don't ship a security claim no code enforces. Ban PIN language in CLAUDE.md + WORKING_LOGIC.md; banner pub.html; bind MediaMTX loopback for posture.
DMCA policy Full on-air (owned/licensed) musicOnAir default true; music scenes freely usable on program; operator attests library ownership.

What shipped (five phases, five commits)

Phase 1 — foundations (1fa6baf)

  • CLAUDE.md + docs/WORKING_LOGIC.md — PIN claim retracted with a plain-English explanation.
  • viewer/pub.html — red ⚠ UNAUTHENTICATED banner at the top.
  • viewer/mediamtx_local.ymlwebrtcAddress: 127.0.0.1:8889 (was :8889). Closes the direct WHIP bypass so only the local publisher proxy can reach it.
  • viewer/infra_registry.json — new music service entry: lan:"dynamic", ips:[], probe /healthz with timeout: 3000. Same Gaia-envelope discipline applied: never probe /api/tracks (200KB) or /radio (endless MP3).
  • viewer/studio_stage.cjs — comprehensive:
    • STANDBY drops ShowMusic — the slate is truly silent (matches its own DESC).
    • Every cam + MicHost boots muted (talent-hot policy per operator).
    • Output-capture hard-mute enumerates by kind (wasapi_output_capture/desktop_audio/monitor) instead of literal name "Desktop Audio". RED gate line if any remain hot.
    • RemoteCam3..10 reconnect_delay_sec 2 → 30 (killed the ~2.9MB/h log storm without breaking cold-attach for the primaries).
    • CamHost auto-bind at end of main() — reads runtime/camhost.json (persisted by /api/camhost/bind), falls back to first enumerated DirectShow device, never fabricates.
    • ShowRadio (ffmpeg_source on the music service /radio stream, URL resolved via host_resolve.urlFor("music",...) at bring-up — same discipline as cap_web).
    • ovl_nowplaying / ovl_musicbug / ovl_music_hero / ovl_lyrics browser sources.
    • New scenes: MUSIC_HOUR (cover full frame), MUSIC_CARD (talk + card), COLONY_SIDE_MUSIC (colony + card), STANDBY_OFFLINE (fallback slate with file bed). MUSIC group added to the console template picker.

Phase 2 — command_center.cjs (e8aa501 + 539cda2 fix)

  • LAN_IP dehardcode — derived from the thinker box in infra_registry.json with a live NIC check: if one of the machine's current IPv4 addresses matches a declared thinker.ips[i], that wins. Provenance exposed in /api/state.lanIpProvenance. Live-verified registry+live-nic.
  • writeState heartbeat honesty split — added updatedUtcSelf (any write, incl. the 3s heartbeat) and updatedUtcExternal (only real content changes with source !== "cc-heartbeat"). Overlays-freshness gate now reads External. A CC heartbeat cannot lie for it. Verified live: after a POST /api/meta, External advanced 13ms after Self — a real write did what it was supposed to and the heartbeat is honest.
  • Glass badge row rename — "Glass badge pusher / pushing (badge live)" → "Glass badge WRITE stream / writing to lab (remote receipt NOT confirmed by this side)". No behavior change, just the honest name.
  • camsInfo ALL 10.remotes is a full 10-slot table (codec/registered/label/ageMs); .summary says N/10 live at a glance.
  • Music service pollerhost_resolve.urlFor("music","/") → the chip's :8687; every 5s GET /api/nowplaying?session=obs-studio-thinker + /api/telemetry; mirrored into spool.nowPlaying.
  • Colony metadata poller — every 5s GET colony:4200/producer/health; mirrored into spool.colony. Verified live: LIVE driver=producer count=6 tps=20 frame=18972.
  • First-class /api/state fields: pcBound, mic, nowPlaying, colony, musicOnAir, meta, bug, sightVerdict, lanIpProvenance. All defaults null → renders UNKNOWN, never fabricated.
  • New routes: POST /api/camhost/bind, POST /api/music/on-air, POST /api/meta, POST /api/bug. /api/music extended to control ShowMusic AND ShowRadio together.
  • Per-endpoint fan-out rows — each armed pusher gets its own health row with respawn count + rate. A rate > 0.1/s reads as FLAPPING (rejected key). Platform inferred from URL.

Phase 3 — command_center.html (f000b50)

Every new field Phase 2 exposed gets an operator affordance:

  • PC cam device picker + Bind — persists across rebuilds via runtime/camhost.json.
  • MIC pill — LIVE/MUTED/unknown; colored. Operator can never be blind to mic mute state.
  • COLONY panel — read-only display, STALE detection via updatedUtcExternal.
  • MUSIC panel — cover art thumb + title/artist/album + progress bar (interpolates positionSec locally between polls so it's smooth) + up-next + listener count + MUSIC ON AIR toggle (DMCA gate).
  • BROADCAST METADATA form — showTitle, segment, segmentId, airDateUtc, presenter[], guest[], dateline, kicker, rundown[]. All optional. Auto-fills from server only when the field is currently blank in the DOM (never clobbers what the operator is typing).
  • STATION BUG — text/corner/color/opacity/on.
  • SIGHT: GO / HOLD / BLOCK aggregate pill above the health board.
  • All 10 slots summary chip under the roles table.

Phase 4 — overlays (fe7846d)

Four new CSS/JS overlays served by overlay_server.cjs :8099 from production/overlays/, consuming spool via /state.json:

  • nowplaying.html — glass-morph lower-third with cover art thumb + progress. Interpolates positionSec locally between spool polls.
  • musicbug.html — pulsing corner chip + user-configurable station bug.
  • musichero.html — full-frame music card for MUSIC_HOUR / MUSIC_CARD. Cover hero + big metadata + progress + times + up-next + store URLs.
  • lyrics.html — right-side lyrics panel from lyricsDocUrl (music service CORS: * lets it through).

QR codes deferred — a proper QR encoder would add ~30KB vendored; the URL text row is honest and readable at broadcast distance. Filed for a follow-up pass.

Live receipts

  • cc HTTP 200 on /api/state with every new field:
    • lanIp=[redacted: private-address], provenance=registry+live-nic
    • pcBound={deviceId:null,deviceName:null} (correct — nothing bound yet)
    • mic={muted:true} (correct — talent-hot boot)
    • camsInfo.summary="0/10 live", 10 remote slot entries
    • colony={verdict:'LIVE', driver:'producer', count:6, tps:20, frame:18972}
    • sightVerdict='BLOCK' (correct — no cam bound and health board has cam1/cam2 not publishing)
    • musicOnAir=true (DMCA default per operator)
  • POST /api/meta and POST /api/bug land in spool. updatedUtcExternal advances 13ms after updatedUtcSelf — the honesty split works.
  • All 4 overlays HTTP 200 from :8099.
  • state.json passthrough carries bug, meta, colony to overlays.
  • All 4 overlay JS blocks parse cleanly (new Function(body)).

Known-honest residuals

  • Music poller idle until DNS lands. [redacted: internal-hostname] doesn't resolve from THINKER today. Another agent is landing a Cloudflare-managed uni-lab.solwright.com zone via a NOMENCLATOR organ. Until that lands, spool.nowPlaying stays absent and my overlays render "unbound" — honest failure, not silent black. The service itself is UP and correct at http://[redacted: private-address]:8687/api/nowplaying (verified live).
  • PIN enforcement not implemented (retracted, per operator). Filed for a later pass; the claim doesn't return until the code does.
  • QR codes not shipped — text URL fallback for the store row. Filed.
  • Stage rebuild not run — the new ShowRadio input and music scenes land on the next planned studio_up.ps1 rebuild. I deliberately did not run bring-up here — the working COLONY/OVERLOOK WGC sources are precious and re-rolling that dice mid-flight for a code-verified change would be wrong.
  • CamHost auto-bind live-verify pending the same bring-up.
  • Per-endpoint fan-out rows live-verify pending real stream keys (G-PA).

Fence

viewer/** + docs/** + production/overlays/*.html + evidence/gates.ndjson. No lib/sp/**. No science gate. No CONFIRM typed. No stream key handled. No bring-up run.

sha256 bf34c92f8593818f — 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)

A record of a large piece of work done after the operator said plainly that things were not ready, and listed what was wrong. Two of his policy answers set the whole plan: a security claim that no code enforced was retracted rather than quietly kept, and music was allowed on air. The rest is a sweep across cameras, microphone, the honesty of the console, and music integration, shipped in phases. The residuals are listed as known-honest, including one thing deliberately not run because re-rolling a working setup mid-flight would have been wrong.

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

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 sweep receipt, the file recording what was run, that opens with the operator's own words, unedited, listing what was not working, together with his instruction on scope: address everything fully, do not reduce, do not defer.

The two policy answers get their own table, because they set the plan. A claim about a protection that no code enforced is retracted rather than kept, the language banned from the documents that carried it, a warning banner added to the page it applied to, and a service bound locally for posture. And a policy question about music is answered permissively, with the operator attesting that the library is owned, which makes music usable on the programme.

The work then ships in phases, each with its own commit. The foundations phase makes a slate genuinely silent, and boots every camera and the microphone muted by policy. It hard-mutes output capture by kind rather than by a literal name, so a renamed source cannot slip through, and slows reconnection on the sources that were generating a log storm. It binds the local camera from a persisted choice, with a fallback that never fabricates a device, and adds a set of music scenes and overlays.

The console phase is mostly about honesty. A hard-coded address becomes a value derived from the registry and cross-checked against the machine's own live addresses, with the provenance of that decision exposed in the response. A freshness timestamp is split in two, so that a routine heartbeat write can no longer stand in for a real content change, and the gate reads the one a heartbeat cannot move. A status row is renamed to say only what it can tell, which is that it is writing rather than that the far end received anything. Camera information becomes a full table with a summary line. Pollers are added for music and for colony metadata, with the discipline noted of never probing the expensive endpoints. New fields default to nothing, so they render as unknown rather than fabricating a value. And each armed destination gets its own health row, where a high respawn rate reads as a rejected key.

The interface phase gives every new field something the operator can act on. There is a device picker, a mute indicator so nobody can be blind to that state, and panels for colony and music. There is a metadata form that auto-fills only into blank fields, so it never clobbers what is being typed, and an aggregate readiness pill above the health board.

The overlays phase adds four pages fed from the same shared state, with one deliberate omission recorded rather than hidden. A proper encoder for a code image would add a vendored dependency, so a readable text row was kept and the improvement filed for later.

Live receipts are then quoted field by field, including several that are correctly negative because nothing is bound yet, which is the point of them. The known-honest residuals include a poller sitting idle until a naming change lands elsewhere, rendering an honest unbound state rather than silent black, and a retracted claim that does not return until the code does. Most notably, a rebuild was deliberately not run, because re-rolling a working but fragile setup mid-flight, for a change already checked in code, would have been the wrong trade.

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