[{"data":1,"prerenderedAt":1663},["ShallowReactive",2],{"$fgmTDYO2bsaCxXkrzHAmswRwxtDUSmbmhmNeBeWlp_68":3},{"newThing":4,"project":5,"cycle":9,"sections":24,"threads":1531,"otherDocs":1532,"documents":1534,"images":1539,"archiveItems":1658,"links":1659},"The lean build",{"id":6,"label":7,"liveBase":8},"qnative","Qnative (provisional)",null,{"id":10,"num":11,"dir":12,"name":13,"title":14,"focus":15,"status":16,"statusNote":8,"created":17,"completed":8,"mode":18,"report":8,"recordless":19,"thumbnail":20,"imageCount":21,"artifactCount":22,"lastActivity":23,"hasPickup":19,"hasInitialPrompt":19},"c3",3,"c3.developer-mode","developer-mode","Developer Mode","The app's developer mode, and the Events page above it. Live (qdash's live viewer, replicated on the sensor's current event schema and improved), Monitor (Kamal's monitor TUI, replicated), Sensor (the data switch as a working control), Config (three modes), Guide (how to hook a live sensor). Developer mode is an extension behind one Cargo feature, so a build can carry none of it; where it is allowed, the person can still turn it off. Events, the curated layer of meaning over the same stream, is an ordinary page.","active","2026-11-11","archaeology (two tools that emerged from real use) into evolution, with one formula (the gate).",false,"\u002Fcycles\u002Fqnative\u002Fc3-app-dev-components-light.png",18,2,"2026-11-13",[25,39,185,349],{"key":26,"title":27,"empty":19,"ast":28},"why","Why",{"type":29,"children":30},"root",[31],{"type":32,"tag":33,"props":34,"children":35},"element","p",{},[36],{"type":37,"value":38},"text","The two tools a developer uses to watch the sensor work are leaving or locked inside it: the live viewer lives in qdash, which is leaving qcontrol, and the monitor TUI is the sensor's own process in a dev build. This app is where they go. A customer who measures CPU and memory must pay nothing for them, so the cost is measured, the mode can be switched off, and a build can ship without it. Kamal then points the pages at a sensor on his machine, which works only if what the app expects from the sensor is written down feed by feed.",{"key":40,"title":41,"empty":19,"ast":42},"objective","Objective",{"type":29,"children":43},[44,49],{"type":32,"tag":33,"props":45,"children":46},{},[47],{"type":37,"value":48},"Done means, phase by phase (design's plan has the detail and a review stop after each):",{"type":32,"tag":50,"props":51,"children":53},"ol",{"start":52},0,[54,66,101,119,137,147,157,167],{"type":32,"tag":55,"props":56,"children":57},"li",{},[58,64],{"type":32,"tag":59,"props":60,"children":61},"strong",{},[62],{"type":37,"value":63},"Measure and seam.",{"type":37,"value":65}," The eager construction of the Dev views fixed; Tools and Components moved behind an extension seam; allowed versus on; lean and full builds read in four states with the README recipe; the four-line burden test applied; the decision written up for a Rust expert's review.",{"type":32,"tag":55,"props":67,"children":68},{},[69,74,76,83,85,91,93,99],{"type":32,"tag":59,"props":70,"children":71},{},[72],{"type":37,"value":73},"The Guide, v0, and the stream core.",{"type":37,"value":75}," The seven pages in ",{"type":32,"tag":77,"props":78,"children":80},"code",{"className":79},[],[81],{"type":37,"value":82},"guide\u002F",{"type":37,"value":84},"; ",{"type":32,"tag":77,"props":86,"children":88},{"className":87},[],[89],{"type":37,"value":90},"types",{"type":37,"value":92}," for the event envelope and the monitor shapes; ",{"type":32,"tag":77,"props":94,"children":96},{"className":95},[],[97],{"type":37,"value":98},"subscribe",{"type":37,"value":100}," on the nozzle; the scenario model.",{"type":32,"tag":55,"props":102,"children":103},{},[104,109,111,117],{"type":32,"tag":59,"props":105,"children":106},{},[107],{"type":37,"value":108},"Sensor.",{"type":37,"value":110}," The source changeable while the app runs; worlds, conditions and streams; attach to this machine or an address, with the ladder; ",{"type":32,"tag":77,"props":112,"children":114},{"className":113},[],[115],{"type":37,"value":116},"--check-sensor",{"type":37,"value":118},".",{"type":32,"tag":55,"props":120,"children":121},{},[122,127,129,135],{"type":32,"tag":59,"props":123,"children":124},{},[125],{"type":37,"value":126},"Live.",{"type":37,"value":128}," Parity with qdash ",{"type":32,"tag":77,"props":130,"children":132},{"className":131},[],[133],{"type":37,"value":134},"\u002Flive",{"type":37,"value":136}," by cross-language test vectors, then seven improvements; readings under a stream.",{"type":32,"tag":55,"props":138,"children":139},{},[140,145],{"type":32,"tag":59,"props":141,"children":142},{},[143],{"type":37,"value":144},"Events.",{"type":37,"value":146}," Mark's design, built on the same stream.",{"type":32,"tag":55,"props":148,"children":149},{},[150,155],{"type":32,"tag":59,"props":151,"children":152},{},[153],{"type":37,"value":154},"Monitor.",{"type":37,"value":156}," Six views on synthetic data; honest gaps on a real sensor; the TUI's keys.",{"type":32,"tag":55,"props":158,"children":159},{},[160,165],{"type":32,"tag":59,"props":161,"children":162},{},[163],{"type":37,"value":164},"Config.",{"type":37,"value":166}," Manual, Qplane, Endpoint (a starter, fetched once).",{"type":32,"tag":55,"props":168,"children":169},{},[170,175,177,183],{"type":32,"tag":59,"props":171,"children":172},{},[173],{"type":37,"value":174},"Hand-off.",{"type":37,"value":176}," The Guide made final and moved to ",{"type":32,"tag":77,"props":178,"children":180},{"className":179},[],[181],{"type":37,"value":182},"docs\u002Fdev\u002F",{"type":37,"value":184},"; a session on Kamal's machine.",{"key":186,"title":187,"empty":19,"ast":188},"scope","Scope",{"type":29,"children":189},[190],{"type":32,"tag":191,"props":192,"children":193},"ul",{},[194,297,339],{"type":32,"tag":55,"props":195,"children":196},{},[197,202],{"type":32,"tag":59,"props":198,"children":199},{},[200],{"type":37,"value":201},"Here:",{"type":32,"tag":191,"props":203,"children":204},{},[205,224,242,253,264,275,286],{"type":32,"tag":55,"props":206,"children":207},{},[208,214,216,222],{"type":32,"tag":77,"props":209,"children":211},{"className":210},[],[212],{"type":37,"value":213},"crates\u002Fdevmode",{"type":37,"value":215}," (new: the seven Dev pages, behind the feature ",{"type":32,"tag":77,"props":217,"children":219},{"className":218},[],[220],{"type":37,"value":221},"dev",{"type":37,"value":223},");",{"type":32,"tag":55,"props":225,"children":226},{},[227,233,235,240],{"type":32,"tag":77,"props":228,"children":230},{"className":229},[],[231],{"type":37,"value":232},"crates\u002Fnozzle",{"type":37,"value":234}," (",{"type":32,"tag":77,"props":236,"children":238},{"className":237},[],[239],{"type":37,"value":98},{"type":37,"value":241},", conditions, the runtime swap);",{"type":32,"tag":55,"props":243,"children":244},{},[245,251],{"type":32,"tag":77,"props":246,"children":248},{"className":247},[],[249],{"type":37,"value":250},"crates\u002Ftypes",{"type":37,"value":252}," (the event envelope, the monitor shapes);",{"type":32,"tag":55,"props":254,"children":255},{},[256,262],{"type":32,"tag":77,"props":257,"children":259},{"className":258},[],[260],{"type":37,"value":261},"crates\u002Ffixtures",{"type":37,"value":263}," (stream scripts, more worlds);",{"type":32,"tag":55,"props":265,"children":266},{},[267,273],{"type":32,"tag":77,"props":268,"children":270},{"className":269},[],[271],{"type":37,"value":272},"crates\u002Fapp",{"type":37,"value":274}," (the extension seam: one generic route, one registration line; the Events page);",{"type":32,"tag":55,"props":276,"children":277},{},[278,284],{"type":32,"tag":77,"props":279,"children":281},{"className":280},[],[282],{"type":37,"value":283},"crates\u002Fstories",{"type":37,"value":285}," (a story per page state);",{"type":32,"tag":55,"props":287,"children":288},{},[289,295],{"type":32,"tag":77,"props":290,"children":292},{"className":291},[],[293],{"type":37,"value":294},"cycles\u002Fc3.developer-mode\u002Fguide\u002F",{"type":37,"value":296}," (the Guide while it is a proposal).",{"type":32,"tag":55,"props":298,"children":299},{},[300,305,307,313,315,321,323,329,331,337],{"type":32,"tag":59,"props":301,"children":302},{},[303],{"type":37,"value":304},"Read, never changed:",{"type":37,"value":306}," ",{"type":32,"tag":77,"props":308,"children":310},{"className":309},[],[311],{"type":37,"value":312},"..\u002Fqcontrol",{"type":37,"value":314}," (the live viewer in ",{"type":32,"tag":77,"props":316,"children":318},{"className":317},[],[319],{"type":37,"value":320},"crates\u002Fqdash\u002Fui\u002Fapp",{"type":37,"value":322},", the monitor TUI in ",{"type":32,"tag":77,"props":324,"children":326},{"className":325},[],[327],{"type":37,"value":328},"cli\u002Fsrc\u002Fcommands\u002Fmonitor\u002Fui\u002Fterminal",{"type":37,"value":330}," on ",{"type":32,"tag":77,"props":332,"children":334},{"className":333},[],[335],{"type":37,"value":336},"main",{"type":37,"value":338},").",{"type":32,"tag":55,"props":340,"children":341},{},[342,347],{"type":32,"tag":59,"props":343,"children":344},{},[345],{"type":37,"value":346},"Out:",{"type":37,"value":348}," the feeds themselves, which are asked of the sensor's engineer; the plane's credential exchange; the Status and Connect pages.",{"key":350,"title":351,"empty":19,"ast":352},"key-changes","Key Changes",{"type":29,"children":353},[354],{"type":32,"tag":191,"props":355,"children":356},{},[357,374,549,813,1016,1277,1424],{"type":32,"tag":55,"props":358,"children":359},{},[360,365,367,373],{"type":32,"tag":59,"props":361,"children":362},{},[363],{"type":37,"value":364},"kick-off (2026-11-11):",{"type":37,"value":366}," this record and the Guide v0: seven pages written as proposals from two surveys of qcontrol (the live viewer and its backend; the monitor TUI) and this repository at c2's review stop 3. No code. Phase 0 builds on c2's Tour stretch commit (",{"type":32,"tag":77,"props":368,"children":370},{"className":369},[],[371],{"type":37,"value":372},"9d37433",{"type":37,"value":338},{"type":32,"tag":55,"props":375,"children":376},{},[377,391],{"type":32,"tag":59,"props":378,"children":379},{},[380,382,389],{"type":37,"value":381},"Phase 0, measure and seam (2026-11-11), at review stop 0 (",{"type":32,"tag":383,"props":384,"children":386},"a",{"href":385},"\u002Fcycles\u002Fqnative\u002Fc3\u002Fdoc\u002Freview-0",[387],{"type":37,"value":388},"review-0.md",{"type":37,"value":390},"):",{"type":32,"tag":191,"props":392,"children":393},{},[394,454,482,487,498,503],{"type":32,"tag":55,"props":395,"children":396},{},[397,399,405,407,413,415,421,423,428,430,436,438,444,446,452],{"type":37,"value":398},"Developer mode is an extension the app does not know about. The protocol is ",{"type":32,"tag":77,"props":400,"children":402},{"className":401},[],[403],{"type":37,"value":404},"layer::extension",{"type":37,"value":406},", the registry is ",{"type":32,"tag":77,"props":408,"children":410},{"className":409},[],[411],{"type":37,"value":412},"app::extensions",{"type":37,"value":414},", and one ",{"type":32,"tag":77,"props":416,"children":418},{"className":417},[],[419],{"type":37,"value":420},"Route::Ext(path)",{"type":37,"value":422}," replaces the two Dev routes. A new crate, ",{"type":32,"tag":77,"props":424,"children":426},{"className":425},[],[427],{"type":37,"value":213},{"type":37,"value":429},", holds Tools and Components and is carried only with ",{"type":32,"tag":77,"props":431,"children":433},{"className":432},[],[434],{"type":37,"value":435},"--features dev",{"type":37,"value":437},", through one ",{"type":32,"tag":77,"props":439,"children":441},{"className":440},[],[442],{"type":37,"value":443},"cfg",{"type":37,"value":445}," in ",{"type":32,"tag":77,"props":447,"children":449},{"className":448},[],[450],{"type":37,"value":451},"main.rs",{"type":37,"value":453},". The default build is lean.",{"type":32,"tag":55,"props":455,"children":456},{},[457,459,465,467,473,475,481],{"type":37,"value":458},"Allowed (debug, ",{"type":32,"tag":77,"props":460,"children":462},{"className":461},[],[463],{"type":37,"value":464},"--dev",{"type":37,"value":466},", ",{"type":32,"tag":77,"props":468,"children":470},{"className":469},[],[471],{"type":37,"value":472},"QPOINT_DEV=1",{"type":37,"value":474},", full build only) versus on: a checked item in the tray menu, remembered in the app's first settings file (",{"type":32,"tag":77,"props":476,"children":478},{"className":477},[],[479],{"type":37,"value":480},"app::settings",{"type":37,"value":338},{"type":32,"tag":55,"props":483,"children":484},{},[485],{"type":37,"value":486},"The eager construction is fixed: Dev pages are built when opened and dropped when left.",{"type":32,"tag":55,"props":488,"children":489},{},[490,496],{"type":32,"tag":77,"props":491,"children":493},{"className":492},[],[494],{"type":37,"value":495},"scripts\u002Fcheck-lean.sh",{"type":37,"value":497}," checks the dependency graph and eight strings, with the full build as its control; CI runs it on three OSes once a remote exists.",{"type":32,"tag":55,"props":499,"children":500},{},[501],{"type":37,"value":502},"The burden test passes on all four lines (line 3 on this Mac; CI not yet run), so B holds.",{"type":32,"tag":55,"props":504,"children":505},{},[506,511],{"type":32,"tag":59,"props":507,"children":508},{},[509],{"type":37,"value":510},"Read (strobe, an idle Mac, two rounds):",{"type":32,"tag":191,"props":512,"children":513},{},[514,524,534,544],{"type":32,"tag":55,"props":515,"children":516},{},[517,522],{"type":32,"tag":59,"props":518,"children":519},{},[520],{"type":37,"value":521},"Binary:",{"type":37,"value":523}," lean 23.2 MB, full 24.3 MB (+1.07 MB).",{"type":32,"tag":55,"props":525,"children":526},{},[527,532],{"type":32,"tag":59,"props":528,"children":529},{},[530],{"type":37,"value":531},"At rest:",{"type":37,"value":533}," 60–63 MB quiet in every state with no Dev page shown (lean, full not allowed, full on, full turned off), at 0.002–0.006% of a core.",{"type":32,"tag":55,"props":535,"children":536},{},[537,542],{"type":32,"tag":59,"props":538,"children":539},{},[540],{"type":37,"value":541},"The Components page shown:",{"type":37,"value":543}," 65.0 and 65.3 MB.",{"type":32,"tag":55,"props":545,"children":546},{},[547],{"type":37,"value":548},"So the lean build buys about a megabyte on disk and nothing measurable at rest; looking at a Dev page costs a few MB.",{"type":32,"tag":55,"props":550,"children":551},{},[552,571],{"type":32,"tag":59,"props":553,"children":554},{},[555,557,563,564,570],{"type":37,"value":556},"Phase 1, the stream core (2026-11-11, on Mark's night ruling: Phases 1–3 in sequence, the calls collected at the end of Phase 3; built in ",{"type":32,"tag":77,"props":558,"children":560},{"className":559},[],[561],{"type":37,"value":562},"..\u002Fqnative-c3",{"type":37,"value":330},{"type":32,"tag":77,"props":565,"children":567},{"className":566},[],[568],{"type":37,"value":569},"c3\u002Fphases",{"type":37,"value":390},{"type":32,"tag":191,"props":572,"children":573},{},[574,646,663,703,727,790,808],{"type":32,"tag":55,"props":575,"children":576},{},[577,582,583,588,590,596,598,604,606,612,614,620,622,628,630,636,638,644],{"type":32,"tag":59,"props":578,"children":579},{},[580],{"type":37,"value":581},"The connection",{"type":37,"value":234},{"type":32,"tag":77,"props":584,"children":586},{"className":585},[],[587],{"type":37,"value":232},{"type":37,"value":589},"): ",{"type":32,"tag":77,"props":591,"children":593},{"className":592},[],[594],{"type":37,"value":595},"sse",{"type":37,"value":597}," is a WHATWG event-stream parser, incremental, tested in every chunking. ",{"type":32,"tag":77,"props":599,"children":601},{"className":600},[],[602],{"type":37,"value":603},"stream",{"type":37,"value":605}," holds ",{"type":32,"tag":77,"props":607,"children":609},{"className":608},[],[610],{"type":37,"value":611},"Subscription",{"type":37,"value":613},", an async channel a page awaits with no timer. Under it, ",{"type":32,"tag":77,"props":615,"children":617},{"className":616},[],[618],{"type":37,"value":619},"connect",{"type":37,"value":621}," speaks HTTP\u002F1.1 directly to qdash's ",{"type":32,"tag":77,"props":623,"children":625},{"className":624},[],[626],{"type":37,"value":627},"\u002Fapi\u002Fevents\u002Fstream",{"type":37,"value":629},", with the web viewer's reconnect schedule, and turns 403 and 503 into honest Refused states with the sensor's own reason; ",{"type":32,"tag":77,"props":631,"children":633},{"className":632},[],[634],{"type":37,"value":635},"play",{"type":37,"value":637}," drives the synthetic scripts. Dropping a subscription closes its socket within a 250 ms tick. ",{"type":32,"tag":77,"props":639,"children":641},{"className":640},[],[642],{"type":37,"value":643},"Repo::subscribe()",{"type":37,"value":645}," sits on top. The plane says it has no stream.",{"type":32,"tag":55,"props":647,"children":648},{},[649,654,655,661],{"type":32,"tag":59,"props":650,"children":651},{},[652],{"type":37,"value":653},"The scenario model",{"type":37,"value":234},{"type":32,"tag":77,"props":656,"children":658},{"className":657},[],[659],{"type":37,"value":660},"nozzle::scenario",{"type":37,"value":662},"): world, condition and stream. Six conditions; one per process.",{"type":32,"tag":55,"props":664,"children":665},{},[666,671,672,677,679,685,687,693,695,701],{"type":32,"tag":59,"props":667,"children":668},{},[669],{"type":37,"value":670},"The data model",{"type":37,"value":234},{"type":32,"tag":77,"props":673,"children":675},{"className":674},[],[676],{"type":37,"value":250},{"type":37,"value":678},"): the envelope and the four Monitor shapes are TypeScript beside the Guide (",{"type":32,"tag":77,"props":680,"children":682},{"className":681},[],[683],{"type":37,"value":684},"guide\u002Ftypes\u002F",{"type":37,"value":686},"), generated by ",{"type":32,"tag":77,"props":688,"children":690},{"className":689},[],[691],{"type":37,"value":692},"scripts\u002Fts-to-rust.py --from",{"type":37,"value":694},". Each field is marked read from code (with its qcontrol file and line) or proposed. ",{"type":32,"tag":77,"props":696,"children":698},{"className":697},[],[699],{"type":37,"value":700},"events",{"type":37,"value":702}," holds the vocabulary: 14 families, entity ids, severity, and RFC 3339 nanoseconds both ways.",{"type":32,"tag":55,"props":704,"children":705},{},[706,711,712,718,720,726],{"type":32,"tag":59,"props":707,"children":708},{},[709],{"type":37,"value":710},"The stream scripts",{"type":37,"value":234},{"type":32,"tag":77,"props":713,"children":715},{"className":714},[],[716],{"type":37,"value":717},"fixtures::streams",{"type":37,"value":719},"): quiet, coding-session, mcp-heavy and file-storm, written to qevents' payloads as read from code. The full reference is filed in ",{"type":32,"tag":77,"props":721,"children":723},{"className":722},[],[724],{"type":37,"value":725},"research\u002Fqevents-payloads.md",{"type":37,"value":118},{"type":32,"tag":55,"props":728,"children":729},{},[730,735,736,742,744,750,752,758,759,765,766,772,774,780,782,788],{"type":32,"tag":59,"props":731,"children":732},{},[733],{"type":37,"value":734},"The stream core",{"type":37,"value":234},{"type":32,"tag":77,"props":737,"children":739},{"className":738},[],[740],{"type":37,"value":741},"crates\u002Fstream",{"type":37,"value":743},", new): ",{"type":32,"tag":77,"props":745,"children":747},{"className":746},[],[748],{"type":37,"value":749},"ingest",{"type":37,"value":751}," ports qdash's ",{"type":32,"tag":77,"props":753,"children":755},{"className":754},[],[756],{"type":37,"value":757},"ingestEvent",{"type":37,"value":466},{"type":32,"tag":77,"props":760,"children":762},{"className":761},[],[763],{"type":37,"value":764},"ingestParseError",{"type":37,"value":466},{"type":32,"tag":77,"props":767,"children":769},{"className":768},[],[770],{"type":37,"value":771},"sortedEvents",{"type":37,"value":773}," and ",{"type":32,"tag":77,"props":775,"children":777},{"className":776},[],[778],{"type":37,"value":779},"parseRunLog",{"type":37,"value":781},". It is held to the web by cross-language vectors: qdash's own TypeScript, bundled read-only, run over a 615-line corpus with edge lines (",{"type":32,"tag":77,"props":783,"children":785},{"className":784},[],[786],{"type":37,"value":787},"scripts\u002Flive-vectors.sh",{"type":37,"value":789},"). All 615 agree, and so does the sort order.",{"type":32,"tag":55,"props":791,"children":792},{},[793,798,800,806],{"type":32,"tag":59,"props":794,"children":795},{},[796],{"type":37,"value":797},"Guide page 3",{"type":37,"value":799}," is now ",{"type":32,"tag":383,"props":801,"children":803},{"href":802},"\u002Fcycles\u002Fqnative\u002Fc3\u002Fdoc\u002Fguide\u002F03-live-activity",[804],{"type":37,"value":805},"Live Activity",{"type":37,"value":807},": connection methods, the ladder, the data (read or guessed), the pipeline, the states and six asks. Page 6 records the built scripts.",{"type":32,"tag":55,"props":809,"children":810},{},[811],{"type":37,"value":812},"87 workspace tests pass, with no warnings.",{"type":32,"tag":55,"props":814,"children":815},{},[816,821],{"type":32,"tag":59,"props":817,"children":818},{},[819],{"type":37,"value":820},"Phase 2, Source (2026-11-11):",{"type":32,"tag":191,"props":822,"children":823},{},[824,841,923,940,957,982,1011],{"type":32,"tag":55,"props":825,"children":826},{},[827,832,833,839],{"type":32,"tag":59,"props":828,"children":829},{},[830],{"type":37,"value":831},"Dev › Source",{"type":37,"value":234},{"type":32,"tag":77,"props":834,"children":836},{"className":835},[],[837],{"type":37,"value":838},"crates\u002Fdevmode\u002Fsrc\u002Fsource.rs",{"type":37,"value":840},") is the plan's Sensor page, named Source because c5's V1 Sensor sits under This machine. It offers synthetic data (a world, a condition, a stream and its rate) or a real sensor on this machine or at an address. A choice applies at once through the one re-open path and is saved; the next start applies it unless a flag or the environment says otherwise. A story covers each rung, plus synthetic and an address.",{"type":32,"tag":55,"props":842,"children":843},{},[844,853,855,861,862,868,869,875,876,882,883,889,891,897,899,905,907,913,915,921],{"type":32,"tag":59,"props":845,"children":846},{},[847],{"type":32,"tag":77,"props":848,"children":850},{"className":849},[],[851],{"type":37,"value":852},"host",{"type":37,"value":854}," (new crate) answers the Rust expert's question 2. It holds ",{"type":32,"tag":77,"props":856,"children":858},{"className":857},[],[859],{"type":37,"value":860},"RepoHandle",{"type":37,"value":466},{"type":32,"tag":77,"props":863,"children":865},{"className":864},[],[866],{"type":37,"value":867},"Generation",{"type":37,"value":466},{"type":32,"tag":77,"props":870,"children":872},{"className":871},[],[873],{"type":37,"value":874},"repo",{"type":37,"value":466},{"type":32,"tag":77,"props":877,"children":879},{"className":878},[],[880],{"type":37,"value":881},"generation",{"type":37,"value":773},{"type":32,"tag":77,"props":884,"children":886},{"className":885},[],[887],{"type":37,"value":888},"reopen",{"type":37,"value":890},", moved out of ",{"type":32,"tag":77,"props":892,"children":894},{"className":893},[],[895],{"type":37,"value":896},"app::router",{"type":37,"value":898}," (which re-exports them), and a ",{"type":32,"tag":77,"props":900,"children":902},{"className":901},[],[903],{"type":37,"value":904},"Store",{"type":37,"value":906}," of saved values the app installs over ",{"type":32,"tag":77,"props":908,"children":910},{"className":909},[],[911],{"type":37,"value":912},"settings.json",{"type":37,"value":914},". The extension protocol gains an optional ",{"type":32,"tag":77,"props":916,"children":918},{"className":917},[],[919],{"type":37,"value":920},"start",{"type":37,"value":922}," hook.",{"type":32,"tag":55,"props":924,"children":925},{},[926,931,932,938],{"type":32,"tag":59,"props":927,"children":928},{},[929],{"type":37,"value":930},"The condition wrapper",{"type":37,"value":234},{"type":32,"tag":77,"props":933,"children":935},{"className":934},[],[936],{"type":37,"value":937},"nozzle::scenario::Conditioned",{"type":37,"value":939},"): six conditions, each drawn through the real pipes.",{"type":32,"tag":55,"props":941,"children":942},{},[943,948,949,955],{"type":32,"tag":59,"props":944,"children":945},{},[946],{"type":37,"value":947},"The ladder",{"type":37,"value":234},{"type":32,"tag":77,"props":950,"children":952},{"className":951},[],[953],{"type":37,"value":954},"nozzle::ladder",{"type":37,"value":956},"): Not found (including a stale lock), Found, Answering, Streaming, Lost and Refused, tested against fake sensors on loopback.",{"type":32,"tag":55,"props":958,"children":959},{},[960,965,966,972,974,980],{"type":32,"tag":59,"props":961,"children":962},{},[963],{"type":37,"value":964},"The doctor",{"type":37,"value":466},{"type":32,"tag":77,"props":967,"children":969},{"className":968},[],[970],{"type":37,"value":971},"app --check-sensor [--sensor-url …]",{"type":37,"value":973},". Run for real on this Mac, it found a stale lock (pid 54415). Against the seed ",{"type":32,"tag":77,"props":975,"children":977},{"className":976},[],[978],{"type":37,"value":979},"qdash serve",{"type":37,"value":981}," on :7882 it reached Refused with qdash's own 503 sentence.",{"type":32,"tag":55,"props":983,"children":984},{},[985,994,996,1002,1004,1010],{"type":32,"tag":59,"props":986,"children":987},{},[988],{"type":32,"tag":77,"props":989,"children":991},{"className":990},[],[992],{"type":37,"value":993},"Local::at",{"type":37,"value":995}," attaches to an address, and the footer says ",{"type":32,"tag":77,"props":997,"children":999},{"className":998},[],[1000],{"type":37,"value":1001},"sensor at …",{"type":37,"value":1003},". The macOS data dir is fixed (",{"type":32,"tag":77,"props":1005,"children":1007},{"className":1006},[],[1008],{"type":37,"value":1009},"com.qpoint.qcontrol",{"type":37,"value":338},{"type":32,"tag":55,"props":1012,"children":1013},{},[1014],{"type":37,"value":1015},"Guide pages 2, 3 and 6 now say what is built.",{"type":32,"tag":55,"props":1017,"children":1018},{},[1019,1024],{"type":32,"tag":59,"props":1020,"children":1021},{},[1022],{"type":37,"value":1023},"Phase 3, Live Activity (2026-11-11):",{"type":32,"tag":191,"props":1025,"children":1026},{},[1027,1051,1109,1154,1171,1211,1260],{"type":32,"tag":55,"props":1028,"children":1029},{},[1030,1035,1036,1042,1044,1049],{"type":32,"tag":59,"props":1031,"children":1032},{},[1033],{"type":37,"value":1034},"Dev › Live Activity",{"type":37,"value":234},{"type":32,"tag":77,"props":1037,"children":1039},{"className":1038},[],[1040],{"type":37,"value":1041},"crates\u002Fdevmode\u002Fsrc\u002Flive.rs",{"type":37,"value":1043},") is qdash's ",{"type":32,"tag":77,"props":1045,"children":1047},{"className":1046},[],[1048],{"type":37,"value":134},{"type":37,"value":1050}," on the sensor's current envelope: a state line, a harnesses row, Events and Tally, a rail of severity, harnesses and families, a virtual table that follows the live edge, a detail pane, retention (5k, 20k or 100k), and file mode (open a JSONL run log; return to live). The page owns its subscription inside a task, so leaving the page ends the feed.",{"type":32,"tag":55,"props":1052,"children":1053},{},[1054,1059],{"type":32,"tag":59,"props":1055,"children":1056},{},[1057],{"type":37,"value":1058},"The seven improvements:",{"type":32,"tag":50,"props":1060,"children":1061},{},[1062,1067,1072,1083,1088,1093,1098],{"type":32,"tag":55,"props":1063,"children":1064},{},[1065],{"type":37,"value":1066},"a real pause, with a count of what is new;",{"type":32,"tag":55,"props":1068,"children":1069},{},[1070],{"type":37,"value":1071},"honest states (connecting, live with the rate and the last event's age, reconnecting with the reason, refused, no sensor, ended, filtered to nothing);",{"type":32,"tag":55,"props":1073,"children":1074},{},[1075,1081],{"type":32,"tag":77,"props":1076,"children":1078},{"className":1077},[],[1079],{"type":37,"value":1080},"stream::buffer",{"type":37,"value":1082},": a ring of raw frames, a light head, incremental facets and view, rows on demand;",{"type":32,"tag":55,"props":1084,"children":1085},{},[1086],{"type":37,"value":1087},"a tally by process, session or type, beside qdash's own;",{"type":32,"tag":55,"props":1089,"children":1090},{},[1091],{"type":37,"value":1092},"filters for severity, harness and family, process and session, with search over the whole record;",{"type":32,"tag":55,"props":1094,"children":1095},{},[1096],{"type":37,"value":1097},"keys (↑↓ j k, space, t, Esc), milliseconds, clock or ages, and Export JSONL;",{"type":32,"tag":55,"props":1099,"children":1100},{},[1101,1107],{"type":32,"tag":77,"props":1102,"children":1104},{"className":1103},[],[1105],{"type":37,"value":1106},"stream::mask",{"type":37,"value":1108}," on the summary, the preview, the JSON and the copy.",{"type":32,"tag":55,"props":1110,"children":1111},{},[1112,1117,1119,1124,1126],{"type":32,"tag":59,"props":1113,"children":1114},{},[1115],{"type":37,"value":1116},"Parity by cross-language vectors",{"type":37,"value":1118},", all regenerated byte-identical by ",{"type":32,"tag":77,"props":1120,"children":1122},{"className":1121},[],[1123],{"type":37,"value":787},{"type":37,"value":1125},":\n",{"type":32,"tag":191,"props":1127,"children":1128},{},[1129,1134,1139,1144,1149],{"type":32,"tag":55,"props":1130,"children":1131},{},[1132],{"type":37,"value":1133},"ingest and previews: 614 records;",{"type":32,"tag":55,"props":1135,"children":1136},{},[1137],{"type":37,"value":1138},"presence: 99 checkpoints;",{"type":32,"tag":55,"props":1140,"children":1141},{},[1142],{"type":37,"value":1143},"the tally: 63 views and 126 CSVs, byte for byte;",{"type":32,"tag":55,"props":1145,"children":1146},{},[1147],{"type":37,"value":1148},"entity-meta and the projections: filters, counts, trees, chips, rows.",{"type":32,"tag":55,"props":1150,"children":1151},{},[1152],{"type":37,"value":1153},"Four modules were ported by subagents against the vectors. The web quirks are kept, each marked.",{"type":32,"tag":55,"props":1155,"children":1156},{},[1157,1162,1164,1170],{"type":32,"tag":59,"props":1158,"children":1159},{},[1160],{"type":37,"value":1161},"Stories:",{"type":37,"value":1163}," eight, ",{"type":32,"tag":77,"props":1165,"children":1167},{"className":1166},[],[1168],{"type":37,"value":1169},"app-dev-live*",{"type":37,"value":118},{"type":32,"tag":55,"props":1172,"children":1173},{},[1174,1179,1181],{"type":32,"tag":59,"props":1175,"children":1176},{},[1177],{"type":37,"value":1178},"Readings under a stream",{"type":37,"value":1180}," (README Footprint, Guide 07, review-3.md):\n",{"type":32,"tag":191,"props":1182,"children":1183},{},[1184,1189,1194,1199],{"type":32,"tag":55,"props":1185,"children":1186},{},[1187],{"type":37,"value":1188},"As first built, the page cost 28–34% of a core at 100 and 1,000 events a second, nearly all of it main-thread drawing at about 10 ms per redraw.",{"type":32,"tag":55,"props":1190,"children":1191},{},[1192],{"type":37,"value":1193},"Leaving it returns the app to rest (0.003%, 6 threads).",{"type":32,"tag":55,"props":1195,"children":1196},{},[1197],{"type":37,"value":1198},"The page now gathers arrivals for 250 ms and caches the rows on screen, so it redraws at most 4 times a second, the monitor TUI's cadence. The readings at that rate are owed.",{"type":32,"tag":55,"props":1200,"children":1201},{},[1202,1204,1210],{"type":37,"value":1203},"The recipe is ",{"type":32,"tag":77,"props":1205,"children":1207},{"className":1206},[],[1208],{"type":37,"value":1209},"scripts\u002Ffootprint\u002F",{"type":37,"value":118},{"type":32,"tag":55,"props":1212,"children":1213},{},[1214,1219,1221,1227,1229,1235,1237,1243,1245,1251,1252,1258],{"type":32,"tag":59,"props":1215,"children":1216},{},[1217],{"type":37,"value":1218},"CI:",{"type":37,"value":1220}," Linux and Windows had failed on the stories crate. c5's cloud session fixed the cause, the crate's manifest (",{"type":32,"tag":77,"props":1222,"children":1224},{"className":1223},[],[1225],{"type":37,"value":1226},"3725719",{"type":37,"value":1228},"), along with two Windows failures in c3's ladder and events fixture. Run 17 is green on all three systems, and it came into c3 by merge (",{"type":32,"tag":77,"props":1230,"children":1232},{"className":1231},[],[1233],{"type":37,"value":1234},"78238ff",{"type":37,"value":1236},"), replacing c3's per-system exclusion. Phase 3's first run, on c5's push of ",{"type":32,"tag":77,"props":1238,"children":1240},{"className":1239},[],[1241],{"type":37,"value":1242},"4ccf511",{"type":37,"value":1244},", failed on Windows in the projections tests: the corpus read as CRLF counted one line more. Fixed in ",{"type":32,"tag":77,"props":1246,"children":1248},{"className":1247},[],[1249],{"type":37,"value":1250},"948a9b5",{"type":37,"value":234},{"type":32,"tag":77,"props":1253,"children":1255},{"className":1254},[],[1256],{"type":37,"value":1257},".gitattributes",{"type":37,"value":1259}," keeps the vectors LF; the trim no longer assumes LF), not yet pushed.",{"type":32,"tag":55,"props":1261,"children":1262},{},[1263,1268,1270,1276],{"type":32,"tag":59,"props":1264,"children":1265},{},[1266],{"type":37,"value":1267},"The calls:",{"type":37,"value":1269}," fourteen, in review-3.md (the fourteenth, the lean check after c6's merge, ruled (b) and closed by qpoint-io\u002Fqnative#2, ",{"type":32,"tag":77,"props":1271,"children":1273},{"className":1272},[],[1274],{"type":37,"value":1275},"2c435e4",{"type":37,"value":338},{"type":32,"tag":55,"props":1278,"children":1279},{},[1280,1285,1287,1293,1295],{"type":32,"tag":59,"props":1281,"children":1282},{},[1283],{"type":37,"value":1284},"The Monitor's shapes reconciled with the bridge (2026-11-12, design c143, on Mark's word):",{"type":37,"value":1286}," Guide 4 had asked for richer copies of three shapes c131 D17 already names (SensorState without a pid, Resources as totals, LogLine without a target), plus health beside SensorState's ",{"type":32,"tag":77,"props":1288,"children":1290},{"className":1289},[],[1291],{"type":37,"value":1292},"degraded",{"type":37,"value":1294}," and targets beside EffectiveConfig. Now one ask per route:",{"type":32,"tag":191,"props":1296,"children":1297},{},[1298,1369,1403],{"type":32,"tag":55,"props":1299,"children":1300},{},[1301,1307,1309,1315,1316,1322,1324,1330,1331,1336,1338,1344,1345,1351,1353,1359,1361,1367],{"type":32,"tag":77,"props":1302,"children":1304},{"className":1303},[],[1305],{"type":37,"value":1306},"\u002Fapi\u002Fsensor",{"type":37,"value":1308}," carries the Monitor's fields: the monitor's pid, a row per process in its tree with 1 Hz samples behind ",{"type":32,"tag":77,"props":1310,"children":1312},{"className":1311},[],[1313],{"type":37,"value":1314},"?samples_since=",{"type":37,"value":466},{"type":32,"tag":77,"props":1317,"children":1319},{"className":1318},[],[1320],{"type":37,"value":1321},"health",{"type":37,"value":1323}," with the last error (SensorState's ",{"type":32,"tag":77,"props":1325,"children":1327},{"className":1326},[],[1328],{"type":37,"value":1329},"state",{"type":37,"value":773},{"type":32,"tag":77,"props":1332,"children":1334},{"className":1333},[],[1335],{"type":37,"value":1292},{"type":37,"value":1337}," are its rollup), and the log's ",{"type":32,"tag":77,"props":1339,"children":1341},{"className":1340},[],[1342],{"type":37,"value":1343},"target",{"type":37,"value":773},{"type":32,"tag":77,"props":1346,"children":1348},{"className":1347},[],[1349],{"type":37,"value":1350},"seq",{"type":37,"value":1352}," behind ",{"type":32,"tag":77,"props":1354,"children":1356},{"className":1355},[],[1357],{"type":37,"value":1358},"?log_after=",{"type":37,"value":1360},". ",{"type":32,"tag":77,"props":1362,"children":1364},{"className":1363},[],[1365],{"type":37,"value":1366},"\u002Fapi\u002Fconfig",{"type":37,"value":1368},"'s EffectiveConfig carries the loaded targets, behaviors and include globs.",{"type":32,"tag":55,"props":1370,"children":1371},{},[1372,1374,1380,1381,1387,1388,1394,1395,1401],{"type":37,"value":1373},"The Monitor keeps two routes of its own, ",{"type":32,"tag":77,"props":1375,"children":1377},{"className":1376},[],[1378],{"type":37,"value":1379},"\u002Fapi\u002Fmonitor\u002Fworkers",{"type":37,"value":773},{"type":32,"tag":77,"props":1382,"children":1384},{"className":1383},[],[1385],{"type":37,"value":1386},"\u002Fapi\u002Fmonitor\u002Fprocesses",{"type":37,"value":234},{"type":32,"tag":77,"props":1389,"children":1391},{"className":1390},[],[1392],{"type":37,"value":1393},"guide\u002Ftypes\u002Fmonitor.ts",{"type":37,"value":84},{"type":32,"tag":77,"props":1396,"children":1398},{"className":1397},[],[1399],{"type":37,"value":1400},"crates\u002Ftypes\u002Fsrc\u002Fmonitor.rs",{"type":37,"value":1402}," regenerated). No dashboard URL: the app already holds the address it reached.",{"type":32,"tag":55,"props":1404,"children":1405},{},[1406,1408,1414,1416,1422],{"type":37,"value":1407},"The fields are design's bridge (",{"type":32,"tag":77,"props":1409,"children":1411},{"className":1410},[],[1412],{"type":37,"value":1413},"app\u002Fdata\u002Fworlds\u002Fbridge\u002Ftypes.ts",{"type":37,"value":1415},"), mirrored in ",{"type":32,"tag":77,"props":1417,"children":1419},{"className":1418},[],[1420],{"type":37,"value":1421},"crates\u002Ftypes\u002Fsrc\u002Fbridge.rs",{"type":37,"value":1423},", all optional, so V1's Sensor page and the bridge files are unchanged. Two tests pin it: absent reads as not served, and each served field lands. Guide pages 3 and 4 say so; question 3 asks whether the sensor samples always or only with a reader.",{"type":32,"tag":55,"props":1425,"children":1426},{},[1427,1440,1442,1447,1449,1454,1456,1462,1464,1470,1472,1518,1522,1524,1530],{"type":32,"tag":59,"props":1428,"children":1429},{},[1430,1432,1438],{"type":37,"value":1431},"The firehose in qdash's grammar (2026-11-13, ",{"type":32,"tag":77,"props":1433,"children":1435},{"className":1434},[],[1436],{"type":37,"value":1437},"f19e679",{"type":37,"value":1439},", pushed; design c138):",{"type":37,"value":1441}," Mark found qdash's ",{"type":32,"tag":77,"props":1443,"children":1445},{"className":1444},[],[1446],{"type":37,"value":134},{"type":37,"value":1448}," \"cleaner, better color coding, filtering\". It was compared against main's ",{"type":32,"tag":77,"props":1450,"children":1452},{"className":1451},[],[1453],{"type":37,"value":134},{"type":37,"value":1455}," @ ",{"type":32,"tag":77,"props":1457,"children":1459},{"className":1458},[],[1460],{"type":37,"value":1461},"8677b44ed",{"type":37,"value":1463}," on this cycle's corpus, run from a read-only checkout on ",{"type":32,"tag":77,"props":1465,"children":1467},{"className":1466},[],[1468],{"type":37,"value":1469},":3031",{"type":37,"value":1471},". The Events view now draws as qdash's does:",{"type":32,"tag":191,"props":1473,"children":1474},{},[1475,1495,1508,1513],{"type":32,"tag":55,"props":1476,"children":1477},{},[1478,1480,1486,1488,1494],{"type":37,"value":1479},"each type as its family's chip (",{"type":32,"tag":77,"props":1481,"children":1483},{"className":1482},[],[1484],{"type":37,"value":1485},"family_chip",{"type":37,"value":1487},", from main's ",{"type":32,"tag":77,"props":1489,"children":1491},{"className":1490},[],[1492],{"type":37,"value":1493},"familyTone",{"type":37,"value":223},{"type":32,"tag":55,"props":1496,"children":1497},{},[1498,1500,1506],{"type":37,"value":1499},"44 px zebra rows, with time, line and summary in mono and the summary as ",{"type":32,"tag":77,"props":1501,"children":1503},{"className":1502},[],[1504],{"type":37,"value":1505},"key=value",{"type":37,"value":1507}," parts;",{"type":32,"tag":55,"props":1509,"children":1510},{},[1511],{"type":37,"value":1512},"a column header;",{"type":32,"tag":55,"props":1514,"children":1515},{},[1516],{"type":37,"value":1517},"qdash's filter card in place of the rail: the search, severity, active filters with Reset, and Harnesses and Events chip rails with counts.",{"type":32,"tag":1519,"props":1520,"children":1521},"br",{},[],{"type":37,"value":1523},"The seven improvements stay. Still open from design c138's Phase 3: the status pill, presence cards, the buffer cluster, the scroll-away pause, direction, the JSON tree, the tally pivots, drag and drop, and the Audit log. They're listed in ",{"type":32,"tag":77,"props":1525,"children":1527},{"className":1526},[],[1528],{"type":37,"value":1529},"design\u002Fcycles\u002Fc138.developer-mode\u002Flive-parity-plan.md",{"type":37,"value":118},[],[388,1533],"review-3.md",[1535,1537],{"file":388,"title":1536},"Review stop 0: Measure and seam",{"file":1533,"title":1538},"Review stop 3: the stream core, Source, Live Activity (Phases 1–3)",[1540,1550,1556,1562,1567,1573,1583,1589,1595,1601,1607,1613,1622,1628,1634,1640,1646,1652],{"src":1541,"kind":1542,"order":1543,"caption":1544,"thread":1545,"capturedAt":1548,"subject":1549,"route":385},"\u002Fcycles\u002Fqnative\u002Fc3-app-landing-lean-light.png","hero",129,"The lean build, the default: no Dev group, no tray item. Developer mode is not in the binary (scripts\u002Fcheck-lean.sh proves it: the dependency graph and eight strings).",{"id":1546,"label":1547,"date":17},"p0-seam","Phase 0 · developer mode behind the seam, lean by default","2026-11-11T20:02:28.000Z","native\u002Fapp-landing-lean",{"src":1551,"kind":1542,"order":1552,"caption":1553,"thread":1554,"capturedAt":1548,"subject":1555,"route":385},"\u002Fcycles\u002Fqnative\u002Fc3-app-landing-dev-off-light.png",130,"The full build with developer mode turned off in the tray: byte-identical to the lean window (SHA-256 of the two PNGs).",{"id":1546,"label":1547,"date":17},"native\u002Fapp-landing-dev-off",{"src":1557,"kind":1542,"order":1558,"caption":1559,"thread":1560,"capturedAt":1548,"subject":1561,"route":385},"\u002Fcycles\u002Fqnative\u002Fc3-app-dev-tools-light.png",131,"Dev › Tools, now a page of the devmode extension (crates\u002Fdevmode), routed by its path through Route::Ext and built only while it is open.",{"id":1546,"label":1547,"date":17},"native\u002Fapp-dev-tools",{"src":20,"kind":1542,"order":1563,"caption":1564,"thread":1565,"capturedAt":1548,"subject":1566,"route":385},132,"Dev › Components through the seam. Showing it reads 65.0 and 65.3 MB against 61.5 MB with nothing open: looking costs about 4 MB, carrying the code nothing measurable.",{"id":1546,"label":1547,"date":17},"native\u002Fapp-dev-components",{"src":1568,"kind":1542,"order":1569,"caption":1570,"thread":1571,"capturedAt":1548,"subject":1572,"route":385},"\u002Fcycles\u002Fqnative\u002Fc3-app-dev-tools-off-light.png",133,"A Dev page asked for while developer mode is off lands on the overview; the group is gone.",{"id":1546,"label":1547,"date":17},"native\u002Fapp-dev-tools-off",{"src":1574,"kind":1542,"order":1575,"caption":1576,"thread":1577,"capturedAt":1580,"subject":1581,"route":1582},"\u002Fcycles\u002Fqnative\u002Fc3-app-dev-source-synthetic-light.png",171,"Dev › Source, synthetic: a world, a condition (healthy, not running, slow, no live stream, a shape that does not match, lag then cut), a stream and its rate. A choice re-opens the data for every page at once and is saved.",{"id":1578,"label":1579,"date":17},"p2-source","Phase 2 · Dev › Source: where the data comes from, and the ladder","2026-11-11T21:54:42.000Z","native\u002Fapp-dev-source","\u002Fcycles\u002Fqnative\u002Fc3\u002Fdoc\u002Fguide\u002F02-run-it",{"src":1584,"kind":1542,"order":1585,"caption":1586,"thread":1587,"capturedAt":1580,"subject":1588,"route":1582},"\u002Fcycles\u002Fqnative\u002Fc3-app-dev-source-not-found-light.png",172,"This machine, Not found: no lock file in qcontrol's data directory. The ladder says what it checked and what to do.",{"id":1578,"label":1579,"date":17},"native\u002Fapp-dev-source-not-found",{"src":1590,"kind":1542,"order":1591,"caption":1592,"thread":1593,"capturedAt":1580,"subject":1594,"route":1582},"\u002Fcycles\u002Fqnative\u002Fc3-app-dev-source-found-light.png",173,"Found: the lock file names a running pid, but nothing answers at its URL (the dashboard is off).",{"id":1578,"label":1579,"date":17},"native\u002Fapp-dev-source-found",{"src":1596,"kind":1542,"order":1597,"caption":1598,"thread":1599,"capturedAt":1580,"subject":1600,"route":1582},"\u002Fcycles\u002Fqnative\u002Fc3-app-dev-source-streaming-light.png",174,"Streaming: lock file, pid, \u002Fapi\u002Fstats and the event stream all check out (the version is not served yet: c131 D17).",{"id":1578,"label":1579,"date":17},"native\u002Fapp-dev-source-streaming",{"src":1602,"kind":1542,"order":1603,"caption":1604,"thread":1605,"capturedAt":1580,"subject":1606,"route":1582},"\u002Fcycles\u002Fqnative\u002Fc3-app-dev-source-refused-light.png",175,"Refused: a static `qdash serve` answers REST but has no live hub; the 503 sentence is qdash's own, as the doctor read it from the seed backend.",{"id":1578,"label":1579,"date":17},"native\u002Fapp-dev-source-refused",{"src":1608,"kind":1542,"order":1609,"caption":1610,"thread":1611,"capturedAt":1580,"subject":1612,"route":1582},"\u002Fcycles\u002Fqnative\u002Fc3-app-dev-source-address-light.png",176,"An address: the near end of an SSH tunnel, never an opened port. Here an opened port is refused by qdash's host guard (403).",{"id":1578,"label":1579,"date":17},"native\u002Fapp-dev-source-address",{"src":1614,"kind":1542,"order":1615,"caption":1616,"thread":1617,"capturedAt":1620,"subject":1621,"route":802},"\u002Fcycles\u002Fqnative\u002Fc3-app-dev-live-light.png",221,"Live Activity on a synthetic coding session: the state line (rate, the last event's age, kept and MiB), the harnesses row (qdash's presence, ported), the rail (severity, harnesses, families with counts), the firehose newest first.",{"id":1618,"label":1619,"date":17},"p3-live","Phase 3 · Live Activity: qdash's \u002Flive on the current envelope, improved","2026-11-12T00:28:45.000Z","native\u002Fapp-dev-live",{"src":1623,"kind":1542,"order":1624,"caption":1625,"thread":1626,"capturedAt":1620,"subject":1627,"route":802},"\u002Fcycles\u002Fqnative\u002Fc3-app-dev-live-detail-light.png",222,"A tool call opened: chips that filter to its process, session or type; the preview; the record as JSON with its arguments masked everywhere (summary, preview, JSON, copy) until revealed.",{"id":1618,"label":1619,"date":17},"native\u002Fapp-dev-live-detail",{"src":1629,"kind":1542,"order":1630,"caption":1631,"thread":1632,"capturedAt":1620,"subject":1633,"route":802},"\u002Fcycles\u002Fqnative\u002Fc3-app-dev-live-search-light.png",223,"Search reaches the payload (the web searches twelve projected fields): every record that names payments\u002Fclient.rs.",{"id":1618,"label":1619,"date":17},"native\u002Fapp-dev-live-search",{"src":1635,"kind":1542,"order":1636,"caption":1637,"thread":1638,"capturedAt":1620,"subject":1639,"route":802},"\u002Fcycles\u002Fqnative\u002Fc3-app-dev-live-nothing-light.png",224,"Filtered to nothing is its own state: how many are kept, and how to see them.",{"id":1618,"label":1619,"date":17},"native\u002Fapp-dev-live-nothing",{"src":1641,"kind":1542,"order":1642,"caption":1643,"thread":1644,"capturedAt":1620,"subject":1645,"route":802},"\u002Fcycles\u002Fqnative\u002Fc3-app-dev-live-tally-light.png",225,"The tally by process (also by session, by type, and qdash's own by run, which on today's stream is one Unattributed row).",{"id":1618,"label":1619,"date":17},"native\u002Fapp-dev-live-tally",{"src":1647,"kind":1542,"order":1648,"caption":1649,"thread":1650,"capturedAt":1620,"subject":1651,"route":802},"\u002Fcycles\u002Fqnative\u002Fc3-app-dev-live-not-running-light.png",226,"No sensor (the condition 'not running' on Dev › Source): says where it looked and what to do.",{"id":1618,"label":1619,"date":17},"native\u002Fapp-dev-live-not-running",{"src":1653,"kind":1542,"order":1654,"caption":1655,"thread":1656,"capturedAt":1620,"subject":1657,"route":802},"\u002Fcycles\u002Fqnative\u002Fc3-app-dev-live-refused-light.png",227,"Refused: qdash's own 503 sentence for a static qdash serve, drawn through the real pipes by the 'unavailable' condition.",{"id":1618,"label":1619,"date":17},"native\u002Fapp-dev-live-refused",[],[1660,1661,1662],{"route":385,"href":8},{"route":1582,"href":8},{"route":802,"href":8},1794599461925]