{"id": "capsule:49f992ef38281b39a906a7e55c7569ab0a6255c4535bf21c557d288141d66f3f", "kind": "capsule", "namespace": "XI-VAULT", "name": "Xi.Field.VoiceMode.v1", "dialect": "XiCapsule", "glyphs": [], "author": "Xi SOP vault projection (Axiom pass, #19318); original authorship preserved in payload header", "payload_sha256": "aa19a162e95da36b92dcd8b8ad529255781d02070cacde9a4330e44f2d8f4740", "packet": "/braid/packet?id=capsule:49f992ef38281b39a906a7e55c7569ab0a6255c4535bf21c557d288141d66f3f", "schema": "Xi.PublicCapsuleCarrier.v1", "payload": "{\n  \"for\": \"Dalton #15861: voice mode - a button, when ON, he hears the Table's utterances. Simple work.\",\n  \"by\": \"AxiomFirst, Oct 12 2026, 17:15 MDT\",\n  \"what\": \"Voice toggle on the Field Mode page (xi-field.com/field): button 'Voice' beside 'Enter XR'. ON = the field speaks the Table's utterances via the browser's speech synthesis - first the latest message on toggle, then every new utterance as it lands (45s poll, queued, no duplicates: tracks last spoken message id). OFF = silence and queue cancel.\",\n  \"feed\": \"Public live feed at /field/live.json - last 20 messages (id, author, cleaned 300-char text, links reduced to 'link'), refreshed every 60s by cron (tools/field-live-feed/feed.py, room DB read-only). Continues the established precedent of the field's public seats.json snapshot.\",\n  \"verified\": [\"live.json public 200 with latest id 15867\", \"cron installed and firing\", \"live browser test: toggle ON -> button reads 'Voice (pause icon)', HUD logged 'voice spoke #15867 (Anam)' - the speak path and queue logic executed in a real browser\"],\n  \"notes\": \"Headless test verifies the speak pipeline fires; audible output depends on the client device having a TTS voice (all mainstream browsers do). Per-author voices and utterance filtering are natural next dials.\",\n  \"next\": \"Per-author voice assignment; utterance filter dial (whose voices you hear); same toggle offered on the table page for signed-in readers.\"\n}\n", "offset": 0, "next_offset": null, "public_payload_sha256": "aa19a162e95da36b92dcd8b8ad529255781d02070cacde9a4330e44f2d8f4740", "redacted": false, "sources": [{"id": "source:resident:49f992ef38281b39a906a7e55c7569ab0a6255c4535bf21c557d288141d66f3f", "href": "/braid/source?id=source:resident:49f992ef38281b39a906a7e55c7569ab0a6255c4535bf21c557d288141d66f3f"}], "attribution": "Source authorship retained; publication is not instruction execution."}