[{"data":1,"prerenderedAt":2967},["ShallowReactive",2],{"cycle-doc-qnative-c3-guide\u002F03-live-activity.md":3},{"cycle":4,"project":7,"path":10,"title":11,"toc":12,"ast":20},{"id":5,"title":6},"c3","Developer Mode",{"id":8,"label":9},"qnative","Qnative (provisional)","guide\u002F03-live-activity.md","Live Activity: connection, data, pipeline, states, asks",[13,14,15,16,17,18,19],"1. How the app reaches a sensor","2. The data","3. The pipeline","4. The states (what the person sees; drawn on Live Activity since Phase 3)","5. What the app does not need","6. What is shown, and what is masked (built in Phase 3: `stream::mask`)","7. Asks of the sensor",{"type":21,"children":22},"root",[23,128,152,158,165,170,290,296,301,314,366,380,471,477,691,696,702,735,745,925,931,1458,1477,1483,1500,1506,1727,1733,1784,1790,1981,1986,1991,2001,2097,2105,2218,2223,2403,2408,2413,2520,2533,2567,2572,2639,2652,2670,2675,2680,2950,2962],{"type":24,"tag":25,"props":26,"children":27},"element","p",{},[28,35,37,44,46,52,54,60,61,67,69,75,76,82,83,89,90,96,98,104,105,111,113,119,121,126],{"type":24,"tag":29,"props":30,"children":31},"strong",{},[32],{"type":33,"value":34},"text","Standing:",{"type":33,"value":36}," Phases 1–3 are built (2026-11-11): the connection, the data model, the ladder and Dev › Source, the stream core held to qdash by test vectors, and the page, Dev › Live Activity, with its seven improvements. The connection is ",{"type":24,"tag":38,"props":39,"children":41},"code",{"className":40},[],[42],{"type":33,"value":43},"crates\u002Fnozzle",{"type":33,"value":45}," (",{"type":24,"tag":38,"props":47,"children":49},{"className":48},[],[50],{"type":33,"value":51},"sse.rs",{"type":33,"value":53},", ",{"type":24,"tag":38,"props":55,"children":57},{"className":56},[],[58],{"type":33,"value":59},"stream.rs",{"type":33,"value":53},{"type":24,"tag":38,"props":62,"children":64},{"className":63},[],[65],{"type":33,"value":66},"scenario.rs",{"type":33,"value":68},"). The data model is ",{"type":24,"tag":38,"props":70,"children":72},{"className":71},[],[73],{"type":33,"value":74},"crates\u002Ftypes",{"type":33,"value":45},{"type":24,"tag":38,"props":77,"children":79},{"className":78},[],[80],{"type":33,"value":81},"live.rs",{"type":33,"value":53},{"type":24,"tag":38,"props":84,"children":86},{"className":85},[],[87],{"type":33,"value":88},"events.rs",{"type":33,"value":53},{"type":24,"tag":38,"props":91,"children":93},{"className":92},[],[94],{"type":33,"value":95},"monitor.rs",{"type":33,"value":97},"). The stream core is ",{"type":24,"tag":38,"props":99,"children":101},{"className":100},[],[102],{"type":33,"value":103},"crates\u002Fstream",{"type":33,"value":45},{"type":24,"tag":38,"props":106,"children":108},{"className":107},[],[109],{"type":33,"value":110},"ingest.rs",{"type":33,"value":112},"). Phase 2 adds the ladder on the Sensor page and the doctor; Phase 3 builds the page. Each section says which parts are built. Facts about qcontrol are read from ",{"type":24,"tag":38,"props":114,"children":116},{"className":115},[],[117],{"type":33,"value":118},"origin\u002Fmain",{"type":33,"value":120}," 9e6cd55a0 (2026-11-10) and name the file; anything guessed is marked ",{"type":24,"tag":29,"props":122,"children":123},{},[124],{"type":33,"value":125},"guess",{"type":33,"value":127},".",{"type":24,"tag":25,"props":129,"children":130},{},[131,136,138,143,145,150],{"type":24,"tag":29,"props":132,"children":133},{},[134],{"type":33,"value":135},"Live Activity",{"type":33,"value":137}," is the firehose: every event the sensor sends, raw, with filters, a tally and the payload. It sits in the Dev group. ",{"type":24,"tag":29,"props":139,"children":140},{},[141],{"type":33,"value":142},"Events",{"type":33,"value":144}," reads the same stream and shows it as activities: a turn, a tool call with its decision and result, a finding. Events is an ordinary page that everyone has. One stream, two altitudes. (Not to be confused with ",{"type":24,"tag":29,"props":146,"children":147},{},[148],{"type":33,"value":149},"Activity",{"type":33,"value":151}," under This machine, c5's sessions over time.)",{"type":24,"tag":153,"props":154,"children":156},"h2",{"id":155},"_1-how-the-app-reaches-a-sensor",[157],{"type":33,"value":13},{"type":24,"tag":159,"props":160,"children":162},"h3",{"id":161},"this-machine-the-default",[163],{"type":33,"value":164},"This machine (the default)",{"type":24,"tag":25,"props":166,"children":167},{},[168],{"type":33,"value":169},"The app reads one file, then speaks HTTP over loopback.",{"type":24,"tag":171,"props":172,"children":173},"ol",{},[174,266],{"type":24,"tag":175,"props":176,"children":177},"li",{},[178,183,185,191,193,199,201],{"type":24,"tag":29,"props":179,"children":180},{},[181],{"type":33,"value":182},"The lock file.",{"type":33,"value":184}," ",{"type":24,"tag":38,"props":186,"children":188},{"className":187},[],[189],{"type":33,"value":190},"\u003Cdata dir>\u002Fdash\u002Fqdash.sock.lock",{"type":33,"value":192}," holds two lines: the dashboard's pid, then its URL (read: ",{"type":24,"tag":38,"props":194,"children":196},{"className":195},[],[197],{"type":33,"value":198},"cli\u002Fsrc\u002Fcommands\u002Fmonitor\u002Fui\u002Flock.rs:26-30, 84-90",{"type":33,"value":200},"). Read the URL rather than assuming port 7878; the dashboard falls back to an ephemeral port when 7878 is taken.\n",{"type":24,"tag":202,"props":203,"children":204},"ul",{},[205,234,253],{"type":24,"tag":175,"props":206,"children":207},{},[208,210,216,218,224,226,232],{"type":33,"value":209},"The data dir on macOS is ",{"type":24,"tag":38,"props":211,"children":213},{"className":212},[],[214],{"type":33,"value":215},"~\u002FLibrary\u002FApplication Support\u002Fcom.qpoint.qcontrol",{"type":33,"value":217},"; on Linux, ",{"type":24,"tag":38,"props":219,"children":221},{"className":220},[],[222],{"type":33,"value":223},"~\u002F.local\u002Fshare\u002Fqcontrol",{"type":33,"value":225}," (read: ",{"type":24,"tag":38,"props":227,"children":229},{"className":228},[],[230],{"type":33,"value":231},"crates\u002Fqconfig\u002Fsrc\u002Flib.rs",{"type":33,"value":233},").",{"type":24,"tag":175,"props":235,"children":236},{},[237,243,245,251],{"type":24,"tag":38,"props":238,"children":240},{"className":239},[],[241],{"type":33,"value":242},"QCONTROL_DATA_DIR",{"type":33,"value":244}," moves the data dir, and ",{"type":24,"tag":38,"props":246,"children":248},{"className":247},[],[249],{"type":33,"value":250},"QCONTROL_DASH_SOCKET_PATH",{"type":33,"value":252}," moves the socket. The lock file sits beside the socket.",{"type":24,"tag":175,"props":254,"children":255},{},[256,258,264],{"type":33,"value":257},"Phase 2 fixed the app's copy of the rule on macOS. It had looked in ",{"type":24,"tag":38,"props":259,"children":261},{"className":260},[],[262],{"type":33,"value":263},"…\u002FApplication Support\u002Fqcontrol",{"type":33,"value":265},". Windows still differs; see page 2.",{"type":24,"tag":175,"props":267,"children":268},{},[269,274,275,281,283,289],{"type":24,"tag":29,"props":270,"children":271},{},[272],{"type":33,"value":273},"The stream.",{"type":33,"value":184},{"type":24,"tag":38,"props":276,"children":278},{"className":277},[],[279],{"type":33,"value":280},"GET \u002Fapi\u002Fevents\u002Fstream",{"type":33,"value":282}," on that URL (read: ",{"type":24,"tag":38,"props":284,"children":286},{"className":285},[],[287],{"type":33,"value":288},"crates\u002Fqdash\u002Fsrc\u002Fweb.rs:62, 295-317",{"type":33,"value":233},{"type":24,"tag":159,"props":291,"children":293},{"id":292},"at-an-address-a-linux-box-a-vm-a-container",[294],{"type":33,"value":295},"At an address (a Linux box, a VM, a container)",{"type":24,"tag":25,"props":297,"children":298},{},[299],{"type":33,"value":300},"The sensor answers only on loopback, and it has no login. So an address means the near end of an SSH tunnel, never a port opened to the network:",{"type":24,"tag":302,"props":303,"children":309},"pre",{"className":304,"code":305,"language":306,"meta":307,"style":308},"language-bash","ssh -N -L 7878:127.0.0.1:\u003Cthe sensor's port> \u003Chost>\n","bash","","undefined",[310],{"type":24,"tag":38,"props":311,"children":312},{"__ignoreMap":307},[313],{"type":33,"value":305},{"type":24,"tag":25,"props":315,"children":316},{},[317,319,325,327,333,335,341,342,348,350,356,358,364],{"type":33,"value":318},"Then attach to ",{"type":24,"tag":38,"props":320,"children":322},{"className":321},[],[323],{"type":33,"value":324},"http:\u002F\u002F127.0.0.1:7878",{"type":33,"value":326},". The sensor's port is the second line of the lock file on that host. The dashboard's host guard refuses any request whose ",{"type":24,"tag":38,"props":328,"children":330},{"className":329},[],[331],{"type":33,"value":332},"Host",{"type":33,"value":334}," is not ",{"type":24,"tag":38,"props":336,"children":338},{"className":337},[],[339],{"type":33,"value":340},"localhost",{"type":33,"value":53},{"type":24,"tag":38,"props":343,"children":345},{"className":344},[],[346],{"type":33,"value":347},"127.0.0.1",{"type":33,"value":349}," or ",{"type":24,"tag":38,"props":351,"children":353},{"className":352},[],[354],{"type":33,"value":355},"[::1]",{"type":33,"value":357}," with a 403 (read: ",{"type":24,"tag":38,"props":359,"children":361},{"className":360},[],[362],{"type":33,"value":363},"web.rs:159-200",{"type":33,"value":365},"). A tunnel passes that guard. An opened port does not, and the app says so.",{"type":24,"tag":159,"props":367,"children":369},{"id":368},"what-the-app-sends-and-does-built-nozzlestreamconnect",[370,372,378],{"type":33,"value":371},"What the app sends and does (built: ",{"type":24,"tag":38,"props":373,"children":375},{"className":374},[],[376],{"type":33,"value":377},"nozzle::stream::connect",{"type":33,"value":379},")",{"type":24,"tag":202,"props":381,"children":382},{},[383,410,451,461],{"type":24,"tag":175,"props":384,"children":385},{},[386,392,394,400,402,408],{"type":24,"tag":38,"props":387,"children":389},{"className":388},[],[390],{"type":33,"value":391},"GET \u002Fapi\u002Fevents\u002Fstream HTTP\u002F1.1",{"type":33,"value":393}," with ",{"type":24,"tag":38,"props":395,"children":397},{"className":396},[],[398],{"type":33,"value":399},"Host: \u003Cthe address's host:port>",{"type":33,"value":401}," and ",{"type":24,"tag":38,"props":403,"children":405},{"className":404},[],[406],{"type":33,"value":407},"Accept: text\u002Fevent-stream",{"type":33,"value":409},". HTTP\u002F1.1 is spoken directly over the socket, so the read timeout, the Host header and the refusal bodies are the app's to handle. The body is decoded from chunked transfer encoding.",{"type":24,"tag":175,"props":411,"children":412},{},[413,418,420,426,428,434,436,441,443,449],{"type":24,"tag":29,"props":414,"children":415},{},[416],{"type":33,"value":417},"Frames",{"type":33,"value":419}," are parsed to the WHATWG event-stream rules (",{"type":24,"tag":38,"props":421,"children":423},{"className":422},[],[424],{"type":33,"value":425},"nozzle::sse",{"type":33,"value":427},"): CR, LF or CR LF line ends, including a CR LF split across reads; ",{"type":24,"tag":38,"props":429,"children":431},{"className":430},[],[432],{"type":33,"value":433},"data:",{"type":33,"value":435}," lines joined; a comment is a keep-alive. qdash sends one JSON record per ",{"type":24,"tag":38,"props":437,"children":439},{"className":438},[],[440],{"type":33,"value":433},{"type":33,"value":442}," line and a ",{"type":24,"tag":38,"props":444,"children":446},{"className":445},[],[447],{"type":33,"value":448},":",{"type":33,"value":450}," comment every 15 s.",{"type":24,"tag":175,"props":452,"children":453},{},[454,459],{"type":24,"tag":29,"props":455,"children":456},{},[457],{"type":33,"value":458},"Reconnecting",{"type":33,"value":460}," follows the web viewer's schedule: 0.5, 1, 2, 4, 8 s, then every 8 s for ever. A stream that was open starts the schedule over. Each attempt says why the last one ended.",{"type":24,"tag":175,"props":462,"children":463},{},[464,469],{"type":24,"tag":29,"props":465,"children":466},{},[467],{"type":33,"value":468},"Leaving the page closes the connection.",{"type":33,"value":470}," The reader wakes every 250 ms. When the page has dropped its subscription, the reader closes the socket and its thread ends (tested: closed within one tick). A feed exists only while its page is open.",{"type":24,"tag":159,"props":472,"children":474},{"id":473},"the-ladder-each-rung-is-a-state-the-sensor-page-draws",[475],{"type":33,"value":476},"The ladder (each rung is a state the Sensor page draws)",{"type":24,"tag":478,"props":479,"children":480},"table",{},[481,510],{"type":24,"tag":482,"props":483,"children":484},"thead",{},[485],{"type":24,"tag":486,"props":487,"children":488},"tr",{},[489,495,500,505],{"type":24,"tag":490,"props":491,"children":492},"th",{},[493],{"type":33,"value":494},"Rung",{"type":24,"tag":490,"props":496,"children":497},{},[498],{"type":33,"value":499},"The check",{"type":24,"tag":490,"props":501,"children":502},{},[503],{"type":33,"value":504},"Says",{"type":24,"tag":490,"props":506,"children":507},{},[508],{"type":33,"value":509},"Built",{"type":24,"tag":511,"props":512,"children":513},"tbody",{},[514,552,575,603,632,661],{"type":24,"tag":486,"props":515,"children":516},{},[517,523,528,533],{"type":24,"tag":518,"props":519,"children":520},"td",{},[521],{"type":33,"value":522},"Not found",{"type":24,"tag":518,"props":524,"children":525},{},[526],{"type":33,"value":527},"no lock file, or a stale one (this machine only)",{"type":24,"tag":518,"props":529,"children":530},{},[531],{"type":33,"value":532},"no sensor on this machine",{"type":24,"tag":518,"props":534,"children":535},{},[536,538,544,546],{"type":33,"value":537},"built (Phase 2): ",{"type":24,"tag":38,"props":539,"children":541},{"className":540},[],[542],{"type":33,"value":543},"nozzle::ladder",{"type":33,"value":545},", on Dev › Source and ",{"type":24,"tag":38,"props":547,"children":549},{"className":548},[],[550],{"type":33,"value":551},"--check-sensor",{"type":24,"tag":486,"props":553,"children":554},{},[555,560,565,570],{"type":24,"tag":518,"props":556,"children":557},{},[558],{"type":33,"value":559},"Found",{"type":24,"tag":518,"props":561,"children":562},{},[563],{"type":33,"value":564},"the lock file's pid is alive (this machine only)",{"type":24,"tag":518,"props":566,"children":567},{},[568],{"type":33,"value":569},"installed and running",{"type":24,"tag":518,"props":571,"children":572},{},[573],{"type":33,"value":574},"built (Phase 2)",{"type":24,"tag":486,"props":576,"children":577},{},[578,583,594,599],{"type":24,"tag":518,"props":579,"children":580},{},[581],{"type":33,"value":582},"Answering",{"type":24,"tag":518,"props":584,"children":585},{},[586,592],{"type":24,"tag":38,"props":587,"children":589},{"className":588},[],[590],{"type":33,"value":591},"GET \u002Fapi\u002Fstats",{"type":33,"value":593}," returns 200",{"type":24,"tag":518,"props":595,"children":596},{},[597],{"type":33,"value":598},"connected; the events it has seen (no version is served)",{"type":24,"tag":518,"props":600,"children":601},{},[602],{"type":33,"value":574},{"type":24,"tag":486,"props":604,"children":605},{},[606,611,616,621],{"type":24,"tag":518,"props":607,"children":608},{},[609],{"type":33,"value":610},"Streaming",{"type":24,"tag":518,"props":612,"children":613},{},[614],{"type":33,"value":615},"the stream is open, keep-alive under 15 s old",{"type":24,"tag":518,"props":617,"children":618},{},[619],{"type":33,"value":620},"live; events a second, the last event's age",{"type":24,"tag":518,"props":622,"children":623},{},[624,630],{"type":24,"tag":38,"props":625,"children":627},{"className":626},[],[628],{"type":33,"value":629},"Open",{"type":33,"value":631}," and the keep-alive are built; the rate and age are Phase 3",{"type":24,"tag":486,"props":633,"children":634},{},[635,640,645,650],{"type":24,"tag":518,"props":636,"children":637},{},[638],{"type":33,"value":639},"Lost",{"type":24,"tag":518,"props":641,"children":642},{},[643],{"type":33,"value":644},"was open, now retrying",{"type":24,"tag":518,"props":646,"children":647},{},[648],{"type":33,"value":649},"reconnecting, with the attempt and the reason",{"type":24,"tag":518,"props":651,"children":652},{},[653,655],{"type":33,"value":654},"built: ",{"type":24,"tag":38,"props":656,"children":658},{"className":657},[],[659],{"type":33,"value":660},"Retrying { attempt, reason, retry_in }",{"type":24,"tag":486,"props":662,"children":663},{},[664,669,674,679],{"type":24,"tag":518,"props":665,"children":666},{},[667],{"type":33,"value":668},"Refused",{"type":24,"tag":518,"props":670,"children":671},{},[672],{"type":33,"value":673},"403 (host guard) or 503 (no live hub)",{"type":24,"tag":518,"props":675,"children":676},{},[677],{"type":33,"value":678},"reachable but not serving; what to change",{"type":24,"tag":518,"props":680,"children":681},{},[682,683,689],{"type":33,"value":654},{"type":24,"tag":38,"props":684,"children":686},{"className":685},[],[687],{"type":33,"value":688},"Refused { status, reason }",{"type":33,"value":690},", the reason taken from the sensor's own body",{"type":24,"tag":153,"props":692,"children":694},{"id":693},"_2-the-data",[695],{"type":33,"value":14},{"type":24,"tag":159,"props":697,"children":699},{"id":698},"the-envelope-read-from-code",[700],{"type":33,"value":701},"The envelope (read from code)",{"type":24,"tag":25,"props":703,"children":704},{},[705,707,717,719,725,727,733],{"type":33,"value":706},"The source is ",{"type":24,"tag":708,"props":709,"children":711},"a",{"href":710},"types\u002Flive.ts",[712],{"type":24,"tag":38,"props":713,"children":715},{"className":714},[],[716],{"type":33,"value":710},{"type":33,"value":718},", generated into ",{"type":24,"tag":38,"props":720,"children":722},{"className":721},[],[723],{"type":33,"value":724},"crates\u002Ftypes\u002Fsrc\u002Flive.rs",{"type":33,"value":726}," by ",{"type":24,"tag":38,"props":728,"children":730},{"className":729},[],[731],{"type":33,"value":732},"scripts\u002Fts-to-rust.py --from",{"type":33,"value":734},", the same mechanism qdash's routes will use (c131 D17). Each field's doc says where it was read.",{"type":24,"tag":302,"props":736,"children":740},{"className":737,"code":738,"language":739,"meta":307,"style":308},"language-ts","export interface StreamRecord {\n  timestamp: string          \u002F\u002F RFC 3339, 9 fractional digits, Z (qevents timestamp.rs:16)\n  severity?: Severity        \u002F\u002F always written; absent reads as info\n  entity_id?: string         \u002F\u002F \"pid:\u003Cpid>:start:\u003Cunix secs>\"; absent on a host record\n  type: string               \u002F\u002F \"\u003Cfamily>.\u003Cname>\"\n  payload?: unknown          \u002F\u002F shaped per type; decoded on demand\n  run?: RunContext           \u002F\u002F legacy run envelope, tolerated, never required\n}\n","ts",[741],{"type":24,"tag":38,"props":742,"children":743},{"__ignoreMap":307},[744],{"type":33,"value":738},{"type":24,"tag":202,"props":746,"children":747},{},[748,796,915],{"type":24,"tag":175,"props":749,"children":750},{},[751,756,758,764,766,772,774,780,782,787,789,795],{"type":24,"tag":29,"props":752,"children":753},{},[754],{"type":33,"value":755},"Entity or host.",{"type":33,"value":757}," A record without ",{"type":24,"tag":38,"props":759,"children":761},{"className":760},[],[762],{"type":33,"value":763},"entity_id",{"type":33,"value":765}," is a host record. The host records are ",{"type":24,"tag":38,"props":767,"children":769},{"className":768},[],[770],{"type":33,"value":771},"installation.*",{"type":33,"value":773}," (five types) and ",{"type":24,"tag":38,"props":775,"children":777},{"className":776},[],[778],{"type":33,"value":779},"process.snapshot",{"type":33,"value":781},", whose entries each carry their own ",{"type":24,"tag":38,"props":783,"children":785},{"className":784},[],[786],{"type":33,"value":763},{"type":33,"value":788},". Everything else belongs to one process lifetime (read: ",{"type":24,"tag":38,"props":790,"children":792},{"className":791},[],[793],{"type":33,"value":794},"crates\u002Fqevents\u002Fsrc\u002Fpublic.rs:30-60",{"type":33,"value":233},{"type":24,"tag":175,"props":797,"children":798},{},[799,804,806,812,814,820,822,828,829,835,836,842,843,849,851,857,858,864,865,871,872,878,879,885,886,892,893,899,900,906,907,913],{"type":24,"tag":29,"props":800,"children":801},{},[802],{"type":33,"value":803},"Severity.",{"type":33,"value":805}," It is written on every record. Each type has a default (",{"type":24,"tag":38,"props":807,"children":809},{"className":808},[],[810],{"type":33,"value":811},"public.rs:224",{"type":33,"value":813},"): most are ",{"type":24,"tag":38,"props":815,"children":817},{"className":816},[],[818],{"type":33,"value":819},"info",{"type":33,"value":821},"; ",{"type":24,"tag":38,"props":823,"children":825},{"className":824},[],[826],{"type":33,"value":827},"connection.mitm_success",{"type":33,"value":53},{"type":24,"tag":38,"props":830,"children":832},{"className":831},[],[833],{"type":33,"value":834},"websocket.trace",{"type":33,"value":53},{"type":24,"tag":38,"props":837,"children":839},{"className":838},[],[840],{"type":33,"value":841},"llm.provider_*",{"type":33,"value":401},{"type":24,"tag":38,"props":844,"children":846},{"className":845},[],[847],{"type":33,"value":848},"run.plugin_load_success",{"type":33,"value":850}," are ",{"type":24,"tag":38,"props":852,"children":854},{"className":853},[],[855],{"type":33,"value":856},"debug",{"type":33,"value":821},{"type":24,"tag":38,"props":859,"children":861},{"className":860},[],[862],{"type":33,"value":863},"connection.intake_fallback",{"type":33,"value":401},{"type":24,"tag":38,"props":866,"children":868},{"className":867},[],[869],{"type":33,"value":870},"run.adapter_error",{"type":33,"value":850},{"type":24,"tag":38,"props":873,"children":875},{"className":874},[],[876],{"type":33,"value":877},"warn",{"type":33,"value":821},{"type":24,"tag":38,"props":880,"children":882},{"className":881},[],[883],{"type":33,"value":884},"connection.mitm_failure",{"type":33,"value":53},{"type":24,"tag":38,"props":887,"children":889},{"className":888},[],[890],{"type":33,"value":891},"connection.proxy_error",{"type":33,"value":53},{"type":24,"tag":38,"props":894,"children":896},{"className":895},[],[897],{"type":33,"value":898},"run.plugin_load_failure",{"type":33,"value":401},{"type":24,"tag":38,"props":901,"children":903},{"className":902},[],[904],{"type":33,"value":905},"installation.tap_error",{"type":33,"value":850},{"type":24,"tag":38,"props":908,"children":910},{"className":909},[],[911],{"type":33,"value":912},"error",{"type":33,"value":914},". Debug records are not emitted at all unless the sensor's log level is debug.",{"type":24,"tag":175,"props":916,"children":917},{},[918,923],{"type":24,"tag":29,"props":919,"children":920},{},[921],{"type":33,"value":922},"Tolerant.",{"type":33,"value":924}," The app reads an unknown type, an unknown field, and a payload it cannot decode, and each is still a row. The sensor and the app will not always be the same version, and qevents' own enums are strict about unknown variants.",{"type":24,"tag":159,"props":926,"children":928},{"id":927},"the-families-read-from-code",[929],{"type":33,"value":930},"The families (read from code)",{"type":24,"tag":478,"props":932,"children":933},{},[934,950],{"type":24,"tag":482,"props":935,"children":936},{},[937],{"type":24,"tag":486,"props":938,"children":939},{},[940,945],{"type":24,"tag":490,"props":941,"children":942},{},[943],{"type":33,"value":944},"Family",{"type":24,"tag":490,"props":946,"children":947},{},[948],{"type":33,"value":949},"Types",{"type":24,"tag":511,"props":951,"children":952},{},[953,984,1028,1066,1118,1174,1212,1236,1293,1322,1351,1394,1425,1441],{"type":24,"tag":486,"props":954,"children":955},{},[956,961],{"type":24,"tag":518,"props":957,"children":958},{},[959],{"type":33,"value":960},"process",{"type":24,"tag":518,"props":962,"children":963},{},[964,970,971,977,978],{"type":24,"tag":38,"props":965,"children":967},{"className":966},[],[968],{"type":33,"value":969},"started",{"type":33,"value":53},{"type":24,"tag":38,"props":972,"children":974},{"className":973},[],[975],{"type":33,"value":976},"stopped",{"type":33,"value":53},{"type":24,"tag":38,"props":979,"children":981},{"className":980},[],[982],{"type":33,"value":983},"snapshot",{"type":24,"tag":486,"props":985,"children":986},{},[987,992],{"type":24,"tag":518,"props":988,"children":989},{},[990],{"type":33,"value":991},"installation",{"type":24,"tag":518,"props":993,"children":994},{},[995,1001,1002,1008,1009,1014,1015,1021,1022],{"type":24,"tag":38,"props":996,"children":998},{"className":997},[],[999],{"type":33,"value":1000},"discovered",{"type":33,"value":53},{"type":24,"tag":38,"props":1003,"children":1005},{"className":1004},[],[1006],{"type":33,"value":1007},"details",{"type":33,"value":53},{"type":24,"tag":38,"props":1010,"children":1012},{"className":1011},[],[1013],{"type":33,"value":983},{"type":33,"value":53},{"type":24,"tag":38,"props":1016,"children":1018},{"className":1017},[],[1019],{"type":33,"value":1020},"tap_result",{"type":33,"value":53},{"type":24,"tag":38,"props":1023,"children":1025},{"className":1024},[],[1026],{"type":33,"value":1027},"tap_error",{"type":24,"tag":486,"props":1029,"children":1030},{},[1031,1036],{"type":24,"tag":518,"props":1032,"children":1033},{},[1034],{"type":33,"value":1035},"agent",{"type":24,"tag":518,"props":1037,"children":1038},{},[1039,1045,1046,1052,1053,1059,1060],{"type":24,"tag":38,"props":1040,"children":1042},{"className":1041},[],[1043],{"type":33,"value":1044},"message",{"type":33,"value":53},{"type":24,"tag":38,"props":1047,"children":1049},{"className":1048},[],[1050],{"type":33,"value":1051},"tool_call",{"type":33,"value":53},{"type":24,"tag":38,"props":1054,"children":1056},{"className":1055},[],[1057],{"type":33,"value":1058},"tool_decision",{"type":33,"value":53},{"type":24,"tag":38,"props":1061,"children":1063},{"className":1062},[],[1064],{"type":33,"value":1065},"tool_result",{"type":24,"tag":486,"props":1067,"children":1068},{},[1069,1074],{"type":24,"tag":518,"props":1070,"children":1071},{},[1072],{"type":33,"value":1073},"llm",{"type":24,"tag":518,"props":1075,"children":1076},{},[1077,1083,1084,1090,1091,1097,1098,1104,1105,1111,1112],{"type":24,"tag":38,"props":1078,"children":1080},{"className":1079},[],[1081],{"type":33,"value":1082},"request",{"type":33,"value":53},{"type":24,"tag":38,"props":1085,"children":1087},{"className":1086},[],[1088],{"type":33,"value":1089},"response",{"type":33,"value":53},{"type":24,"tag":38,"props":1092,"children":1094},{"className":1093},[],[1095],{"type":33,"value":1096},"usage",{"type":33,"value":53},{"type":24,"tag":38,"props":1099,"children":1101},{"className":1100},[],[1102],{"type":33,"value":1103},"rate_limit",{"type":33,"value":53},{"type":24,"tag":38,"props":1106,"children":1108},{"className":1107},[],[1109],{"type":33,"value":1110},"provider_matched",{"type":33,"value":53},{"type":24,"tag":38,"props":1113,"children":1115},{"className":1114},[],[1116],{"type":33,"value":1117},"provider_unmatched",{"type":24,"tag":486,"props":1119,"children":1120},{},[1121,1126],{"type":24,"tag":518,"props":1122,"children":1123},{},[1124],{"type":33,"value":1125},"mcp",{"type":24,"tag":518,"props":1127,"children":1128},{},[1129,1134,1135,1140,1141,1146,1147,1153,1154,1160,1161,1167,1168],{"type":24,"tag":38,"props":1130,"children":1132},{"className":1131},[],[1133],{"type":33,"value":1082},{"type":33,"value":53},{"type":24,"tag":38,"props":1136,"children":1138},{"className":1137},[],[1139],{"type":33,"value":1089},{"type":33,"value":53},{"type":24,"tag":38,"props":1142,"children":1144},{"className":1143},[],[1145],{"type":33,"value":912},{"type":33,"value":53},{"type":24,"tag":38,"props":1148,"children":1150},{"className":1149},[],[1151],{"type":33,"value":1152},"notification",{"type":33,"value":53},{"type":24,"tag":38,"props":1155,"children":1157},{"className":1156},[],[1158],{"type":33,"value":1159},"session_close",{"type":33,"value":53},{"type":24,"tag":38,"props":1162,"children":1164},{"className":1163},[],[1165],{"type":33,"value":1166},"diagnostic",{"type":33,"value":53},{"type":24,"tag":38,"props":1169,"children":1171},{"className":1170},[],[1172],{"type":33,"value":1173},"oauth",{"type":24,"tag":486,"props":1175,"children":1176},{},[1177,1182],{"type":24,"tag":518,"props":1178,"children":1179},{},[1180],{"type":33,"value":1181},"file",{"type":24,"tag":518,"props":1183,"children":1184},{},[1185,1191,1192,1198,1199,1205,1206],{"type":24,"tag":38,"props":1186,"children":1188},{"className":1187},[],[1189],{"type":33,"value":1190},"open",{"type":33,"value":53},{"type":24,"tag":38,"props":1193,"children":1195},{"className":1194},[],[1196],{"type":33,"value":1197},"read",{"type":33,"value":53},{"type":24,"tag":38,"props":1200,"children":1202},{"className":1201},[],[1203],{"type":33,"value":1204},"write",{"type":33,"value":53},{"type":24,"tag":38,"props":1207,"children":1209},{"className":1208},[],[1210],{"type":33,"value":1211},"close",{"type":24,"tag":486,"props":1213,"children":1214},{},[1215,1220],{"type":24,"tag":518,"props":1216,"children":1217},{},[1218],{"type":33,"value":1219},"exec",{"type":24,"tag":518,"props":1221,"children":1222},{},[1223,1229,1230],{"type":24,"tag":38,"props":1224,"children":1226},{"className":1225},[],[1227],{"type":33,"value":1228},"spawn",{"type":33,"value":53},{"type":24,"tag":38,"props":1231,"children":1233},{"className":1232},[],[1234],{"type":33,"value":1235},"exit",{"type":24,"tag":486,"props":1237,"children":1238},{},[1239,1244],{"type":24,"tag":518,"props":1240,"children":1241},{},[1242],{"type":33,"value":1243},"connection",{"type":24,"tag":518,"props":1245,"children":1246},{},[1247,1252,1253,1259,1260,1265,1266,1272,1273,1279,1280,1286,1287],{"type":24,"tag":38,"props":1248,"children":1250},{"className":1249},[],[1251],{"type":33,"value":1190},{"type":33,"value":53},{"type":24,"tag":38,"props":1254,"children":1256},{"className":1255},[],[1257],{"type":33,"value":1258},"update",{"type":33,"value":53},{"type":24,"tag":38,"props":1261,"children":1263},{"className":1262},[],[1264],{"type":33,"value":1211},{"type":33,"value":53},{"type":24,"tag":38,"props":1267,"children":1269},{"className":1268},[],[1270],{"type":33,"value":1271},"mitm_success",{"type":33,"value":53},{"type":24,"tag":38,"props":1274,"children":1276},{"className":1275},[],[1277],{"type":33,"value":1278},"mitm_failure",{"type":33,"value":53},{"type":24,"tag":38,"props":1281,"children":1283},{"className":1282},[],[1284],{"type":33,"value":1285},"proxy_error",{"type":33,"value":53},{"type":24,"tag":38,"props":1288,"children":1290},{"className":1289},[],[1291],{"type":33,"value":1292},"intake_fallback",{"type":24,"tag":486,"props":1294,"children":1295},{},[1296,1301],{"type":24,"tag":518,"props":1297,"children":1298},{},[1299],{"type":33,"value":1300},"http",{"type":24,"tag":518,"props":1302,"children":1303},{},[1304,1309,1310,1315,1316],{"type":24,"tag":38,"props":1305,"children":1307},{"className":1306},[],[1308],{"type":33,"value":1082},{"type":33,"value":53},{"type":24,"tag":38,"props":1311,"children":1313},{"className":1312},[],[1314],{"type":33,"value":1089},{"type":33,"value":53},{"type":24,"tag":38,"props":1317,"children":1319},{"className":1318},[],[1320],{"type":33,"value":1321},"exchange_close",{"type":24,"tag":486,"props":1323,"children":1324},{},[1325,1330],{"type":24,"tag":518,"props":1326,"children":1327},{},[1328],{"type":33,"value":1329},"sse",{"type":24,"tag":518,"props":1331,"children":1332},{},[1333,1338,1339,1345,1346],{"type":24,"tag":38,"props":1334,"children":1336},{"className":1335},[],[1337],{"type":33,"value":1190},{"type":33,"value":53},{"type":24,"tag":38,"props":1340,"children":1342},{"className":1341},[],[1343],{"type":33,"value":1344},"event",{"type":33,"value":53},{"type":24,"tag":38,"props":1347,"children":1349},{"className":1348},[],[1350],{"type":33,"value":1211},{"type":24,"tag":486,"props":1352,"children":1353},{},[1354,1359],{"type":24,"tag":518,"props":1355,"children":1356},{},[1357],{"type":33,"value":1358},"websocket",{"type":24,"tag":518,"props":1360,"children":1361},{},[1362,1367,1368,1374,1375,1381,1382,1387,1388],{"type":24,"tag":38,"props":1363,"children":1365},{"className":1364},[],[1366],{"type":33,"value":1190},{"type":33,"value":53},{"type":24,"tag":38,"props":1369,"children":1371},{"className":1370},[],[1372],{"type":33,"value":1373},"send",{"type":33,"value":53},{"type":24,"tag":38,"props":1376,"children":1378},{"className":1377},[],[1379],{"type":33,"value":1380},"recv",{"type":33,"value":53},{"type":24,"tag":38,"props":1383,"children":1385},{"className":1384},[],[1386],{"type":33,"value":1211},{"type":33,"value":53},{"type":24,"tag":38,"props":1389,"children":1391},{"className":1390},[],[1392],{"type":33,"value":1393},"trace",{"type":24,"tag":486,"props":1395,"children":1396},{},[1397,1402],{"type":24,"tag":518,"props":1398,"children":1399},{},[1400],{"type":33,"value":1401},"run",{"type":24,"tag":518,"props":1403,"children":1404},{},[1405,1411,1412,1418,1419],{"type":24,"tag":38,"props":1406,"children":1408},{"className":1407},[],[1409],{"type":33,"value":1410},"adapter_error",{"type":33,"value":53},{"type":24,"tag":38,"props":1413,"children":1415},{"className":1414},[],[1416],{"type":33,"value":1417},"plugin_load_success",{"type":33,"value":53},{"type":24,"tag":38,"props":1420,"children":1422},{"className":1421},[],[1423],{"type":33,"value":1424},"plugin_load_failure",{"type":24,"tag":486,"props":1426,"children":1427},{},[1428,1433],{"type":24,"tag":518,"props":1429,"children":1430},{},[1431],{"type":33,"value":1432},"netstat",{"type":24,"tag":518,"props":1434,"children":1435},{},[1436],{"type":24,"tag":38,"props":1437,"children":1439},{"className":1438},[],[1440],{"type":33,"value":983},{"type":24,"tag":486,"props":1442,"children":1443},{},[1444,1449],{"type":24,"tag":518,"props":1445,"children":1446},{},[1447],{"type":33,"value":1448},"plugin",{"type":24,"tag":518,"props":1450,"children":1451},{},[1452],{"type":24,"tag":38,"props":1453,"children":1455},{"className":1454},[],[1456],{"type":33,"value":1457},"plugin.event",{"type":24,"tag":25,"props":1459,"children":1460},{},[1461,1467,1469,1475],{"type":24,"tag":38,"props":1462,"children":1464},{"className":1463},[],[1465],{"type":33,"value":1466},"types::events::FAMILIES",{"type":33,"value":1468}," carries this table. ",{"type":24,"tag":38,"props":1470,"children":1472},{"className":1471},[],[1473],{"type":33,"value":1474},"file.*",{"type":33,"value":1476}," is the volume family.",{"type":24,"tag":159,"props":1478,"children":1480},{"id":1479},"the-payloads-read-from-code",[1481],{"type":33,"value":1482},"The payloads (read from code)",{"type":24,"tag":25,"props":1484,"children":1485},{},[1486,1488,1498],{"type":33,"value":1487},"Every type's payload, field by field, with optional versus always-present-but-null, the tagged enums, and file:line, is in ",{"type":24,"tag":708,"props":1489,"children":1491},{"href":1490},"\u002Fcycles\u002Fqnative\u002Fc3\u002Fdoc\u002Fresearch\u002Fqevents-payloads",[1492],{"type":24,"tag":38,"props":1493,"children":1495},{"className":1494},[],[1496],{"type":33,"value":1497},"..\u002Fresearch\u002Fqevents-payloads.md",{"type":33,"value":1499},". The synthetic stream scripts are written to it.",{"type":24,"tag":159,"props":1501,"children":1503},{"id":1502},"correlation-keys-what-events-joins-on-read-from-code",[1504],{"type":33,"value":1505},"Correlation keys (what Events joins on; read from code)",{"type":24,"tag":478,"props":1507,"children":1508},{},[1509,1524],{"type":24,"tag":482,"props":1510,"children":1511},{},[1512],{"type":24,"tag":486,"props":1513,"children":1514},{},[1515,1519],{"type":24,"tag":490,"props":1516,"children":1517},{},[1518],{"type":33,"value":149},{"type":24,"tag":490,"props":1520,"children":1521},{},[1522],{"type":33,"value":1523},"Joined by",{"type":24,"tag":511,"props":1525,"children":1526},{},[1527,1552,1577,1604,1621,1638,1662,1686,1703],{"type":24,"tag":486,"props":1528,"children":1529},{},[1530,1535],{"type":24,"tag":518,"props":1531,"children":1532},{},[1533],{"type":33,"value":1534},"a process and everything it did",{"type":24,"tag":518,"props":1536,"children":1537},{},[1538,1543,1545,1551],{"type":24,"tag":38,"props":1539,"children":1541},{"className":1540},[],[1542],{"type":33,"value":763},{"type":33,"value":1544}," (and each ",{"type":24,"tag":38,"props":1546,"children":1548},{"className":1547},[],[1549],{"type":33,"value":1550},"process.snapshot.payload.processes[].entity_id",{"type":33,"value":379},{"type":24,"tag":486,"props":1553,"children":1554},{},[1555,1560],{"type":24,"tag":518,"props":1556,"children":1557},{},[1558],{"type":33,"value":1559},"an installation",{"type":24,"tag":518,"props":1561,"children":1562},{},[1563,1569,1571],{"type":24,"tag":38,"props":1564,"children":1566},{"className":1565},[],[1567],{"type":33,"value":1568},"installation.*.payload.id",{"type":33,"value":1570}," = ",{"type":24,"tag":38,"props":1572,"children":1574},{"className":1573},[],[1575],{"type":33,"value":1576},"process.started.payload.installation_id",{"type":24,"tag":486,"props":1578,"children":1579},{},[1580,1585],{"type":24,"tag":518,"props":1581,"children":1582},{},[1583],{"type":33,"value":1584},"a session of a harness",{"type":24,"tag":518,"props":1586,"children":1587},{},[1588,1594,1596,1602],{"type":24,"tag":38,"props":1589,"children":1591},{"className":1590},[],[1592],{"type":33,"value":1593},"payload.context.session_id",{"type":33,"value":1595}," (agent, llm), ",{"type":24,"tag":38,"props":1597,"children":1599},{"className":1598},[],[1600],{"type":33,"value":1601},"payload.session.session_id",{"type":33,"value":1603}," (mcp)",{"type":24,"tag":486,"props":1605,"children":1606},{},[1607,1612],{"type":24,"tag":518,"props":1608,"children":1609},{},[1610],{"type":33,"value":1611},"a tool call, its decision and its result",{"type":24,"tag":518,"props":1613,"children":1614},{},[1615],{"type":24,"tag":38,"props":1616,"children":1618},{"className":1617},[],[1619],{"type":33,"value":1620},"call_id",{"type":24,"tag":486,"props":1622,"children":1623},{},[1624,1629],{"type":24,"tag":518,"props":1625,"children":1626},{},[1627],{"type":33,"value":1628},"a model request and its response",{"type":24,"tag":518,"props":1630,"children":1631},{},[1632],{"type":24,"tag":38,"props":1633,"children":1635},{"className":1634},[],[1636],{"type":33,"value":1637},"request_id",{"type":24,"tag":486,"props":1639,"children":1640},{},[1641,1646],{"type":24,"tag":518,"props":1642,"children":1643},{},[1644],{"type":33,"value":1645},"an HTTP exchange and its stream",{"type":24,"tag":518,"props":1647,"children":1648},{},[1649,1655,1656],{"type":24,"tag":38,"props":1650,"children":1652},{"className":1651},[],[1653],{"type":33,"value":1654},"exchange.id",{"type":33,"value":1570},{"type":24,"tag":38,"props":1657,"children":1659},{"className":1658},[],[1660],{"type":33,"value":1661},"sse\u002Fwebsocket.*.stream.http_exchange_id",{"type":24,"tag":486,"props":1663,"children":1664},{},[1665,1670],{"type":24,"tag":518,"props":1666,"children":1667},{},[1668],{"type":33,"value":1669},"a connection",{"type":24,"tag":518,"props":1671,"children":1672},{},[1673,1679,1680],{"type":24,"tag":38,"props":1674,"children":1676},{"className":1675},[],[1677],{"type":33,"value":1678},"connection.id",{"type":33,"value":1570},{"type":24,"tag":38,"props":1681,"children":1683},{"className":1682},[],[1684],{"type":33,"value":1685},"http.*.exchange.connection_id",{"type":24,"tag":486,"props":1687,"children":1688},{},[1689,1694],{"type":24,"tag":518,"props":1690,"children":1691},{},[1692],{"type":33,"value":1693},"one file session",{"type":24,"tag":518,"props":1695,"children":1696},{},[1697],{"type":24,"tag":38,"props":1698,"children":1700},{"className":1699},[],[1701],{"type":33,"value":1702},"file.*.payload.file.id",{"type":24,"tag":486,"props":1704,"children":1705},{},[1706,1711],{"type":24,"tag":518,"props":1707,"children":1708},{},[1709],{"type":33,"value":1710},"a child process",{"type":24,"tag":518,"props":1712,"children":1713},{},[1714,1720,1721],{"type":24,"tag":38,"props":1715,"children":1717},{"className":1716},[],[1718],{"type":33,"value":1719},"exec.spawn.payload.id",{"type":33,"value":1570},{"type":24,"tag":38,"props":1722,"children":1724},{"className":1723},[],[1725],{"type":33,"value":1726},"exec.exit.payload.id",{"type":24,"tag":159,"props":1728,"children":1730},{"id":1729},"the-monitors-shapes-proposed",[1731],{"type":33,"value":1732},"The monitor's shapes (proposed)",{"type":24,"tag":25,"props":1734,"children":1735},{},[1736,1738,1747,1748,1754,1756,1762,1763,1769,1771,1775,1777,1782],{"type":33,"value":1737},"The Monitor page's two routes of its own, workers with their lifecycle and the process tree, are in ",{"type":24,"tag":708,"props":1739,"children":1741},{"href":1740},"types\u002Fmonitor.ts",[1742],{"type":24,"tag":38,"props":1743,"children":1745},{"className":1744},[],[1746],{"type":33,"value":1740},{"type":33,"value":718},{"type":24,"tag":38,"props":1749,"children":1751},{"className":1750},[],[1752],{"type":33,"value":1753},"crates\u002Ftypes\u002Fsrc\u002Fmonitor.rs",{"type":33,"value":1755},". Its health, resources, log and loaded targets and behaviors ride on c131 D17's ",{"type":24,"tag":38,"props":1757,"children":1759},{"className":1758},[],[1760],{"type":33,"value":1761},"\u002Fapi\u002Fsensor",{"type":33,"value":401},{"type":24,"tag":38,"props":1764,"children":1766},{"className":1765},[],[1767],{"type":33,"value":1768},"\u002Fapi\u002Fconfig",{"type":33,"value":1770}," (reconciled 2026-11-12, so each route is asked for once). None is served today. Each field marks whether the monitor already holds that data in its in-process view (",{"type":24,"tag":29,"props":1772,"children":1773},{},[1774],{"type":33,"value":1197},{"type":33,"value":1776},") or not (",{"type":24,"tag":29,"props":1778,"children":1779},{},[1780],{"type":33,"value":1781},"proposed",{"type":33,"value":1783},"). Page 4 has the rest.",{"type":24,"tag":159,"props":1785,"children":1787},{"id":1786},"what-is-read-and-what-is-guessed",[1788],{"type":33,"value":1789},"What is read, and what is guessed",{"type":24,"tag":478,"props":1791,"children":1792},{},[1793,1812],{"type":24,"tag":482,"props":1794,"children":1795},{},[1796],{"type":24,"tag":486,"props":1797,"children":1798},{},[1799,1802,1807],{"type":24,"tag":490,"props":1800,"children":1801},{},[],{"type":24,"tag":490,"props":1803,"children":1804},{},[1805],{"type":33,"value":1806},"Read from code",{"type":24,"tag":490,"props":1808,"children":1809},{},[1810],{"type":33,"value":1811},"Guessed",{"type":24,"tag":511,"props":1813,"children":1814},{},[1815,1833,1865,1905,1930,1959],{"type":24,"tag":486,"props":1816,"children":1817},{},[1818,1823,1828],{"type":24,"tag":518,"props":1819,"children":1820},{},[1821],{"type":33,"value":1822},"The envelope, families, payloads, severities, correlation keys",{"type":24,"tag":518,"props":1824,"children":1825},{},[1826],{"type":33,"value":1827},"qevents",{"type":24,"tag":518,"props":1829,"children":1830},{},[1831],{"type":33,"value":1832},"none",{"type":24,"tag":486,"props":1834,"children":1835},{},[1836,1841,1861],{"type":24,"tag":518,"props":1837,"children":1838},{},[1839],{"type":33,"value":1840},"Framing, keep-alive, 403\u002F503, the 1,024 buffer, the resync on connect",{"type":24,"tag":518,"props":1842,"children":1843},{},[1844,1846,1852,1853,1859],{"type":33,"value":1845},"qdash ",{"type":24,"tag":38,"props":1847,"children":1849},{"className":1848},[],[1850],{"type":33,"value":1851},"web.rs",{"type":33,"value":53},{"type":24,"tag":38,"props":1854,"children":1856},{"className":1855},[],[1857],{"type":33,"value":1858},"hub.rs",{"type":33,"value":1860},", the monitor's inventory state",{"type":24,"tag":518,"props":1862,"children":1863},{},[1864],{"type":33,"value":1832},{"type":24,"tag":486,"props":1866,"children":1867},{},[1868,1893,1898],{"type":24,"tag":518,"props":1869,"children":1870},{},[1871,1873,1878,1879,1885,1887],{"type":33,"value":1872},"That ",{"type":24,"tag":38,"props":1874,"children":1876},{"className":1875},[],[1877],{"type":33,"value":1125},{"type":33,"value":184},{"type":24,"tag":38,"props":1880,"children":1882},{"className":1881},[],[1883],{"type":33,"value":1884},"exchange_id",{"type":33,"value":1886}," shares its id space with ",{"type":24,"tag":38,"props":1888,"children":1890},{"className":1889},[],[1891],{"type":33,"value":1892},"http.*.exchange.id",{"type":24,"tag":518,"props":1894,"children":1895},{},[1896],{"type":33,"value":1897},"not stated in code",{"type":24,"tag":518,"props":1899,"children":1900},{},[1901],{"type":24,"tag":29,"props":1902,"children":1903},{},[1904],{"type":33,"value":125},{"type":24,"tag":486,"props":1906,"children":1907},{},[1908,1918,1923],{"type":24,"tag":518,"props":1909,"children":1910},{},[1911,1913],{"type":33,"value":1912},"That a tap skip is written as ",{"type":24,"tag":38,"props":1914,"children":1916},{"className":1915},[],[1917],{"type":33,"value":877},{"type":24,"tag":518,"props":1919,"children":1920},{},[1921],{"type":33,"value":1922},"a doc comment says so; no code sets it",{"type":24,"tag":518,"props":1924,"children":1925},{},[1926],{"type":24,"tag":29,"props":1927,"children":1928},{},[1929],{"type":33,"value":125},{"type":24,"tag":486,"props":1931,"children":1932},{},[1933,1945,1950],{"type":24,"tag":518,"props":1934,"children":1935},{},[1936,1938,1944],{"type":33,"value":1937},"The synthetic streams' values, mix and rates (",{"type":24,"tag":38,"props":1939,"children":1941},{"className":1940},[],[1942],{"type":33,"value":1943},"fixtures::streams",{"type":33,"value":379},{"type":24,"tag":518,"props":1946,"children":1947},{},[1948],{"type":33,"value":1949},"the shapes are read",{"type":24,"tag":518,"props":1951,"children":1952},{},[1953,1957],{"type":24,"tag":29,"props":1954,"children":1955},{},[1956],{"type":33,"value":125},{"type":33,"value":1958},": the content is invented. A recording of a real session replaces it (page 6).",{"type":24,"tag":486,"props":1960,"children":1961},{},[1962,1967,1972],{"type":24,"tag":518,"props":1963,"children":1964},{},[1965],{"type":33,"value":1966},"The monitor's four routes",{"type":24,"tag":518,"props":1968,"children":1969},{},[1970],{"type":33,"value":1971},"the data behind each field is read",{"type":24,"tag":518,"props":1973,"children":1974},{},[1975,1979],{"type":24,"tag":29,"props":1976,"children":1977},{},[1978],{"type":33,"value":125},{"type":33,"value":1980},": the shapes are ours to propose",{"type":24,"tag":153,"props":1982,"children":1984},{"id":1983},"_3-the-pipeline",[1985],{"type":33,"value":15},{"type":24,"tag":25,"props":1987,"children":1988},{},[1989],{"type":33,"value":1990},"Built in Phase 1:",{"type":24,"tag":302,"props":1992,"children":1996},{"className":1993,"code":1995,"language":33},[1994],"language-text","sensor ── SSE ──▶ nozzle::sse ──▶ Subscription ──▶ the page ──▶ stream::ingest\n                  (frames)        (a channel of    (awaits it; no   (qdash's LogEvent,\n                                  1,024 items:     timer, so idle   held to qdash by\nsynthetic ── fixtures::streams ─▶ play()           costs nothing)   test vectors)\n",[1997],{"type":24,"tag":38,"props":1998,"children":1999},{"__ignoreMap":307},[2000],{"type":33,"value":1995},{"type":24,"tag":202,"props":2002,"children":2003},{},[2004,2022,2032,2042],{"type":24,"tag":175,"props":2005,"children":2006},{},[2007,2012,2014,2020],{"type":24,"tag":29,"props":2008,"children":2009},{},[2010],{"type":33,"value":2011},"One subscription per open page",{"type":33,"value":2013},", through ",{"type":24,"tag":38,"props":2015,"children":2017},{"className":2016},[],[2018],{"type":33,"value":2019},"Repo::subscribe()",{"type":33,"value":2021},". A page never knows whether the sensor or a script is behind it (c131 R1, R2). The plane serves no stream of this machine's events and says so (ruling 3).",{"type":24,"tag":175,"props":2023,"children":2024},{},[2025,2030],{"type":24,"tag":29,"props":2026,"children":2027},{},[2028],{"type":33,"value":2029},"Backpressure, not loss, inside the app.",{"type":33,"value":2031}," When the page falls behind, the producer waits. Against the sensor, this means qdash's 1,024-record buffer fills and qdash cuts the app, exactly as it cuts a browser. That is the \"Lost\" rung, and ask 2 below would let the app say how much was lost.",{"type":24,"tag":175,"props":2033,"children":2034},{},[2035,2040],{"type":24,"tag":29,"props":2036,"children":2037},{},[2038],{"type":33,"value":2039},"Records stay text until they are needed.",{"type":33,"value":2041}," The subscription carries each frame's JSON as sent. Phase 3 keeps a ring of raw frames and parses on demand.",{"type":24,"tag":175,"props":2043,"children":2044},{},[2045,2050,2051,2057,2059,2065,2066,2072,2074,2080,2081,2087,2089,2095],{"type":24,"tag":29,"props":2046,"children":2047},{},[2048],{"type":33,"value":2049},"Held to the web by test.",{"type":33,"value":184},{"type":24,"tag":38,"props":2052,"children":2054},{"className":2053},[],[2055],{"type":33,"value":2056},"scripts\u002Flive-vectors.sh",{"type":33,"value":2058}," generates a corpus from the stream scripts plus edge lines (not JSON, not an object, no type, a legacy run envelope, ",{"type":24,"tag":38,"props":2060,"children":2062},{"className":2061},[],[2063],{"type":33,"value":2064},"observed_at",{"type":33,"value":401},{"type":24,"tag":38,"props":2067,"children":2069},{"className":2068},[],[2070],{"type":33,"value":2071},"sequence",{"type":33,"value":2073},", an unknown severity). It runs qdash's own ",{"type":24,"tag":38,"props":2075,"children":2077},{"className":2076},[],[2078],{"type":33,"value":2079},"ingestEvent",{"type":33,"value":401},{"type":24,"tag":38,"props":2082,"children":2084},{"className":2083},[],[2085],{"type":33,"value":2086},"parseRunLog",{"type":33,"value":2088}," over the corpus in node, bundled read-only from the qcontrol checkout, and writes ",{"type":24,"tag":38,"props":2090,"children":2092},{"className":2091},[],[2093],{"type":33,"value":2094},"crates\u002Fstream\u002Fvectors\u002Fingest.json",{"type":33,"value":2096},". The Rust port agrees with all 615 vectors and with the run log's sort order. The vectors already carry qdash's previews, summaries, run and process summaries, ready for Phase 3's port.",{"type":24,"tag":25,"props":2098,"children":2099},{},[2100],{"type":24,"tag":29,"props":2101,"children":2102},{},[2103],{"type":33,"value":2104},"Built in Phase 3:",{"type":24,"tag":202,"props":2106,"children":2107},{},[2108,2143,2208],{"type":24,"tag":175,"props":2109,"children":2110},{},[2111,2116,2117,2123,2125],{"type":24,"tag":29,"props":2112,"children":2113},{},[2114],{"type":33,"value":2115},"The buffer",{"type":33,"value":45},{"type":24,"tag":38,"props":2118,"children":2120},{"className":2119},[],[2121],{"type":33,"value":2122},"stream::buffer",{"type":33,"value":2124},"): a ring of raw frames, bounded by count and by the bytes on the wire. The default is 20,000 events and 32 MiB, and the person can choose 5k, 20k or 100k.\n",{"type":24,"tag":202,"props":2126,"children":2127},{},[2128,2133,2138],{"type":24,"tag":175,"props":2129,"children":2130},{},[2131],{"type":33,"value":2132},"A light head per frame (type, family, severity, entity, session, time) skips the payload. Over every corpus line it agrees with ingest.",{"type":24,"tag":175,"props":2134,"children":2135},{},[2136],{"type":33,"value":2137},"Facets (family, type, severity, process, session) and the filtered view are kept as frames arrive and leave.",{"type":24,"tag":175,"props":2139,"children":2140},{},[2141],{"type":33,"value":2142},"Full rows are built only for the rows on screen.",{"type":24,"tag":175,"props":2144,"children":2145},{},[2146,2157,2158,2163,2165,2170,2172],{"type":24,"tag":29,"props":2147,"children":2148},{},[2149,2151],{"type":33,"value":2150},"Parity with qdash's ",{"type":24,"tag":38,"props":2152,"children":2154},{"className":2153},[],[2155],{"type":33,"value":2156},"lib\u002Flive",{"type":33,"value":45},{"type":24,"tag":38,"props":2159,"children":2161},{"className":2160},[],[2162],{"type":33,"value":103},{"type":33,"value":2164},"), held by cross-language vectors that ",{"type":24,"tag":38,"props":2166,"children":2168},{"className":2167},[],[2169],{"type":33,"value":2056},{"type":33,"value":2171}," regenerates byte-identical:\n",{"type":24,"tag":202,"props":2173,"children":2174},{},[2175,2180,2185,2190,2195],{"type":24,"tag":175,"props":2176,"children":2177},{},[2178],{"type":33,"value":2179},"ingest and previews (614 records: summary, preview, run, process);",{"type":24,"tag":175,"props":2181,"children":2182},{},[2183],{"type":33,"value":2184},"presence (99 checkpoints, 256 cards, all four statuses);",{"type":24,"tag":175,"props":2186,"children":2187},{},[2188],{"type":33,"value":2189},"the tally (63 views; 126 CSVs, byte for byte);",{"type":24,"tag":175,"props":2191,"children":2192},{},[2193],{"type":33,"value":2194},"entity-meta and the table projections (filters, counts, trees, chips, rows).",{"type":24,"tag":175,"props":2196,"children":2197},{},[2198,2200,2206],{"type":33,"value":2199},"Web quirks are kept for parity and marked ",{"type":24,"tag":38,"props":2201,"children":2203},{"className":2202},[],[2204],{"type":33,"value":2205},"web quirk, kept for parity:",{"type":33,"value":2207}," in the code.",{"type":24,"tag":175,"props":2209,"children":2210},{},[2211,2216],{"type":24,"tag":29,"props":2212,"children":2213},{},[2214],{"type":33,"value":2215},"Rows:",{"type":33,"value":2217}," the page also builds a full row for every arriving record, because presence, the entity index and qdash's tally read every one, as the web's do.",{"type":24,"tag":153,"props":2219,"children":2221},{"id":2220},"_4-the-states-what-the-person-sees-drawn-on-live-activity-since-phase-3",[2222],{"type":33,"value":16},{"type":24,"tag":478,"props":2224,"children":2225},{},[2226,2246],{"type":24,"tag":482,"props":2227,"children":2228},{},[2229],{"type":24,"tag":486,"props":2230,"children":2231},{},[2232,2237,2242],{"type":24,"tag":490,"props":2233,"children":2234},{},[2235],{"type":33,"value":2236},"State",{"type":24,"tag":490,"props":2238,"children":2239},{},[2240],{"type":33,"value":2241},"From",{"type":24,"tag":490,"props":2243,"children":2244},{},[2245],{"type":33,"value":504},{"type":24,"tag":511,"props":2247,"children":2248},{},[2249,2271,2294,2314,2342,2364,2385],{"type":24,"tag":486,"props":2250,"children":2251},{},[2252,2257,2266],{"type":24,"tag":518,"props":2253,"children":2254},{},[2255],{"type":33,"value":2256},"Connecting",{"type":24,"tag":518,"props":2258,"children":2259},{},[2260],{"type":24,"tag":38,"props":2261,"children":2263},{"className":2262},[],[2264],{"type":33,"value":2265},"Connecting { attempt }",{"type":24,"tag":518,"props":2267,"children":2268},{},[2269],{"type":33,"value":2270},"connecting, and the attempt after the first",{"type":24,"tag":486,"props":2272,"children":2273},{},[2274,2279,2289],{"type":24,"tag":518,"props":2275,"children":2276},{},[2277],{"type":33,"value":2278},"Live",{"type":24,"tag":518,"props":2280,"children":2281},{},[2282,2287],{"type":24,"tag":38,"props":2283,"children":2285},{"className":2284},[],[2286],{"type":33,"value":629},{"type":33,"value":2288},", records or keep-alives",{"type":24,"tag":518,"props":2290,"children":2291},{},[2292],{"type":33,"value":2293},"live; events a second; the last event's age",{"type":24,"tag":486,"props":2295,"children":2296},{},[2297,2301,2309],{"type":24,"tag":518,"props":2298,"children":2299},{},[2300],{"type":33,"value":458},{"type":24,"tag":518,"props":2302,"children":2303},{},[2304],{"type":24,"tag":38,"props":2305,"children":2307},{"className":2306},[],[2308],{"type":33,"value":660},{"type":24,"tag":518,"props":2310,"children":2311},{},[2312],{"type":33,"value":2313},"why it closed, the attempt, when the next one is",{"type":24,"tag":486,"props":2315,"children":2316},{},[2317,2321,2329],{"type":24,"tag":518,"props":2318,"children":2319},{},[2320],{"type":33,"value":668},{"type":24,"tag":518,"props":2322,"children":2323},{},[2324],{"type":24,"tag":38,"props":2325,"children":2327},{"className":2326},[],[2328],{"type":33,"value":688},{"type":24,"tag":518,"props":2330,"children":2331},{},[2332,2334,2340],{"type":33,"value":2333},"the sensor's own sentence (403: the host guard; 503: a static ",{"type":24,"tag":38,"props":2335,"children":2337},{"className":2336},[],[2338],{"type":33,"value":2339},"qdash serve",{"type":33,"value":2341},") and what to change",{"type":24,"tag":486,"props":2343,"children":2344},{},[2345,2350,2359],{"type":24,"tag":518,"props":2346,"children":2347},{},[2348],{"type":33,"value":2349},"Not running",{"type":24,"tag":518,"props":2351,"children":2352},{},[2353],{"type":24,"tag":38,"props":2354,"children":2356},{"className":2355},[],[2357],{"type":33,"value":2358},"NotRunning { reason }",{"type":24,"tag":518,"props":2360,"children":2361},{},[2362],{"type":33,"value":2363},"no sensor on this machine, and where the app looked",{"type":24,"tag":486,"props":2365,"children":2366},{},[2367,2372,2380],{"type":24,"tag":518,"props":2368,"children":2369},{},[2370],{"type":33,"value":2371},"Ended",{"type":24,"tag":518,"props":2373,"children":2374},{},[2375],{"type":24,"tag":38,"props":2376,"children":2378},{"className":2377},[],[2379],{"type":33,"value":2371},{"type":24,"tag":518,"props":2381,"children":2382},{},[2383],{"type":33,"value":2384},"a finite recording played to its end",{"type":24,"tag":486,"props":2386,"children":2387},{},[2388,2393,2398],{"type":24,"tag":518,"props":2389,"children":2390},{},[2391],{"type":33,"value":2392},"Filtered to nothing",{"type":24,"tag":518,"props":2394,"children":2395},{},[2396],{"type":33,"value":2397},"the page's filters",{"type":24,"tag":518,"props":2399,"children":2400},{},[2401],{"type":33,"value":2402},"the filters, and a way to clear them",{"type":24,"tag":153,"props":2404,"children":2406},{"id":2405},"_5-what-the-app-does-not-need",[2407],{"type":33,"value":17},{"type":24,"tag":25,"props":2409,"children":2410},{},[2411],{"type":33,"value":2412},"The web page this replicates still expects fields that the sensor stopped sending. The native pages are written against the envelope above and need none of these:",{"type":24,"tag":202,"props":2414,"children":2415},{},[2416,2436,2459,2498],{"type":24,"tag":175,"props":2417,"children":2418},{},[2419,2434],{"type":24,"tag":29,"props":2420,"children":2421},{},[2422,2427,2428,2433],{"type":24,"tag":38,"props":2423,"children":2425},{"className":2424},[],[2426],{"type":33,"value":2071},{"type":33,"value":401},{"type":24,"tag":38,"props":2429,"children":2431},{"className":2430},[],[2432],{"type":33,"value":2064},{"type":33,"value":127},{"type":33,"value":2435}," The app numbers frames as they arrive and says so. Both are read if present, as the web reads them, so the normal form agrees.",{"type":24,"tag":175,"props":2437,"children":2438},{},[2439,2451,2453,2458],{"type":24,"tag":29,"props":2440,"children":2441},{},[2442,2444,2449],{"type":33,"value":2443},"The ",{"type":24,"tag":38,"props":2445,"children":2447},{"className":2446},[],[2448],{"type":33,"value":1401},{"type":33,"value":2450}," envelope.",{"type":33,"value":2452}," Attribution is by ",{"type":24,"tag":38,"props":2454,"children":2456},{"className":2455},[],[2457],{"type":33,"value":763},{"type":33,"value":127},{"type":24,"tag":175,"props":2460,"children":2461},{},[2462,2467,2468,2474,2475,2481,2482,2488,2490,2496],{"type":24,"tag":29,"props":2463,"children":2464},{},[2465],{"type":33,"value":2466},"Retired types:",{"type":33,"value":184},{"type":24,"tag":38,"props":2469,"children":2471},{"className":2470},[],[2472],{"type":33,"value":2473},"run.ended",{"type":33,"value":53},{"type":24,"tag":38,"props":2476,"children":2478},{"className":2477},[],[2479],{"type":33,"value":2480},"agent.classified",{"type":33,"value":53},{"type":24,"tag":38,"props":2483,"children":2485},{"className":2484},[],[2486],{"type":33,"value":2487},"auto_tap.*",{"type":33,"value":2489}," and others. ",{"type":24,"tag":38,"props":2491,"children":2493},{"className":2492},[],[2494],{"type":33,"value":2495},"process.stopped",{"type":33,"value":2497}," is the end signal.",{"type":24,"tag":175,"props":2499,"children":2500},{},[2501,2518],{"type":24,"tag":29,"props":2502,"children":2503},{},[2504,2510,2511,2517],{"type":24,"tag":38,"props":2505,"children":2507},{"className":2506},[],[2508],{"type":33,"value":2509},"POST \u002Fapi\u002Fagent\u002Ffocus",{"type":33,"value":401},{"type":24,"tag":38,"props":2512,"children":2514},{"className":2513},[],[2515],{"type":33,"value":2516},"\u002Fapi\u002Fagent\u002Freveal",{"type":33,"value":127},{"type":33,"value":2519}," A native app can bring a window forward or reveal a folder itself.",{"type":24,"tag":153,"props":2521,"children":2523},{"id":2522},"_6-what-is-shown-and-what-is-masked-built-in-phase-3-streammask",[2524,2526,2532],{"type":33,"value":2525},"6. What is shown, and what is masked (built in Phase 3: ",{"type":24,"tag":38,"props":2527,"children":2529},{"className":2528},[],[2530],{"type":33,"value":2531},"stream::mask",{"type":33,"value":379},{"type":24,"tag":25,"props":2534,"children":2535},{},[2536,2542,2544,2550,2552,2558,2559,2565],{"type":24,"tag":38,"props":2537,"children":2539},{"className":2538},[],[2540],{"type":33,"value":2541},"installation.details",{"type":33,"value":2543}," is documented as secrets-bearing (",{"type":24,"tag":38,"props":2545,"children":2547},{"className":2546},[],[2548],{"type":33,"value":2549},"scan.rs:236-238",{"type":33,"value":2551},"). Live Activity masks its ",{"type":24,"tag":38,"props":2553,"children":2555},{"className":2554},[],[2556],{"type":33,"value":2557},"mcp_servers[].env",{"type":33,"value":401},{"type":24,"tag":38,"props":2560,"children":2562},{"className":2561},[],[2563],{"type":33,"value":2564},"headers",{"type":33,"value":2566}," values before showing or copying them, and offers a deliberate reveal.",{"type":24,"tag":25,"props":2568,"children":2569},{},[2570],{"type":33,"value":2571},"The code does not document these as secret, but they carry user content and are masked the same way until the sensor's engineer says otherwise:",{"type":24,"tag":202,"props":2573,"children":2574},{},[2575,2580,2607,2612,2622],{"type":24,"tag":175,"props":2576,"children":2577},{},[2578],{"type":33,"value":2579},"HTTP headers;",{"type":24,"tag":175,"props":2581,"children":2582},{},[2583,2585,2591,2592,2598,2599,2605],{"type":33,"value":2584},"MCP ",{"type":24,"tag":38,"props":2586,"children":2588},{"className":2587},[],[2589],{"type":33,"value":2590},"params",{"type":33,"value":53},{"type":24,"tag":38,"props":2593,"children":2595},{"className":2594},[],[2596],{"type":33,"value":2597},"result",{"type":33,"value":401},{"type":24,"tag":38,"props":2600,"children":2602},{"className":2601},[],[2603],{"type":33,"value":2604},"error.data",{"type":33,"value":2606},";",{"type":24,"tag":175,"props":2608,"children":2609},{},[2610],{"type":33,"value":2611},"tool arguments and output;",{"type":24,"tag":175,"props":2613,"children":2614},{},[2615,2621],{"type":24,"tag":38,"props":2616,"children":2618},{"className":2617},[],[2619],{"type":33,"value":2620},"llm.request.system_instructions",{"type":33,"value":2606},{"type":24,"tag":175,"props":2623,"children":2624},{},[2625,2631,2632,2638],{"type":24,"tag":38,"props":2626,"children":2628},{"className":2627},[],[2629],{"type":33,"value":2630},"exec.spawn.argv",{"type":33,"value":401},{"type":24,"tag":38,"props":2633,"children":2635},{"className":2634},[],[2636],{"type":33,"value":2637},"process.started.argv",{"type":33,"value":127},{"type":24,"tag":25,"props":2640,"children":2641},{},[2642,2644,2650],{"type":33,"value":2643},"A masked value reads ",{"type":24,"tag":38,"props":2645,"children":2647},{"className":2646},[],[2648],{"type":33,"value":2649},"•••• masked (N chars)",{"type":33,"value":2651}," everywhere a row shows it: summary, preview and JSON. Reveal shows them on that page until it is masked again, and Copy JSON copies what is shown.",{"type":24,"tag":25,"props":2653,"children":2654},{},[2655,2657,2662,2663,2668],{"type":33,"value":2656},"Ids that are u64 on the wire (",{"type":24,"tag":38,"props":2658,"children":2660},{"className":2659},[],[2661],{"type":33,"value":1884},{"type":33,"value":53},{"type":24,"tag":38,"props":2664,"children":2666},{"className":2665},[],[2667],{"type":33,"value":1678},{"type":33,"value":2669},") can exceed 2^53. The web page loses precision on them; the app parses them as 64-bit integers and does not.",{"type":24,"tag":153,"props":2671,"children":2673},{"id":2672},"_7-asks-of-the-sensor",[2674],{"type":33,"value":19},{"type":24,"tag":25,"props":2676,"children":2677},{},[2678],{"type":33,"value":2679},"The app builds on today's stream as it is. These are recorded, not waited on. Each has why it matters and what we would accept if the answer is \"not now\".",{"type":24,"tag":478,"props":2681,"children":2682},{},[2683,2709],{"type":24,"tag":482,"props":2684,"children":2685},{},[2686],{"type":24,"tag":486,"props":2687,"children":2688},{},[2689,2694,2699,2704],{"type":24,"tag":490,"props":2690,"children":2691},{},[2692],{"type":33,"value":2693},"#",{"type":24,"tag":490,"props":2695,"children":2696},{},[2697],{"type":33,"value":2698},"Ask",{"type":24,"tag":490,"props":2700,"children":2701},{},[2702],{"type":33,"value":2703},"Why",{"type":24,"tag":490,"props":2705,"children":2706},{},[2707],{"type":33,"value":2708},"We would accept",{"type":24,"tag":511,"props":2710,"children":2711},{},[2712,2769,2797,2845,2871,2914],{"type":24,"tag":486,"props":2713,"children":2714},{},[2715,2720,2753,2764],{"type":24,"tag":518,"props":2716,"children":2717},{},[2718],{"type":33,"value":2719},"1",{"type":24,"tag":518,"props":2721,"children":2722},{},[2723,2728,2730,2736,2738,2744,2745,2751],{"type":24,"tag":29,"props":2724,"children":2725},{},[2726],{"type":33,"value":2727},"A cursor.",{"type":33,"value":2729}," An ",{"type":24,"tag":38,"props":2731,"children":2733},{"className":2732},[],[2734],{"type":33,"value":2735},"id:",{"type":33,"value":2737}," on each frame, and a way to resume from one (",{"type":24,"tag":38,"props":2739,"children":2741},{"className":2740},[],[2742],{"type":33,"value":2743},"Last-Event-ID",{"type":33,"value":349},{"type":24,"tag":38,"props":2746,"children":2748},{"className":2747},[],[2749],{"type":33,"value":2750},"?since=",{"type":33,"value":2752},"), from a short ring in the hub.",{"type":24,"tag":518,"props":2754,"children":2755},{},[2756,2758,2763],{"type":33,"value":2757},"A reload, a restart or a lag currently loses events silently. Events cannot be trusted as a record without it. The app's parser already keeps ",{"type":24,"tag":38,"props":2759,"children":2761},{"className":2760},[],[2762],{"type":33,"value":2735},{"type":33,"value":127},{"type":24,"tag":518,"props":2765,"children":2766},{},[2767],{"type":33,"value":2768},"No cursor, with ask 2.",{"type":24,"tag":486,"props":2770,"children":2771},{},[2772,2777,2787,2792],{"type":24,"tag":518,"props":2773,"children":2774},{},[2775],{"type":33,"value":2776},"2",{"type":24,"tag":518,"props":2778,"children":2779},{},[2780,2785],{"type":24,"tag":29,"props":2781,"children":2782},{},[2783],{"type":33,"value":2784},"A gap marker.",{"type":33,"value":2786}," When a subscriber lags, a frame that says how many records were dropped, in place of a bare disconnect.",{"type":24,"tag":518,"props":2788,"children":2789},{},[2790],{"type":33,"value":2791},"The person should see \"312 events missed\", not a clean-looking list with a hole in it.",{"type":24,"tag":518,"props":2793,"children":2794},{},[2795],{"type":33,"value":2796},"The count on the next connect.",{"type":24,"tag":486,"props":2798,"children":2799},{},[2800,2805,2835,2840],{"type":24,"tag":518,"props":2801,"children":2802},{},[2803],{"type":33,"value":2804},"3",{"type":24,"tag":518,"props":2806,"children":2807},{},[2808,2813,2814,2820,2821,2827,2828,2834],{"type":24,"tag":29,"props":2809,"children":2810},{},[2811],{"type":33,"value":2812},"A filter on the server.",{"type":33,"value":184},{"type":24,"tag":38,"props":2815,"children":2817},{"className":2816},[],[2818],{"type":33,"value":2819},"?families=",{"type":33,"value":53},{"type":24,"tag":38,"props":2822,"children":2824},{"className":2823},[],[2825],{"type":33,"value":2826},"?min_severity=",{"type":33,"value":53},{"type":24,"tag":38,"props":2829,"children":2831},{"className":2830},[],[2832],{"type":33,"value":2833},"?entity_id=",{"type":33,"value":127},{"type":24,"tag":518,"props":2836,"children":2837},{},[2838],{"type":33,"value":2839},"Events needs a fraction of the firehose. Sending all of it costs the sensor serialisation and the app parsing.",{"type":24,"tag":518,"props":2841,"children":2842},{},[2843],{"type":33,"value":2844},"None; the app filters and coalesces.",{"type":24,"tag":486,"props":2846,"children":2847},{},[2848,2853,2861,2866],{"type":24,"tag":518,"props":2849,"children":2850},{},[2851],{"type":33,"value":2852},"4",{"type":24,"tag":518,"props":2854,"children":2855},{},[2856],{"type":24,"tag":29,"props":2857,"children":2858},{},[2859],{"type":33,"value":2860},"A snapshot for the new subscriber only.",{"type":24,"tag":518,"props":2862,"children":2863},{},[2864],{"type":33,"value":2865},"Today every connect makes the monitor re-scan installations and broadcast two snapshots to everyone. An app that opens and closes a page pays that each time, and so do the other subscribers.",{"type":24,"tag":518,"props":2867,"children":2868},{},[2869],{"type":33,"value":2870},"The broadcast, kept throttled.",{"type":24,"tag":486,"props":2872,"children":2873},{},[2874,2879,2904,2909],{"type":24,"tag":518,"props":2875,"children":2876},{},[2877],{"type":33,"value":2878},"5",{"type":24,"tag":518,"props":2880,"children":2881},{},[2882,2887,2889,2895,2897,2902],{"type":24,"tag":29,"props":2883,"children":2884},{},[2885],{"type":33,"value":2886},"The id spaces, stated.",{"type":33,"value":2888}," Does ",{"type":24,"tag":38,"props":2890,"children":2892},{"className":2891},[],[2893],{"type":33,"value":2894},"mcp.*.exchange_id",{"type":33,"value":2896}," share its space with ",{"type":24,"tag":38,"props":2898,"children":2900},{"className":2899},[],[2901],{"type":33,"value":1892},{"type":33,"value":2903},"?",{"type":24,"tag":518,"props":2905,"children":2906},{},[2907],{"type":33,"value":2908},"Events would join an MCP call to its HTTP exchange.",{"type":24,"tag":518,"props":2910,"children":2911},{},[2912],{"type":33,"value":2913},"A \"no\", and the app keeps them apart.",{"type":24,"tag":486,"props":2915,"children":2916},{},[2917,2922,2940,2945],{"type":24,"tag":518,"props":2918,"children":2919},{},[2920],{"type":33,"value":2921},"6",{"type":24,"tag":518,"props":2923,"children":2924},{},[2925,2930,2932,2938],{"type":24,"tag":29,"props":2926,"children":2927},{},[2928],{"type":33,"value":2929},"A key that forbids developer mode",{"type":33,"value":2931}," on a company's machines, whatever the build (review stop 0, call 8: proposed). Where would it live in ",{"type":24,"tag":38,"props":2933,"children":2935},{"className":2934},[],[2936],{"type":33,"value":2937},"qconfig",{"type":33,"value":2939},", and may the app read it?",{"type":24,"tag":518,"props":2941,"children":2942},{},[2943],{"type":33,"value":2944},"A company that ships the full build can still say no.",{"type":24,"tag":518,"props":2946,"children":2947},{},[2948],{"type":33,"value":2949},"The lean build, which carries no developer mode at all.",{"type":24,"tag":25,"props":2951,"children":2952},{},[2953,2955,2961],{"type":33,"value":2954},"Asks 1 and 4 touch the sensor's own cost, which is the point of ",{"type":24,"tag":708,"props":2956,"children":2958},{"href":2957},"\u002Fcycles\u002Fqnative\u002Fc3\u002Fdoc\u002Fguide\u002F07-footprint",[2959],{"type":33,"value":2960},"Footprint",{"type":33,"value":127},{"type":24,"tag":2963,"props":2964,"children":2965},"style",{},[2966],{"type":33,"value":307},1794599378738]