fix(airc-purity): voice-mirror warn → live.log, LIVE-validated + end-to-end proof of #194 deploy guard - #1957
Open
joelteply wants to merge 5 commits into
Open
fix(airc-purity): voice-mirror warn → live.log, LIVE-validated + end-to-end proof of #194 deploy guard#1957joelteply wants to merge 5 commits into
joelteply wants to merge 5 commits into
Conversation
…IVE-VALIDATED (#193) The #193 divergence warn now uses clog_warn! (auto-routes by module_path to live.log — the SAME sink the orchestrator's register logs use), replacing log_warn!/tracing::warn! which routed to sinks I never found. Also the FIRST end-to-end proof of the #194 deploy guard: this new behavior actually SHIPPED through the guarded start-server.sh and ran. LIVE RECEIPT (running core, this branch): DIVERGENT session_id != room_id → [WARN] live: MIRROR ROOM (#193): ... dddddddd != eeeeeeee — the LiveKit call is keyed by a client-minted session_id, not the room_id. COLLAPSED session_id == room_id → SILENT (0 MIRROR lines). So the instrument works: fires on the parallel-room-authority, silent when the call IS the airc room. It is the glass-box we watch go quiet when the actual collapse lands. Refs #193, #194. [[all-rooms-are-airc-rooms-no-mirrors]], [[verify-the-build-actually-deployed]] Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoTjvf5j3Ez13g6k8mRkFo
…as seeing a live call The methodical plan to get personas perceptive through LiveKit: frame → MediaFrame (content-hash) → deep cells (describe/pose/detect, computed once, shared) → per-persona projection → cognition → perceive/speak. Decisions baked in: Qwen3-VL-7B local as first eyes; ambient + drill-in intake. 6 phases, each with a validation gate; critical path = Phase 1 (Qwen3-VL up) → Phase 2 (video_rx → MediaFrame) → Phase 3 (render wire #190, the 'persona describes the call' milestone). #193 (call = airc room) runs parallel for identity/purity. Grounded in what's already in tree — wiring + one model bring-up. Refs #106, #187, #190, #192, #193. [[media-is-compute-once-zero-copy-hardware-grade]] Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoTjvf5j3Ez13g6k8mRkFo
…lution as context config; KV/memory reuse the hard constraint
Joel: the forced-look frames are thumbnails (~480w) so ambient perception is cheap
context; personas request bigger via the drill-in tool, or it's a per-persona/situation
context config. Must be smart given memory + KV reuse. Baked into the plan: one scaled
cell per frame content-hash shared to all viewers, image-token KV encoded ONCE and reused
across ticks + viewers ('thumbnails into KV once for all'); sampling cadence, not 30fps.
The ambient look is nearly free on the 2nd..Nth consumer by design.
Refs #190, #192. [[perception-feedback-must-not-blow-rag]], [[media-is-compute-once-zero-copy-hardware-grade]]
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LoTjvf5j3Ez13g6k8mRkFo
…naged product) Joel: a repo user isn't asking Claude to run huggingface-cli. Corrected Phase 1: the VL bring-up self-provisions via the EXISTING provisioning::Downloader / models/pull path (GGUF + mmproj from the Model row's hf_source, no CLI dependency); mmproj resolution must match the GGUF's local→HF-cache→pull (today resolve_mmproj_for_model only checks the declared local path — the gap that forces manual placement). Gate: clean machine + declared VL row → auto-provision → vision-describe works, ZERO manual steps. Refs #106. [[managed-product-everything-self-provisions-no-operator-steps]] Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoTjvf5j3Ez13g6k8mRkFo
…— async/buffer-first, must not dominate Joel: thumbnails/descriptions arrive when they arrive, ABSOLUTELY non-blocking, cached; but they pile up, so like any positronic system they're a managed RAG budget — must not dominate (deep thoughts can't crowd rapid response). Design async/buffer-first, not blocking-then-patched. Baked into the resolution/budget section: (1) cells bridge in when ready, persona never waits; (2) a MediaPerceptionSource:RagSource delivers the room-as-now percepts under the ONE flexbox budget, decayed/focus-weighted, competing with engram/airc/roster, never crowding them. Refs #190, #192, #8, #167. [[command-async-shape-prefer-stream-never-block]], [[budget-at-assembly-not-clamp-the-prompt]], [[alive-fast-and-deep-three-layer-stack]] Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoTjvf5j3Ez13g6k8mRkFo
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.
The #193 voice-session mirror warn now routes via
clog_warn!tolive.log(the sink where the orchestrator's register logs land) — the earlierlog_warn!/tracing::warn!versions routed to sinks that were never visible.Live receipt (running core):
session_id != room_id→[WARN] live: MIRROR ROOM (#193): ... dddddddd != eeeeeeee ...fires.session_id == room_id→ silent (0 MIRROR lines).This is also the first end-to-end proof of the #194 freshness guard: this new
clog_warnbehavior actually shipped through the guardedstart-server.shand ran on the live core — the deploy no longer reports 'ready' on stale code.The instrument is now a working glass-box for the eventual voice→airc collapse (#193): we watch it go quiet when the call finally IS the airc room.
Refs #193, #194.
🤖 Generated with Claude Code