[{"data":1,"prerenderedAt":6618},["ShallowReactive",2],{"$fVcWaP6Y_bviBlWI6QqxVC0tN-UF9eznE_0hZBk_Owj0":3},{"from":4,"to":5,"cycles":6,"entries":525,"repos":5976,"releases":6420,"deploys":6437,"captures":6438,"clusters":6539,"subjects":6558,"notes":6614,"week":4,"prev":6616,"next":6617,"current":23},"2026-09-14","2026-09-20",{"started":7,"open":57,"closed":508},[8,25,34,42,50],{"project":9,"projectLabel":10,"id":11,"num":12,"dir":13,"title":14,"focus":15,"status":16,"thumbnail":17,"started":18,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":21,"quietWeeks":22,"stale":23,"active":24},"design","Design","c92",92,"c92.qcontrol-new-pages","qcontrol New Pages","Stand up the c90 qcontrol-preview pages in the real qcontrol app (qdash UI) — phase 1 the combined Teams, Users & Devices listing, alongside a qdash global filter that replicates app.qpoint.io's behaviour, then the remaining detail\u002Flisting pages","active","\u002Fcycles\u002Fdesign\u002Fc92-actor-header.png","2026-09-18","record",null,1,0,false,true,{"project":9,"projectLabel":10,"id":26,"num":27,"dir":28,"title":29,"focus":30,"status":31,"thumbnail":32,"started":33,"startedSource":19,"closed":18,"closedSource":19,"openWeeks":21,"quietWeeks":22,"stale":23,"active":24},"c91",91,"c91.data-machine","DataMachine","Build the `DataMachine` composition component and document the base-component + curated-preset pattern it embodies","archived","\u002Fcycles\u002Fdesign\u002Fc91-data-machine.png","2026-09-17",{"project":9,"projectLabel":10,"id":35,"num":36,"dir":37,"title":38,"focus":39,"status":16,"thumbnail":40,"started":41,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":21,"quietWeeks":22,"stale":23,"active":24},"c90",90,"c90.qcontrol-preview","qcontrol Preview","Assemble seven page mocks (Teams & Users, User Details, Team Details, Sessions, Session Details, Devices, Device Details) behind shared app chrome that mimics the real qcontrol shell, ahead of integration with the real app","\u002Fcycles\u002Fdesign\u002Fc90-device-details.png","2026-09-16",{"project":9,"projectLabel":10,"id":43,"num":44,"dir":45,"title":46,"focus":47,"status":16,"thumbnail":48,"started":49,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":21,"quietWeeks":22,"stale":23,"active":24},"c89",89,"c89.teams-sessions-listings","Teams–Sessions Listings","First-pass mocks for Teams listing header upgrade and net-new Sessions listing page in phase1 dashboard style","\u002Fcycles\u002Fdesign\u002Fc89-sessions.png","2026-09-15",{"project":9,"projectLabel":10,"id":51,"num":52,"dir":53,"title":54,"focus":55,"status":16,"thumbnail":56,"started":49,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":21,"quietWeeks":22,"stale":23,"active":24},"c88",88,"c88.global-filter","Global Filter","Extract app.qpoint.io's global filter into q-nuxt-layer as presentational components (Phase 1), then design and build a v2 segmented-bar redesign (Phase 2).","\u002Fcycles\u002Fdesign\u002Fc88-filter-add-modal.png",[58,67,75,84,90,99,107,116,124,130,138,147,153,161,167,174,181,189,197,205,212,219,225,231,237,244,248,256,264,272,279,289,295,301,308,315,321,331,338,344,351,359,365,374,380,387,393,398,403,407,411,419,428,436,443,446,449,454,459,463,467,473,479,486,491,496,503],{"project":9,"projectLabel":10,"id":59,"num":60,"dir":61,"title":62,"focus":63,"status":16,"thumbnail":64,"started":65,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":66,"quietWeeks":21,"stale":23,"active":23},"c84",84,"c84.cycles-status-page","Cycles Status Page","Redesign `\u002Fcycles` into a living Design status surface - working now, decisions, seeds, blocked work, abandoned ideas, and the existing atlas","\u002Fcycles\u002Fdesign\u002Fc84-cycles-status-m1-workboard.png","2026-09-03",3,{"project":9,"projectLabel":10,"id":68,"num":69,"dir":70,"title":71,"focus":72,"status":16,"thumbnail":73,"started":74,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":66,"quietWeeks":21,"stale":23,"active":23},"c81",81,"c81.phase1-pages","Phase 1 Pages","First-pass mocks for all 17 Phase-1 dashboard pages (Linear PRO-19…35) on one unified fixture world — the simplest literal execution of the listing → expand → detail → actor-web pattern","\u002Fcycles\u002Fdesign\u002Fc81-accounts-clear.png","2026-09-01",{"project":76,"projectLabel":77,"id":78,"num":79,"dir":80,"title":81,"focus":82,"status":16,"thumbnail":20,"started":65,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":66,"quietWeeks":83,"stale":23,"active":23},"market-analyst","Market Analyst","c11",11,"c11.conversation-profiles","Conversation Profiles","Declare the nature of each conversation at triage (source type × call type), tag every observation with the speaker's perspective (first-hand \u002F relayed \u002F internal), enforce evidence ceilings and a code-computed validation gate, extract session records (decisions \u002F todos \u002F ideas) from working sessions, and formalize the conversations → insights → brief hand-off into the design machine.",2,{"project":9,"projectLabel":10,"id":85,"num":86,"dir":87,"title":88,"focus":20,"status":16,"thumbnail":20,"started":74,"startedSource":89,"closed":20,"closedSource":20,"openWeeks":66,"quietWeeks":83,"stale":23,"active":23},"c76",76,"c76.simpler-light-dark-mode-colors","simpler light dark mode colors","git",{"project":91,"projectLabel":92,"id":93,"num":94,"dir":95,"title":96,"focus":97,"status":16,"thumbnail":20,"started":98,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":66,"quietWeeks":83,"stale":23,"active":23},"bob-wire","Bob-Wire","c21",21,"c21.inventory","Inventory + Users \u002F Devices","Design refinement of qcontrol's Inventory and Users\u002FDevices pages, driven by Mark Peterson advisor call","2026-08-31",{"project":9,"projectLabel":10,"id":100,"num":101,"dir":102,"title":103,"focus":104,"status":16,"thumbnail":20,"started":105,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":106,"quietWeeks":83,"stale":23,"active":23},"c80",80,"c80.brotli-stream-termination","brotli-stream-termination","qproxy MITM truncates streamed brotli response bodies — client apps show `Decompression error: BrotliDecompressionError`","2026-08-27",4,{"project":9,"projectLabel":10,"id":108,"num":109,"dir":110,"title":111,"focus":112,"status":31,"thumbnail":20,"started":113,"startedSource":19,"closed":114,"closedSource":19,"openWeeks":115,"quietWeeks":83,"stale":23,"active":23},"c78",78,"c78.fleet-overview-reports","fleet-overview-reports","Design the four product reports (Compliance, SLA Insights, Inventory, Board) and the fleet overview landing page as a summary of them.","2026-08-20","2026-11-03",5,{"project":9,"projectLabel":10,"id":117,"num":118,"dir":119,"title":120,"focus":121,"status":16,"thumbnail":20,"started":122,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":123,"quietWeeks":83,"stale":23,"active":23},"c72",72,"c72.integrations-create-manage","Integrations Create & Manage","Create\u002Fconfigure modal for 11 connectors with per-integration custom UI and step-by-step operator guidance","2026-08-15",6,{"project":9,"projectLabel":10,"id":125,"num":126,"dir":127,"title":128,"focus":129,"status":16,"thumbnail":20,"started":122,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":123,"quietWeeks":83,"stale":23,"active":23},"c70",70,"c70.thesis-kindle","Thesis Kindle","Convert \"Looking In\" thesis to Kindle-compatible formats (EPUB + print-replica PDF) while preserving images and foundational status",{"project":9,"projectLabel":10,"id":131,"num":132,"dir":133,"title":134,"focus":135,"status":16,"thumbnail":136,"started":137,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":123,"quietWeeks":83,"stale":23,"active":23},"c67",67,"c67.teams","Teams","Refine the qdash `\u002Fteams` design — composition from c61 concepts, mapping workspace as the pre-SCIM write path, slim spend overview, credentials relocated","\u002Fcycles\u002Fdesign\u002Fc67-teams-ideas-v2.png","2026-08-14",{"project":9,"projectLabel":10,"id":139,"num":140,"dir":141,"title":142,"focus":143,"status":31,"thumbnail":20,"started":144,"startedSource":19,"closed":145,"closedSource":19,"openWeeks":146,"quietWeeks":83,"stale":23,"active":23},"c49",49,"c49.cloudflare-deploy-fix","Fix the Cloudflare Pages Deploy","Make `push to main` reliably deploy the design site to Cloudflare Pages *(2026-09-25: reframed as \"make the build a manual local step\", see PICKUP.md)*","2026-06-11","2026-09-30",15,{"project":9,"projectLabel":10,"id":148,"num":149,"dir":150,"title":151,"focus":20,"status":152,"thumbnail":20,"started":74,"startedSource":89,"closed":20,"closedSource":20,"openWeeks":66,"quietWeeks":83,"stale":23,"active":23},"c82",82,"c82.cloud-execution","cloud execution","parked",{"project":76,"projectLabel":77,"id":154,"num":155,"dir":156,"title":157,"focus":158,"status":152,"thumbnail":20,"started":159,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":160,"quietWeeks":106,"stale":23,"active":23},"c7",7,"c7.avoma-notes","avoma-notes","Explore and integrate Avoma notes data into extraction pipeline and dashboard visualizations.","2026-02-25",30,{"project":76,"projectLabel":77,"id":162,"num":106,"dir":163,"title":164,"focus":165,"status":152,"thumbnail":20,"started":166,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":160,"quietWeeks":106,"stale":23,"active":23},"c4","c4.refinement","refinement","Refine how extracted data is displayed in the dashboard and improve extraction quality where gaps exist.","2026-02-24",{"project":76,"projectLabel":77,"id":168,"num":66,"dir":169,"title":170,"focus":171,"status":152,"thumbnail":20,"started":172,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":173,"quietWeeks":106,"stale":23,"active":23},"c3","c3.oauth","oauth","Add Google OAuth to restrict dashboard access to @qpoint.io team members.","2026-02-20",31,{"project":9,"projectLabel":10,"id":175,"num":176,"dir":177,"title":178,"focus":179,"status":152,"thumbnail":180,"started":122,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":123,"quietWeeks":115,"stale":23,"active":23},"c69",69,"c69.operating-system","Operating System","Methods & tooling retro — evaluate how we work against the design methodology, restore order, modernize the skill\u002Fagent tooling, and make the philosophy load-bearing","\u002Farchive\u002F2026-q3\u002Fc69-pages-index.png",{"project":9,"projectLabel":10,"id":182,"num":183,"dir":184,"title":185,"focus":186,"status":152,"thumbnail":187,"started":188,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":155,"quietWeeks":115,"stale":23,"active":23},"c62",62,"c62.build-partner","build-partner","Build-partner portal — research, ideation, and a plan for a page that makes partners insiders","\u002Fcycles\u002Fdesign\u002Fc62-arcade-organism-ideas.png","2026-08-08",{"project":9,"projectLabel":10,"id":190,"num":191,"dir":192,"title":193,"focus":194,"status":152,"thumbnail":20,"started":195,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":196,"quietWeeks":123,"stale":23,"active":23},"c55",55,"c55.agent-market-definition","agent-market-definition","Align the qcontrol agent-monitoring dashboard to specific personas and find market alignment — hypothesis-first, validated against calls later.","2026-07-24",9,{"project":9,"projectLabel":10,"id":198,"num":199,"dir":200,"title":201,"focus":202,"status":16,"thumbnail":203,"started":204,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":106,"quietWeeks":66,"stale":24,"active":23},"c79",79,"c79.finding-lifecycle","Finding Lifecycle","Mock the finding-lifecycle state machine and the mechanics\u002FUI of turning findings into SLA data — the design answer to c78's open resolution-workflow gap.","\u002Fcycles\u002Fdesign\u002Fc79-qdash-port-accept-risk.png","2026-08-25",{"project":9,"projectLabel":10,"id":206,"num":207,"dir":208,"title":209,"focus":210,"status":16,"thumbnail":211,"started":137,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":123,"quietWeeks":66,"stale":24,"active":23},"c68",68,"c68.index-overview","index-overview","Design the qdash landing page — what the user is greeted with on login, resolving the Fleet Overview \u002F Agent Inventory overlap.","\u002Fcycles\u002Fdesign\u002Fc68-index-glance-ideas.png",{"project":9,"projectLabel":10,"id":213,"num":214,"dir":215,"title":216,"focus":217,"status":16,"thumbnail":218,"started":113,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":115,"quietWeeks":106,"stale":24,"active":23},"c77",77,"c77.session-view","Session View","Session viewer \u002F replay mode for qcontrol AI agent sessions — mocks-first on the design site","\u002Fcycles\u002Fdesign\u002Fc77-session-anatomy-v1.png",{"project":76,"projectLabel":77,"id":220,"num":221,"dir":222,"title":223,"focus":224,"status":16,"thumbnail":20,"started":113,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":115,"quietWeeks":106,"stale":24,"active":23},"c8",8,"c8.agent-pivot","Agent Pivot","Reorient pipeline and app around AI-agent-security pivot: archive phase 1, use-case-centric extraction, multi-source feedback, architecture debt paydown.",{"project":91,"projectLabel":92,"id":226,"num":227,"dir":228,"title":229,"focus":20,"status":16,"thumbnail":230,"started":122,"startedSource":89,"closed":20,"closedSource":20,"openWeeks":123,"quietWeeks":115,"stale":24,"active":23},"c20",20,"c20.build-partner-portal","Build Partner Portal","\u002Fcycles\u002Fbob-wire\u002Fc20-index.png",{"project":91,"projectLabel":92,"id":232,"num":233,"dir":234,"title":235,"focus":20,"status":16,"thumbnail":236,"started":122,"startedSource":89,"closed":20,"closedSource":20,"openWeeks":123,"quietWeeks":115,"stale":24,"active":23},"c17",17,"c17.owasp-policy-pack","OWASP LLM Top 10 — Policy Pack","\u002Fcycles\u002Fbob-wire\u002Fc17-control-definition.png",{"project":238,"projectLabel":239,"id":240,"num":115,"dir":241,"title":242,"focus":20,"status":16,"thumbnail":243,"started":122,"startedSource":89,"closed":20,"closedSource":20,"openWeeks":123,"quietWeeks":115,"stale":24,"active":23},"qpixel","Qpixel","c5","c5.selection-clipboard","Selection Clipboard","\u002Fcycles\u002Fqpixel\u002Fc5-editor.png",{"project":238,"projectLabel":239,"id":162,"num":106,"dir":245,"title":246,"focus":20,"status":16,"thumbnail":247,"started":122,"startedSource":89,"closed":20,"closedSource":20,"openWeeks":123,"quietWeeks":115,"stale":24,"active":23},"c4.svg-export","SVG Export","\u002Fcycles\u002Fqpixel\u002Fc4-checkerboard.png",{"project":9,"projectLabel":10,"id":249,"num":250,"dir":251,"title":252,"focus":253,"status":31,"thumbnail":254,"started":137,"startedSource":19,"closed":255,"closedSource":19,"openWeeks":123,"quietWeeks":115,"stale":24,"active":23},"c66",66,"c66.cost-center","cost-center","Add unit-of-measurement toggle to qdash `\u002Fcost` page — switch display between currency ($) and tokens","\u002Farchive\u002F2026-q3\u002Fc66-cost-center-unit-toggle.png","2026-10-01",{"project":9,"projectLabel":10,"id":257,"num":258,"dir":259,"title":260,"focus":261,"status":16,"thumbnail":262,"started":263,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":123,"quietWeeks":115,"stale":24,"active":23},"c65",65,"c65.control-center-v2","control-center-v2","Shift the control center from infinitely-configurable controls to a compliance-driven system of pre-defined Policies — research the framework↔policy connection, then mock the policy catalog and per-policy config pages","\u002Fcycles\u002Fdesign\u002Fc65-compliance-frameworks.png","2026-08-12",{"project":9,"projectLabel":10,"id":265,"num":266,"dir":267,"title":268,"focus":269,"status":16,"thumbnail":270,"started":271,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":123,"quietWeeks":115,"stale":24,"active":23},"c64",64,"c64.control-center-consolidation","control-center-consolidation","Consolidate the overlapping Control Center \u002F Policy & Enforcement \u002F Compliance work — current-state evaluation, ranked consolidation plan, initial-ideas mock","\u002Fcycles\u002Fdesign\u002Fc64-control-center-ideas.png","2026-08-10",{"project":91,"projectLabel":92,"id":273,"num":274,"dir":275,"title":276,"focus":277,"status":16,"thumbnail":20,"started":278,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":221,"quietWeeks":115,"stale":24,"active":23},"c19",19,"c19.ai-asset-inventory","AI Asset Inventory","Precedent research for an AI asset inventory page — how existing products present inventories of agents, MCP servers, files, models, and related AI assets","2026-07-31",{"project":280,"projectLabel":281,"id":282,"num":283,"dir":284,"title":285,"focus":286,"status":16,"thumbnail":287,"started":288,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":221,"quietWeeks":115,"stale":24,"active":23},"qflow","Qflow","c12",12,"c12.qcontrol-live-view","qcontrol-live-view","Live qflow visualization of qcontrol agent events — agents pulsing to event-type nodes, fed by qdash SSE, with a growing timeline scrubber","\u002Fcycles\u002Fqflow\u002Fc12-agents-packed.png","2026-07-29",{"project":91,"projectLabel":92,"id":290,"num":291,"dir":292,"title":293,"focus":294,"status":16,"thumbnail":20,"started":195,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":196,"quietWeeks":115,"stale":24,"active":23},"c18",18,"c18.post-mortem-map","Post-Mortem Map","Post-mortem incident map — visualizing an incident that already occurred: the actors involved (user, agent, MCP servers, files, repos) and their state, on an incident page alongside traditional detail sections",{"project":91,"projectLabel":92,"id":296,"num":146,"dir":297,"title":298,"focus":20,"status":16,"thumbnail":299,"started":300,"startedSource":89,"closed":20,"closedSource":20,"openWeeks":146,"quietWeeks":115,"stale":24,"active":23},"c15","c15.agent-dashboard","Agent Dashboard","\u002Fcycles\u002Fbob-wire\u002Fc15-index.png","2026-06-09",{"project":91,"projectLabel":92,"id":302,"num":303,"dir":304,"title":305,"focus":20,"status":16,"thumbnail":306,"started":307,"startedSource":89,"closed":20,"closedSource":20,"openWeeks":303,"quietWeeks":115,"stale":24,"active":23},"c16",16,"c16.agent-control-plane","Agent Control Plane","\u002Fcycles\u002Fbob-wire\u002Fc16-control-plane-integrations.png","2026-06-04",{"project":91,"projectLabel":92,"id":309,"num":310,"dir":311,"title":312,"focus":20,"status":16,"thumbnail":313,"started":314,"startedSource":89,"closed":20,"closedSource":20,"openWeeks":274,"quietWeeks":115,"stale":24,"active":23},"c14",14,"c14.qcontrol-brochure-site","QControl Brochure Site","\u002Fcycles\u002Fbob-wire\u002Fc14-index.png","2026-05-11",{"project":91,"projectLabel":92,"id":316,"num":317,"dir":318,"title":319,"focus":20,"status":16,"thumbnail":320,"started":314,"startedSource":89,"closed":20,"closedSource":20,"openWeeks":274,"quietWeeks":115,"stale":24,"active":23},"c13",13,"c13.ai-agent-policies","AI Agent Policies","\u002Fcycles\u002Fbob-wire\u002Fc13-index.png",{"project":322,"projectLabel":323,"id":324,"num":325,"dir":326,"title":327,"focus":328,"status":16,"thumbnail":329,"started":330,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":227,"quietWeeks":115,"stale":24,"active":23},"qmap","Qmap","c27",27,"c27.mcp-server-fleet","mcp-server-fleet","Deterministic synthetic MCP server fleet views for screenshot capture","\u002Fcycles\u002Fqmap\u002Fc27-callers-selected.png","2026-05-04",{"project":322,"projectLabel":323,"id":332,"num":333,"dir":334,"title":335,"focus":336,"status":16,"thumbnail":20,"started":337,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":94,"quietWeeks":115,"stale":24,"active":23},"c26",26,"c26.flatland-view","flatland-view","Add a `flatland` view (topdown camera + pitched 3D models) for VOX\u002FOBJ-backed actors","2026-04-28",{"project":91,"projectLabel":92,"id":282,"num":283,"dir":339,"title":340,"focus":20,"status":16,"thumbnail":341,"started":342,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":343,"quietWeeks":115,"stale":24,"active":23},"c12.inventory-deep-dive","Inventory Deep Dive","\u002Fcycles\u002Fbob-wire\u002Fc12-index.png","2026-04-24",22,{"project":91,"projectLabel":92,"id":345,"num":346,"dir":347,"title":348,"focus":20,"status":16,"thumbnail":349,"started":350,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":343,"quietWeeks":115,"stale":24,"active":23},"c10",10,"c10.security-overview-benchmark","Security Overview Benchmark","\u002Fcycles\u002Fbob-wire\u002Fc10-index.png","2026-04-22",{"project":322,"projectLabel":323,"id":352,"num":353,"dir":354,"title":355,"focus":356,"status":16,"thumbnail":357,"started":358,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":343,"quietWeeks":115,"stale":24,"active":23},"c25",25,"c25.ai-ecosystem-inventory-map","ai-ecosystem-inventory-map","Build a qmap inventory\u002Findex view of the company-wide AI ecosystem using deterministic synthetic data first","\u002Fcycles\u002Fqmap\u002Fc25-ai-ecosystem-inventory-map.png","2026-04-21",{"project":91,"projectLabel":92,"id":360,"num":196,"dir":361,"title":362,"focus":20,"status":16,"thumbnail":363,"started":364,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":343,"quietWeeks":115,"stale":24,"active":23},"c9","c9.meaning-layer-dashboard","Meaning-Layer Dashboard","\u002Fcycles\u002Fbob-wire\u002Fc9-index.png","2026-04-20",{"project":322,"projectLabel":323,"id":366,"num":367,"dir":368,"title":369,"focus":370,"status":16,"thumbnail":371,"started":372,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":373,"quietWeeks":115,"stale":24,"active":23},"c24",24,"c24.synthetic-live-session-replay","synthetic-live-session-replay","Build a deterministic synthetic replay path for live-feeling qmap sessions","\u002Fcycles\u002Fqmap\u002Fc24-complete.png","2026-04-17",23,{"project":322,"projectLabel":323,"id":375,"num":373,"dir":376,"title":377,"focus":378,"status":16,"thumbnail":379,"started":372,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":373,"quietWeeks":115,"stale":24,"active":23},"c23","c23.custom-obj-models","custom-obj-models","Validate import, normalization, and rendering of custom `.obj` actor models in qmap","\u002Fcycles\u002Fqmap\u002Fc23-cowboy.png",{"project":322,"projectLabel":323,"id":381,"num":343,"dir":382,"title":383,"focus":384,"status":16,"thumbnail":385,"started":386,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":373,"quietWeeks":115,"stale":24,"active":23},"c22","c22.runtime-session-map","runtime-session-map","Visualize a single qcontrol runtime session as a qmap entity-type topology","\u002Fcycles\u002Fqmap\u002Fc22-fileheavy.png","2026-04-15",{"project":322,"projectLabel":323,"id":93,"num":94,"dir":388,"title":389,"focus":390,"status":16,"thumbnail":391,"started":392,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":353,"quietWeeks":115,"stale":24,"active":23},"c21.ai-session-map","ai-session-map","Visualize a single AI agent session as a qmap entity-type topology","\u002Fcycles\u002Fqmap\u002Fc21-ai-session-map.png","2026-04-03",{"project":91,"projectLabel":92,"id":162,"num":106,"dir":394,"title":395,"focus":20,"status":16,"thumbnail":396,"started":397,"startedSource":89,"closed":20,"closedSource":20,"openWeeks":353,"quietWeeks":115,"stale":24,"active":23},"c4.aii-agents-entity","AI Agents Entity","\u002Fcycles\u002Fbob-wire\u002Fc4-agent-sessions.png","2026-04-01",{"project":280,"projectLabel":281,"id":345,"num":346,"dir":399,"title":400,"focus":20,"status":16,"thumbnail":401,"started":402,"startedSource":89,"closed":20,"closedSource":20,"openWeeks":333,"quietWeeks":115,"stale":24,"active":23},"c10.real-data","Real Data","\u002Fcycles\u002Fqflow\u002Fc10-devtools-iso.png","2026-03-23",{"project":280,"projectLabel":281,"id":220,"num":221,"dir":404,"title":405,"focus":20,"status":16,"thumbnail":406,"started":402,"startedSource":89,"closed":20,"closedSource":20,"openWeeks":333,"quietWeeks":115,"stale":24,"active":23},"c8.label-controls","label controls","\u002Fcycles\u002Fqflow\u002Fc8-bottom-warm.png",{"project":91,"projectLabel":92,"id":168,"num":66,"dir":408,"title":409,"focus":20,"status":16,"thumbnail":410,"started":402,"startedSource":89,"closed":20,"closedSource":20,"openWeeks":333,"quietWeeks":115,"stale":24,"active":23},"c3.dataflows","Dataflows","\u002Fcycles\u002Fbob-wire\u002Fc3-dataflows-overview.png",{"project":91,"projectLabel":92,"id":412,"num":21,"dir":413,"title":414,"focus":415,"status":16,"thumbnail":416,"started":417,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":418,"quietWeeks":115,"stale":24,"active":23},"c1","c1.situation-room","Situation Room","Situation Room wireframe — problem-space command center for data governance","\u002Fcycles\u002Fbob-wire\u002Fc1-index.png","2026-03-03",29,{"project":9,"projectLabel":10,"id":420,"num":421,"dir":422,"title":423,"focus":424,"status":425,"thumbnail":426,"started":427,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":221,"quietWeeks":123,"stale":24,"active":23},"c59",59,"c59.inventory","inventory","Design qdash inventory page to surface agent status and footprint at a glance","flagged","\u002Fcycles\u002Fdesign\u002Fc59-agent-detail-v2.png","2026-08-02",{"project":9,"projectLabel":10,"id":429,"num":430,"dir":431,"title":432,"focus":433,"status":425,"thumbnail":434,"started":435,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":346,"quietWeeks":123,"stale":24,"active":23},"c51",51,"c51.app-consolidation","App Consolidation","Understand the fractured qcontrol app ecosystem and consolidate it into a simple, clean, demoable product on a Nuxt + q-nuxt-layer front-end","\u002Farchive\u002F2026-q3\u002Fc51-consolidation-gaps.png","2026-07-14",{"project":437,"projectLabel":438,"id":439,"num":123,"dir":440,"title":441,"focus":20,"status":16,"thumbnail":20,"started":442,"startedSource":89,"closed":20,"closedSource":20,"openWeeks":233,"quietWeeks":303,"stale":24,"active":23},"www","www.qpoint.io","c6","c6.combined-index","Combined Index Page","2026-05-27",{"project":437,"projectLabel":438,"id":162,"num":106,"dir":444,"title":445,"focus":20,"status":16,"thumbnail":20,"started":442,"startedSource":89,"closed":20,"closedSource":20,"openWeeks":233,"quietWeeks":303,"stale":24,"active":23},"c4.case-studies","AI Agent Incident Case Studies",{"project":437,"projectLabel":438,"id":168,"num":66,"dir":447,"title":448,"focus":20,"status":16,"thumbnail":20,"started":442,"startedSource":89,"closed":20,"closedSource":20,"openWeeks":233,"quietWeeks":303,"stale":24,"active":23},"c3.the-problem-page","The Problem Page + PocketOS Case Study",{"project":437,"projectLabel":438,"id":240,"num":115,"dir":450,"title":451,"focus":452,"status":16,"thumbnail":20,"started":453,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":291,"quietWeeks":303,"stale":24,"active":23},"c5.cookie-consent-audit","Cookie Consent Audit & Fix","Audit and fix cookie consent persistence so decisions survive deploys","2026-05-21",{"project":437,"projectLabel":438,"id":455,"num":83,"dir":456,"title":457,"focus":20,"status":16,"thumbnail":20,"started":458,"startedSource":89,"closed":20,"closedSource":20,"openWeeks":291,"quietWeeks":233,"stale":24,"active":23},"c2","c2.brochure-site-q2","Brochure Site Q2 Redesign","2026-05-20",{"project":437,"projectLabel":438,"id":412,"num":21,"dir":460,"title":461,"focus":462,"status":16,"thumbnail":20,"started":314,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":274,"quietWeeks":233,"stale":24,"active":23},"c1.q-nuxt-layer-integration","Q Nuxt Layer Integration","Complete q-nuxt-layer integration for www.qpoint.io and deploy",{"project":91,"projectLabel":92,"id":78,"num":79,"dir":464,"title":465,"focus":20,"status":16,"thumbnail":20,"started":466,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":343,"quietWeeks":274,"stale":24,"active":23},"c11.pixel-character-system","Pixel Character System","2026-04-23",{"project":9,"projectLabel":10,"id":468,"num":469,"dir":470,"title":471,"focus":472,"status":425,"thumbnail":20,"started":358,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":343,"quietWeeks":274,"stale":24,"active":23},"c44",44,"c44.figma-ai-dashboard-redesign","Figma AI Dashboard Redesign","Establish a clean Figma-first source of truth for the dashboard redesign by modeling a flexible visual component API, then use AI to accelerate exploration without polluting the design system",{"project":9,"projectLabel":10,"id":474,"num":475,"dir":476,"title":477,"focus":478,"status":425,"thumbnail":20,"started":372,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":373,"quietWeeks":274,"stale":24,"active":23},"c42",42,"c42.runtime-session-map-publishing","Runtime Session Map Publishing","Define the design-app-native publish path for the qmap runtime-session map without starting implementation before qmap is ready",{"project":9,"projectLabel":10,"id":480,"num":481,"dir":482,"title":483,"focus":484,"status":425,"thumbnail":485,"started":372,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":373,"quietWeeks":274,"stale":24,"active":23},"c41",41,"c41.signal-column-flow","Signal Column Flow","Prototype a column-based evidence ladder that moves from noisy session signal to reduced entities, actions, and provisional outcomes","\u002Farchive\u002F2026-q3\u002Fc41-signal-column-flow.png",{"project":280,"projectLabel":281,"id":360,"num":196,"dir":487,"title":488,"focus":489,"status":16,"thumbnail":20,"started":490,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":325,"quietWeeks":353,"stale":24,"active":23},"c9.dev-tools-integration","c9 · dev-tools-integration","Integrate qflow with qtap dev-tools in app.qpoint.io — qflow as bird's-eye view, dev-tools as detail inspector, fed by live production SSE traffic.","2026-03-16",{"project":9,"projectLabel":10,"id":220,"num":221,"dir":492,"title":493,"focus":20,"status":16,"thumbnail":20,"started":494,"startedSource":89,"closed":20,"closedSource":20,"openWeeks":495,"quietWeeks":325,"stale":24,"active":23},"c8.sharing-design-philosophy","Sharing Design Philosophy","2026-03-13",28,{"project":497,"projectLabel":498,"id":455,"num":83,"dir":499,"title":500,"focus":501,"status":16,"thumbnail":20,"started":502,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":418,"quietWeeks":325,"stale":24,"active":23},"app","app.qpoint.io","c2.mcp-apps","MCP Apps","Add AI assistant UI to app.qpoint.io with shared Vue components usable as MCP Apps","2026-03-05",{"project":497,"projectLabel":498,"id":412,"num":21,"dir":504,"title":505,"focus":506,"status":16,"thumbnail":20,"started":507,"startedSource":19,"closed":20,"closedSource":20,"openWeeks":173,"quietWeeks":325,"stale":24,"active":23},"c1.documentation-cleanup","documentation-cleanup","Improve component documentation quality with better examples and human-AI collaborative workflow","2026-02-19",[509,510,518],{"project":9,"projectLabel":10,"id":26,"num":27,"dir":28,"title":29,"focus":30,"status":31,"thumbnail":32,"started":33,"startedSource":19,"closed":18,"closedSource":19,"openWeeks":21,"quietWeeks":22,"stale":23,"active":24},{"project":9,"projectLabel":10,"id":511,"num":512,"dir":513,"title":514,"focus":515,"status":31,"thumbnail":516,"started":517,"startedSource":19,"closed":18,"closedSource":19,"openWeeks":83,"quietWeeks":22,"stale":23,"active":24},"c87",87,"c87.history-graph","History Graph","`DataHistoryGraph` component family (q-nuxt-layer) — a pictogram-style","\u002Fcycles\u002Fdesign\u002Fc87-history-graph.png","2026-09-11",{"project":9,"projectLabel":10,"id":519,"num":520,"dir":521,"title":522,"focus":523,"status":31,"thumbnail":524,"started":517,"startedSource":19,"closed":18,"closedSource":19,"openWeeks":83,"quietWeeks":22,"stale":23,"active":24},"c85",85,"c85.chat-transcript","Chat Transcript","`transcript\u002F*` component namespace (q-nuxt-layer) for rendering an agent chat session — messages, collapsible tool-call bursts, and a ChatGPT-style hover-expanding turn navigator.","\u002Fcycles\u002Fdesign\u002Fc85-chat-transcript.png",[526,716,964,1024,1168,1302,1790,1916,2205,2841,3211,3273,3493,3634,3645,3741,3821,4008,4073,4213,4351,4450,4649,4671,4700,4754,4860,4928,4988,5027,5050,5150,5201,5253,5306,5552,5705,5815,5862,5933],{"project":9,"cycle":11,"dir":13,"title":14,"date":5,"lead":527,"long":24,"ast":528},"working-nav + people-pages planned",{"type":529,"children":530},"root",[531],{"type":532,"tag":533,"props":534,"children":535},"element","p",{},[536,543,545,552,554,560,562,568,569,574,576,582,584,590,592,598,600,606,608,614,616,622,624,630,631,637,638,644,646,652,654,660,661,667,668,674,676,682,684,690,692,698,700,706,708,714],{"type":532,"tag":537,"props":538,"children":539},"strong",{},[540],{"type":541,"value":542},"text","working-nav + people-pages planned (2026-09-20):",{"type":541,"value":544}," Plans written, nothing executed (",{"type":532,"tag":546,"props":547,"children":549},"code",{"className":548},[],[550],{"type":541,"value":551},"working-nav-prompt.md",{"type":541,"value":553},"\u002F",{"type":532,"tag":546,"props":555,"children":557},{"className":556},[],[558],{"type":541,"value":559},"-plan.md",{"type":541,"value":561},", ",{"type":532,"tag":546,"props":563,"children":565},{"className":564},[],[566],{"type":541,"value":567},"people-pages-prompt.md",{"type":541,"value":553},{"type":532,"tag":546,"props":570,"children":572},{"className":571},[],[573],{"type":541,"value":559},{"type":541,"value":575},"). Verified before planning: the sidebar's ",{"type":532,"tag":546,"props":577,"children":579},{"className":578},[],[580],{"type":541,"value":581},"NAV",{"type":541,"value":583}," literal + ",{"type":532,"tag":546,"props":585,"children":587},{"className":586},[],[588],{"type":541,"value":589},"useExperimentalNav",{"type":541,"value":591}," singleton are the templates for the new toggle; layer ",{"type":532,"tag":546,"props":593,"children":595},{"className":594},[],[596],{"type":541,"value":597},"NavVerticalItem",{"type":541,"value":599}," takes a fallthrough ",{"type":532,"tag":546,"props":601,"children":603},{"className":602},[],[604],{"type":541,"value":605},"class",{"type":541,"value":607},", so the ",{"type":532,"tag":546,"props":609,"children":611},{"className":610},[],[612],{"type":541,"value":613},"nav-working",{"type":541,"value":615}," hook needs no layer change; every detail page needs an id in the query and renders an empty shell without one, so Working's detail links must resolve a real example — fleet ",{"type":532,"tag":546,"props":617,"children":619},{"className":618},[],[620],{"type":541,"value":621},"\u002Fapi\u002Fsurface",{"type":541,"value":623}," + ",{"type":532,"tag":546,"props":625,"children":627},{"className":626},[],[628],{"type":541,"value":629},"\u002Fapi\u002Fagents",{"type":541,"value":623},{"type":532,"tag":546,"props":632,"children":634},{"className":633},[],[635],{"type":541,"value":636},"\u002Fapi\u002Finstallations",{"type":541,"value":623},{"type":532,"tag":546,"props":639,"children":641},{"className":640},[],[642],{"type":541,"value":643},"\u002Fapi\u002Fsessions",{"type":541,"value":645}," cover every kind in four requests. For the people pages: ",{"type":532,"tag":546,"props":647,"children":649},{"className":648},[],[650],{"type":541,"value":651},"teams.vue",{"type":541,"value":653}," already routes every number through typed rows (",{"type":532,"tag":546,"props":655,"children":657},{"className":656},[],[658],{"type":541,"value":659},"PersonRow",{"type":541,"value":553},{"type":532,"tag":546,"props":662,"children":664},{"className":663},[],[665],{"type":541,"value":666},"DeviceRow",{"type":541,"value":553},{"type":532,"tag":546,"props":669,"children":671},{"className":670},[],[672],{"type":541,"value":673},"TeamRow",{"type":541,"value":675},") from ",{"type":532,"tag":546,"props":677,"children":679},{"className":678},[],[680],{"type":541,"value":681},"lib\u002Fpeople-rollups.ts",{"type":541,"value":683},", which is the swappable-data seam; seven inbound ",{"type":532,"tag":546,"props":685,"children":687},{"className":686},[],[688],{"type":541,"value":689},"\u002Fteams",{"type":541,"value":691}," links (",{"type":532,"tag":546,"props":693,"children":695},{"className":694},[],[696],{"type":541,"value":697},"surface-rollups",{"type":541,"value":699},", sessions detail, index checklist, nav) need retargeting; the design-site phase-1 rows are a different shape, so synthetic data is qdash-shaped (",{"type":532,"tag":546,"props":701,"children":703},{"className":702},[],[704],{"type":541,"value":705},"lib\u002Fpeople-sample.ts",{"type":541,"value":707},"). Components stay qdash-local until a layer-extraction thread (arbitrary-value classes, ",{"type":532,"tag":546,"props":709,"children":711},{"className":710},[],[712],{"type":541,"value":713},"ProjectedBadge",{"type":541,"value":715},", qdash routes are the seams). Each plan ends with the decisions to confirm.",{"project":9,"cycle":11,"dir":13,"title":14,"date":5,"lead":717,"long":24,"ast":718},"working-nav + people-pages executed",{"type":529,"children":719},[720],{"type":532,"tag":533,"props":721,"children":722},{},[723,728,730,736,738,744,746,752,754,760,762,768,770,776,778,783,784,790,791,796,798,803,805,810,811,817,819,825,826,832,834,840,842,848,850,856,858,864,866,871,873,878,880,886,888,894,895,901,902,907,909,915,917,923,925,930,932,938,940,946,948,954,956,962],{"type":532,"tag":537,"props":724,"children":725},{},[726],{"type":541,"value":727},"working-nav + people-pages executed (2026-09-20):",{"type":541,"value":729}," Both plans run end to end on qcontrol ",{"type":532,"tag":546,"props":731,"children":733},{"className":732},[],[734],{"type":541,"value":735},"feat\u002Fnew-pages",{"type":541,"value":737}," (twin record ",{"type":532,"tag":546,"props":739,"children":741},{"className":740},[],[742],{"type":541,"value":743},"qdash cycles\u002Fc15",{"type":541,"value":745},"), every decision on its default. ",{"type":532,"tag":747,"props":748,"children":749},"em",{},[750],{"type":541,"value":751},"Working nav:",{"type":541,"value":753}," ",{"type":532,"tag":546,"props":755,"children":757},{"className":756},[],[758],{"type":541,"value":759},"useWorkingNav",{"type":541,"value":761}," (localStorage, off by default) + a footer toggle above Experimental; a ",{"type":532,"tag":546,"props":763,"children":765},{"className":764},[],[766],{"type":541,"value":767},"WORKING",{"type":541,"value":769}," section after PROVE lists all thirteen listing pages and the eight detail pages; ",{"type":532,"tag":546,"props":771,"children":773},{"className":772},[],[774],{"type":541,"value":775},"lib\u002Fworking-nav.ts",{"type":541,"value":777}," (vitest 6) resolves a real example per detail kind — the busiest row from fleet ",{"type":532,"tag":546,"props":779,"children":781},{"className":780},[],[782],{"type":541,"value":621},{"type":541,"value":561},{"type":532,"tag":546,"props":785,"children":787},{"className":786},[],[788],{"type":541,"value":789},"\u002Fapi\u002Fharnesses",{"type":541,"value":561},{"type":532,"tag":546,"props":792,"children":794},{"className":793},[],[795],{"type":541,"value":643},{"type":541,"value":797}," fetched once on toggle-on — and kinds with nothing observed fall back to their listing, dimmed; ",{"type":532,"tag":546,"props":799,"children":801},{"className":800},[],[802],{"type":541,"value":613},{"type":541,"value":804}," hook class, italic only. ",{"type":532,"tag":747,"props":806,"children":807},{},[808],{"type":541,"value":809},"People pages:",{"type":541,"value":753},{"type":532,"tag":546,"props":812,"children":814},{"className":813},[],[815],{"type":541,"value":816},"TeamsOverview",{"type":541,"value":818}," \u002F ",{"type":532,"tag":546,"props":820,"children":822},{"className":821},[],[823],{"type":541,"value":824},"UsersOverview",{"type":541,"value":818},{"type":532,"tag":546,"props":827,"children":829},{"className":828},[],[830],{"type":541,"value":831},"DevicesOverview",{"type":541,"value":833}," lifted from the combined page as presentational components (rows in, events out, ",{"type":532,"tag":546,"props":835,"children":837},{"className":836},[],[838],{"type":541,"value":839},"linkTo",{"type":541,"value":841}," function prop from ",{"type":532,"tag":546,"props":843,"children":845},{"className":844},[],[846],{"type":541,"value":847},"lib\u002Fpeople-links.ts",{"type":541,"value":849}," so the front site can render them link-less), ",{"type":532,"tag":546,"props":851,"children":853},{"className":852},[],[854],{"type":541,"value":855},"usePeopleData",{"type":541,"value":857}," holding the feeds + rollups + filter registration + ",{"type":532,"tag":546,"props":859,"children":861},{"className":860},[],[862],{"type":541,"value":863},"\u002Fapi\u002Fteams",{"type":541,"value":865}," write path, ",{"type":532,"tag":546,"props":867,"children":869},{"className":868},[],[870],{"type":541,"value":705},{"type":541,"value":872}," as the synthetic data source in the rollups' exact row shape (vitest 2); ",{"type":532,"tag":546,"props":874,"children":876},{"className":875},[],[877],{"type":541,"value":689},{"type":541,"value":879}," → ",{"type":532,"tag":546,"props":881,"children":883},{"className":882},[],[884],{"type":541,"value":885},"\u002Fteams-users-devices",{"type":541,"value":887}," (git mv, composes the three; Devices Sensored moved into a four-card Devices band with legends below the rings, a Teams band added, Users gained Active · 30d), solo ",{"type":532,"tag":546,"props":889,"children":891},{"className":890},[],[892],{"type":541,"value":893},"\u002Fusers",{"type":541,"value":561},{"type":532,"tag":546,"props":896,"children":898},{"className":897},[],[899],{"type":541,"value":900},"\u002Fdevices",{"type":541,"value":561},{"type":532,"tag":546,"props":903,"children":905},{"className":904},[],[906],{"type":541,"value":689},{"type":541,"value":908}," (row → ",{"type":532,"tag":546,"props":910,"children":912},{"className":911},[],[913],{"type":541,"value":914},"\u002Fusers?team=",{"type":541,"value":916},"; stray ",{"type":532,"tag":546,"props":918,"children":920},{"className":919},[],[921],{"type":541,"value":922},"?user=",{"type":541,"value":924}," forwards); seven inbound ",{"type":532,"tag":546,"props":926,"children":928},{"className":927},[],[929],{"type":541,"value":689},{"type":541,"value":931}," links retargeted. Verified headless on an isolated seed instance (",{"type":532,"tag":546,"props":933,"children":935},{"className":934},[],[936],{"type":541,"value":937},":7880",{"type":541,"value":939}," — the ",{"type":532,"tag":546,"props":941,"children":943},{"className":942},[],[944],{"type":541,"value":945},":7879",{"type":541,"value":947}," seed wedges at 900% CPU under the dev proxy's polling; noted, not fixed): console clean on every page, deep links and row clicks land where the plan says. ",{"type":532,"tag":546,"props":949,"children":951},{"className":950},[],[952],{"type":541,"value":953},"npm test",{"type":541,"value":955}," 241 (29 files); dist regenerated. Not done: component mount specs (qdash's vitest is node-only — headless instead), design-site demos and layer extraction (their own thread, once the front-site framing exists), archive captures (kept in ",{"type":532,"tag":546,"props":957,"children":959},{"className":958},[],[960],{"type":541,"value":961},"\u002Ftmp\u002Fc92",{"type":541,"value":963},", as the earlier c92 threads did).",{"project":9,"cycle":11,"dir":13,"title":14,"date":5,"lead":965,"long":24,"ast":966},"listing-viz planned",{"type":529,"children":967},[968],{"type":532,"tag":533,"props":969,"children":970},{},[971,976,978,984,985,990,992,998,1000,1006,1008,1014,1016,1022],{"type":532,"tag":537,"props":972,"children":973},{},[974],{"type":541,"value":975},"listing-viz planned (2026-09-20):",{"type":541,"value":977}," Plan written (",{"type":532,"tag":546,"props":979,"children":981},{"className":980},[],[982],{"type":541,"value":983},"listing-viz-prompt.md",{"type":541,"value":553},{"type":532,"tag":546,"props":986,"children":988},{"className":987},[],[989],{"type":541,"value":559},{"type":541,"value":991},"), execution handed to a separate agent in the same session with every decision on its default. Surveyed all thirteen listing bands against the layer's data components and the dataviz form heuristic: eleven of thirteen bands are number-only, and three of the four existing devices are 2-slice donuts (the form the heuristic rejects for a single ratio). Catalogued each category's information types by column — identity · magnitude · composition · outcome · time · reach — and found composition is the missing column everywhere while a real time axis exists only on Sessions (",{"type":532,"tag":546,"props":993,"children":995},{"className":994},[],[996],{"type":541,"value":997},"started_at",{"type":541,"value":999},") and the fleet's ",{"type":532,"tag":546,"props":1001,"children":1003},{"className":1002},[],[1004],{"type":541,"value":1005},"\u002Fapi\u002Ftrends",{"type":541,"value":1007}," series, so trend sparks are honest on exactly those. The one missing note is a segmented bar (hand-rolled once on the fleet index, needed on nine pages) → ",{"type":532,"tag":546,"props":1009,"children":1011},{"className":1010},[],[1012],{"type":541,"value":1013},"DataSegmentBar",{"type":541,"value":1015}," in the layer, sharing the donut's token-role resolver and the history graph's validated palette via a lifted ",{"type":532,"tag":546,"props":1017,"children":1019},{"className":1018},[],[1020],{"type":541,"value":1021},"data\u002Fpalette.js",{"type":541,"value":1023},".",{"project":9,"cycle":11,"dir":13,"title":14,"date":5,"lead":1025,"long":24,"ast":1026},"timeframe-always planned",{"type":529,"children":1027},[1028],{"type":532,"tag":533,"props":1029,"children":1030},{},[1031,1036,1038,1044,1045,1050,1052,1058,1060,1066,1067,1073,1074,1080,1082,1088,1090,1096,1098,1104,1106,1112,1113,1119,1121,1127,1129,1135,1137,1143,1145,1151,1153,1158,1160,1166],{"type":532,"tag":537,"props":1032,"children":1033},{},[1034],{"type":541,"value":1035},"timeframe-always planned (2026-09-20):",{"type":541,"value":1037}," Plan written, nothing executed (",{"type":532,"tag":546,"props":1039,"children":1041},{"className":1040},[],[1042],{"type":541,"value":1043},"timeframe-always-prompt.md",{"type":541,"value":553},{"type":532,"tag":546,"props":1046,"children":1048},{"className":1047},[],[1049],{"type":541,"value":559},{"type":541,"value":1051},"). Verified before planning: the layer's v2 ",{"type":532,"tag":546,"props":1053,"children":1055},{"className":1054},[],[1056],{"type":541,"value":1057},"Filter",{"type":541,"value":1059}," carries ",{"type":532,"tag":546,"props":1061,"children":1063},{"className":1062},[],[1064],{"type":541,"value":1065},"timeframe",{"type":541,"value":553},{"type":532,"tag":546,"props":1068,"children":1070},{"className":1069},[],[1071],{"type":541,"value":1072},"timeframeValue",{"type":541,"value":553},{"type":532,"tag":546,"props":1075,"children":1077},{"className":1076},[],[1078],{"type":541,"value":1079},"timeframeOptions",{"type":541,"value":1081}," props but never renders them — c88 moved timeframe selection into the Config modal — so the only registrant (Sessions, default ",{"type":532,"tag":546,"props":1083,"children":1085},{"className":1084},[],[1086],{"type":541,"value":1087},"all",{"type":541,"value":1089},") compensates with a hand-placed period trigger bar; ",{"type":532,"tag":546,"props":1091,"children":1093},{"className":1092},[],[1094],{"type":541,"value":1095},"useGlobalFilter.period",{"type":541,"value":1097}," is per-registration and not persisted; the backend's \"universal scope\" (",{"type":532,"tag":546,"props":1099,"children":1101},{"className":1100},[],[1102],{"type":541,"value":1103},"period_span",{"type":541,"value":1105}," · ",{"type":532,"tag":546,"props":1107,"children":1109},{"className":1108},[],[1110],{"type":541,"value":1111},"time_pred",{"type":541,"value":1105},{"type":532,"tag":546,"props":1114,"children":1116},{"className":1115},[],[1117],{"type":541,"value":1118},"window_cutoff",{"type":541,"value":1120},", anchored to the data's MAX timestamp) is honoured by exactly four endpoints (costs, dlp, security, sessions) and none of the listings; models and workspaces rows carry no timestamp at all, so client-side windowing can't be honest. Read as three requirements — always visible, already applied, honoured — the plan puts the pill in the layer as ",{"type":532,"tag":546,"props":1122,"children":1124},{"className":1123},[],[1125],{"type":541,"value":1126},"FilterItem",{"type":541,"value":1128}," with a new ",{"type":532,"tag":546,"props":1130,"children":1132},{"className":1131},[],[1133],{"type":541,"value":1134},"removable",{"type":541,"value":1136}," prop, makes the period shell-owned (",{"type":532,"tag":546,"props":1138,"children":1140},{"className":1139},[],[1141],{"type":541,"value":1142},"DEFAULT_PERIOD = '7d'",{"type":541,"value":1144},", URL omits the default, localStorage follows), and adds ",{"type":532,"tag":546,"props":1146,"children":1148},{"className":1147},[],[1149],{"type":541,"value":1150},"period",{"type":541,"value":1152}," to every listing endpoint so magnitudes come out in-window. Seven decisions to confirm, headed by the default window (7d vs 24h vs 30d). ",{"type":532,"tag":537,"props":1154,"children":1155},{},[1156],{"type":541,"value":1157},"Confirmed same day, all on their defaults",{"type":541,"value":1159},"; Mark asked that server-side windowing be assumed necessary and thought through, so the plan's §C became a per-endpoint spec under four rules — one fleet anchor (",{"type":532,"tag":546,"props":1161,"children":1163},{"className":1162},[],[1164],{"type":541,"value":1165},"MAX(events.observed_at)",{"type":541,"value":1167},", replacing the per-table anchors), activity facts window while at-rest facts don't, magnitudes are windowed at the fact grain (never \"in-window runs × all-time cost\"), and presence follows existence (activity-only entities drop out, at-rest ones stay with zeros) — plus the consequence for pages: coverage denominators are fetched all-time, activity feeds with the global period.",{"project":9,"cycle":11,"dir":13,"title":14,"date":5,"lead":1169,"long":24,"ast":1170},"detail-pages planned",{"type":529,"children":1171},[1172],{"type":532,"tag":533,"props":1173,"children":1174},{},[1175,1180,1182,1188,1189,1195,1196,1201,1203,1209,1211,1217,1219,1225,1226,1232,1234,1240,1242,1248,1250,1255,1257,1263,1265,1270,1272,1277,1279,1285,1287,1293,1295,1300],{"type":532,"tag":537,"props":1176,"children":1177},{},[1178],{"type":541,"value":1179},"detail-pages planned (2026-09-20):",{"type":541,"value":1181}," Guide and plan written, nothing executed (",{"type":532,"tag":546,"props":1183,"children":1185},{"className":1184},[],[1186],{"type":541,"value":1187},"detail-pages-prompt.md",{"type":541,"value":561},{"type":532,"tag":546,"props":1190,"children":1192},{"className":1191},[],[1193],{"type":541,"value":1194},"-guide.md",{"type":541,"value":561},{"type":532,"tag":546,"props":1197,"children":1199},{"className":1198},[],[1200],{"type":541,"value":559},{"type":541,"value":1202},"). Read all six old pages against the three model pages and inventoried every detail endpoint's payload: all six are all-time with no day series (so User Detail's chart-beside-band has no honest data anywhere yet); the shared ",{"type":532,"tag":546,"props":1204,"children":1206},{"className":1205},[],[1207],{"type":541,"value":1208},"correlated_agents",{"type":541,"value":1210}," builder zeros ",{"type":532,"tag":546,"props":1212,"children":1214},{"className":1213},[],[1215],{"type":541,"value":1216},"calls",{"type":541,"value":1218}," on three pages and ",{"type":532,"tag":546,"props":1220,"children":1222},{"className":1221},[],[1223],{"type":541,"value":1224},"tokens",{"type":541,"value":553},{"type":532,"tag":546,"props":1227,"children":1229},{"className":1228},[],[1230],{"type":541,"value":1231},"cost",{"type":541,"value":1233}," on the other two; ",{"type":532,"tag":546,"props":1235,"children":1237},{"className":1236},[],[1238],{"type":541,"value":1239},"tools",{"type":541,"value":1241}," computes its success denominator but doesn't emit it; ",{"type":532,"tag":546,"props":1243,"children":1245},{"className":1244},[],[1246],{"type":541,"value":1247},"models.tokens",{"type":541,"value":1249}," excludes reasoning; findings attach to agents only; ",{"type":532,"tag":546,"props":1251,"children":1253},{"className":1252},[],[1254],{"type":541,"value":621},{"type":541,"value":1256}," has no harness axis; MCP Server's per-tool ",{"type":532,"tag":546,"props":1258,"children":1260},{"className":1259},[],[1261],{"type":541,"value":1262},"denied",{"type":541,"value":1264}," is served but no longer rendered since Surface replaced its Tools table. The recurring story on four pages is ",{"type":532,"tag":747,"props":1266,"children":1267},{},[1268],{"type":541,"value":1269},"at rest vs at runtime",{"type":541,"value":1271}," (installs config vs observed runs) and none of the old pages puts the two side by side. The guide catalogues the model pages' patterns A–Q, gives each page its purpose, three-reader value, holes, numbered objectives and a four-tile ",{"type":532,"tag":546,"props":1273,"children":1275},{"className":1274},[],[1276],{"type":541,"value":29},{"type":541,"value":1278}," band, and records a six-item backend backlog (per-scope policy block and day series first). The plan sequences one groundwork thread (three backend fixes, an ",{"type":532,"tag":546,"props":1280,"children":1282},{"className":1281},[],[1283],{"type":541,"value":1284},"ActorHeader",{"type":541,"value":1286}," extraction, ",{"type":532,"tag":546,"props":1288,"children":1290},{"className":1289},[],[1291],{"type":541,"value":1292},"lib\u002Fdetail-bands.ts",{"type":541,"value":1294},", a shared chip\u002Fglyph table, an ",{"type":532,"tag":747,"props":1296,"children":1297},{},[1298],{"type":541,"value":1299},"Actor detail frame",{"type":541,"value":1301}," pattern entry) then six page threads Model → Workspace → MCP Server → Tool → Harness → Machine, and ends with eight decisions. Mark confirmed 1, 2, 4–8 on their defaults and overruled 3: Device Details stays its own later Phase-3 thread (the c90 device mock is still in manual design), so Machine Detail is rebuilt on the actor frame without borrowing from the mock.",{"project":9,"cycle":11,"dir":13,"title":14,"date":5,"lead":1303,"long":24,"ast":1304},"listing-viz executed",{"type":529,"children":1305},[1306],{"type":532,"tag":533,"props":1307,"children":1308},{},[1309,1314,1315,1321,1323,1335,1336,1341,1343,1349,1351,1356,1358,1364,1366,1372,1374,1380,1382,1388,1390,1395,1397,1403,1405,1411,1412,1418,1419,1425,1427,1432,1433,1438,1440,1445,1446,1451,1453,1458,1460,1465,1467,1486,1487,1493,1495,1501,1502,1508,1509,1515,1517,1523,1524,1530,1531,1536,1538,1544,1546,1552,1554,1559,1561,1567,1569,1575,1577,1582,1583,1588,1590,1596,1598,1603,1605,1611,1613,1619,1621,1627,1629,1634,1636,1642,1644,1649,1650,1656,1657,1663,1664,1670,1671,1677,1678,1684,1686,1692,1693,1699,1700,1706,1707,1713,1715,1720,1722,1728,1730,1735,1737,1742,1744,1749,1751,1757,1759,1765,1767,1773,1775,1780,1782,1788],{"type":532,"tag":537,"props":1310,"children":1311},{},[1312],{"type":541,"value":1313},"listing-viz executed (2026-09-20):",{"type":541,"value":753},{"type":532,"tag":546,"props":1316,"children":1318},{"className":1317},[],[1319],{"type":541,"value":1320},"listing-viz-plan.md",{"type":541,"value":1322}," run end to end, every decision on its default. ",{"type":532,"tag":747,"props":1324,"children":1325},{},[1326,1328,1333],{"type":541,"value":1327},"Layer (released as ",{"type":532,"tag":537,"props":1329,"children":1330},{},[1331],{"type":541,"value":1332},"0.9.16",{"type":541,"value":1334},"):",{"type":541,"value":753},{"type":532,"tag":546,"props":1337,"children":1339},{"className":1338},[],[1340],{"type":541,"value":1013},{"type":541,"value":1342}," (",{"type":532,"tag":546,"props":1344,"children":1346},{"className":1345},[],[1347],{"type":541,"value":1348},"data\u002FSegmentBar.vue",{"type":541,"value":1350},") — values in, normalized; 2 px surface gap; per-segment hover title; legend below \u002F beside \u002F none (title + value in text tokens); no colors → the three validated categorical slots with a fold into \"Other\" past the third ",{"type":532,"tag":747,"props":1352,"children":1353},{},[1354],{"type":541,"value":1355},"uncolored",{"type":541,"value":1357}," part (explicitly colored parts never fold); ",{"type":532,"tag":546,"props":1359,"children":1361},{"className":1360},[],[1362],{"type":541,"value":1363},"ordinal",{"type":541,"value":1365}," → one grape hue stepped light → dark, validated with the dataviz validator in both modes (light ",{"type":532,"tag":546,"props":1367,"children":1369},{"className":1368},[],[1370],{"type":541,"value":1371},"#BBA5FF · #895AE8 · #5E29CC · #32146E",{"type":541,"value":1373},", dark ",{"type":532,"tag":546,"props":1375,"children":1377},{"className":1376},[],[1378],{"type":541,"value":1379},"#E5DAFF · #BBA5FF · #895AE8 · #5E29CC",{"type":541,"value":1381},"); ",{"type":532,"tag":546,"props":1383,"children":1385},{"className":1384},[],[1386],{"type":541,"value":1387},"color: 'outline'",{"type":541,"value":1389}," for the presence vocabulary's \"stopped\"; empty → hairline track. ",{"type":532,"tag":546,"props":1391,"children":1393},{"className":1392},[],[1394],{"type":541,"value":1021},{"type":541,"value":1396}," lifts the donut's token-role resolver + palette, the history graph's categorical slots and the ordinal ramp into one file (",{"type":532,"tag":546,"props":1398,"children":1400},{"className":1399},[],[1401],{"type":541,"value":1402},"history-graph\u002Fpalette.js",{"type":541,"value":1404}," re-exports; donut and history graph render byte-identically). ",{"type":532,"tag":546,"props":1406,"children":1408},{"className":1407},[],[1409],{"type":541,"value":1410},"data-val",{"type":541,"value":818},{"type":532,"tag":546,"props":1413,"children":1415},{"className":1414},[],[1416],{"type":541,"value":1417},"data-total",{"type":541,"value":818},{"type":532,"tag":546,"props":1420,"children":1422},{"className":1421},[],[1423],{"type":541,"value":1424},"data-value",{"type":541,"value":1426}," hooks on ",{"type":532,"tag":546,"props":1428,"children":1430},{"className":1429},[],[1431],{"type":541,"value":29},{"type":541,"value":818},{"type":532,"tag":546,"props":1434,"children":1436},{"className":1435},[],[1437],{"type":541,"value":1013},{"type":541,"value":1439}," so headless checks read raw numbers. ",{"type":532,"tag":747,"props":1441,"children":1442},{},[1443],{"type":541,"value":1444},"Design site:",{"type":541,"value":753},{"type":532,"tag":546,"props":1447,"children":1449},{"className":1448},[],[1450],{"type":541,"value":1013},{"type":541,"value":1452}," demo (empty · minimal · typical · overflow-fold · ordinal · zero part · outline · beside · none-with-shared-key · inside a DataMachine) + registry entry; ",{"type":532,"tag":546,"props":1454,"children":1456},{"className":1455},[],[1457],{"type":541,"value":29},{"type":541,"value":1459}," demo gains the Composition \u002F Ranked share \u002F History presets with copy snippets; ",{"type":532,"tag":747,"props":1461,"children":1462},{},[1463],{"type":541,"value":1464},"Listing Overview Band",{"type":541,"value":1466}," app pattern carrying the four rules and the honest empty state. ",{"type":532,"tag":747,"props":1468,"children":1469},{},[1470,1472,1477,1479,1485],{"type":541,"value":1471},"qdash (",{"type":532,"tag":546,"props":1473,"children":1475},{"className":1474},[],[1476],{"type":541,"value":735},{"type":541,"value":1478},", twin ",{"type":532,"tag":546,"props":1480,"children":1482},{"className":1481},[],[1483],{"type":541,"value":1484},"cycles\u002Fc15",{"type":541,"value":1334},{"type":541,"value":753},{"type":532,"tag":546,"props":1488,"children":1490},{"className":1489},[],[1491],{"type":541,"value":1492},"lib\u002Factor-bands.ts",{"type":541,"value":1494}," grew ",{"type":532,"tag":546,"props":1496,"children":1498},{"className":1497},[],[1499],{"type":541,"value":1500},"shareOf",{"type":541,"value":818},{"type":532,"tag":546,"props":1503,"children":1505},{"className":1504},[],[1506],{"type":541,"value":1507},"segmentsOf",{"type":541,"value":818},{"type":532,"tag":546,"props":1510,"children":1512},{"className":1511},[],[1513],{"type":541,"value":1514},"byDay",{"type":541,"value":1516}," and per-band ",{"type":532,"tag":546,"props":1518,"children":1520},{"className":1519},[],[1521],{"type":541,"value":1522},"*Segments",{"type":541,"value":818},{"type":532,"tag":546,"props":1525,"children":1527},{"className":1526},[],[1528],{"type":541,"value":1529},"*Top",{"type":541,"value":818},{"type":532,"tag":546,"props":1532,"children":1534},{"className":1533},[],[1535],{"type":541,"value":1514},{"type":541,"value":1537}," (+ ",{"type":532,"tag":546,"props":1539,"children":1541},{"className":1540},[],[1542],{"type":541,"value":1543},"toolsBand",{"type":541,"value":1545}," ok · failed · denied with judged = calls − denied, since ",{"type":532,"tag":546,"props":1547,"children":1549},{"className":1548},[],[1550],{"type":541,"value":1551},"judged",{"type":541,"value":1553}," isn't served); ",{"type":532,"tag":546,"props":1555,"children":1557},{"className":1556},[],[1558],{"type":541,"value":681},{"type":541,"value":1560}," gained intensity \u002F coverage segments, shadow-by-harness and ",{"type":532,"tag":546,"props":1562,"children":1564},{"className":1563},[],[1565],{"type":541,"value":1566},"teamsBand",{"type":541,"value":1568},"; ",{"type":532,"tag":546,"props":1570,"children":1572},{"className":1571},[],[1573],{"type":541,"value":1574},"RankedBars",{"type":541,"value":1576}," composition (UxPercentBar rows, share of the ",{"type":532,"tag":747,"props":1578,"children":1579},{},[1580],{"type":541,"value":1581},"whole",{"type":541,"value":1381},{"type":532,"tag":546,"props":1584,"children":1586},{"className":1585},[],[1587],{"type":541,"value":953},{"type":541,"value":1589}," 262 (was 241). All thirteen bands re-drawn per the plan's table: three 2-slice donuts became meters (Machines, Harnesses coverage) and one a three-part outcome donut (Tools); Sessions gained the full-width sessions-per-day history (clean · flagged, window follows ",{"type":532,"tag":546,"props":1591,"children":1593},{"className":1592},[],[1594],{"type":541,"value":1595},"?period=",{"type":541,"value":1597},", caption names the 200-row cap); fleet index presence → ",{"type":532,"tag":546,"props":1599,"children":1601},{"className":1600},[],[1602],{"type":541,"value":1013},{"type":541,"value":1604},", At-risk ",{"type":532,"tag":546,"props":1606,"children":1608},{"className":1607},[],[1609],{"type":541,"value":1610},":spark",{"type":541,"value":1612}," from the real ",{"type":532,"tag":546,"props":1614,"children":1616},{"className":1615},[],[1617],{"type":541,"value":1618},"\u002Fapi\u002Ftrends.posture[].crit",{"type":541,"value":1620}," (a flat zero line on the seed — honest), five footprint sparks + ",{"type":532,"tag":546,"props":1622,"children":1624},{"className":1623},[],[1625],{"type":541,"value":1626},"rampTo",{"type":541,"value":1628}," + the ",{"type":532,"tag":546,"props":1630,"children":1632},{"className":1631},[],[1633],{"type":541,"value":713},{"type":541,"value":1635}," line retired. Verified headless on the isolated seed (",{"type":532,"tag":546,"props":1637,"children":1639},{"className":1638},[],[1640],{"type":541,"value":1641},"\u002Ftmp\u002Fc92\u002Flisting-viz.mjs",{"type":541,"value":1643},"): ",{"type":532,"tag":537,"props":1645,"children":1646},{},[1647],{"type":541,"value":1648},"149 checks, 0 failures over 22 page loads — 13 pages, 9 filtered",{"type":541,"value":1342},{"type":532,"tag":546,"props":1651,"children":1653},{"className":1652},[],[1654],{"type":541,"value":1655},"?kind=cli",{"type":541,"value":561},{"type":532,"tag":546,"props":1658,"children":1660},{"className":1659},[],[1661],{"type":541,"value":1662},"?kind=mcp",{"type":541,"value":561},{"type":532,"tag":546,"props":1665,"children":1667},{"className":1666},[],[1668],{"type":541,"value":1669},"?source=observed",{"type":541,"value":561},{"type":532,"tag":546,"props":1672,"children":1674},{"className":1673},[],[1675],{"type":541,"value":1676},"?provider=anthropic",{"type":541,"value":561},{"type":532,"tag":546,"props":1679,"children":1681},{"className":1680},[],[1682],{"type":541,"value":1683},"?posture=Critical",{"type":541,"value":1685}," → empty state, ",{"type":532,"tag":546,"props":1687,"children":1689},{"className":1688},[],[1690],{"type":541,"value":1691},"?posture=Elevated",{"type":541,"value":561},{"type":532,"tag":546,"props":1694,"children":1696},{"className":1695},[],[1697],{"type":541,"value":1698},"?period=7d&status=running",{"type":541,"value":561},{"type":532,"tag":546,"props":1701,"children":1703},{"className":1702},[],[1704],{"type":541,"value":1705},"?period=30d",{"type":541,"value":561},{"type":532,"tag":546,"props":1708,"children":1710},{"className":1709},[],[1711],{"type":541,"value":1712},"?team=Payments",{"type":541,"value":1714},"), both themes (token-role fills flip): console clean everywhere; every bar's parts sum to its card's value or to the whole its provenance names; ranked shares ≤ 100 and match the provenance's \"top N = X %\"; Tools donut counts = Calls; per-harness rows sum to installs; Sessions history lanes sum to the table rows under every period. Design demos render clean-console (the ",{"type":532,"tag":546,"props":1716,"children":1718},{"className":1717},[],[1719],{"type":541,"value":29},{"type":541,"value":1721}," page's 7 hydration warnings pre-exist — the demo's random-walk spark data). Consumer lockfiles refreshed, qdash ",{"type":532,"tag":546,"props":1723,"children":1725},{"className":1724},[],[1726],{"type":541,"value":1727},"dist\u002F",{"type":541,"value":1729}," regenerated. ",{"type":532,"tag":747,"props":1731,"children":1732},{},[1733],{"type":541,"value":1734},"Deviations, all recorded here:",{"type":541,"value":1736}," Models' Tokens headline is now every token kind (in + out + cache read + cache write) so the four-part bar cross-foots — the table's column stays in + out and the provenance says so; Sessions' Flagged bar counts ",{"type":532,"tag":747,"props":1738,"children":1739},{},[1740],{"type":541,"value":1741},"sessions by worst flag",{"type":541,"value":1743}," (DLP > sensitive > denied) so it sums to the card, the provenance carries the event counts; ",{"type":532,"tag":546,"props":1745,"children":1747},{"className":1746},[],[1748],{"type":541,"value":1013},{"type":541,"value":1750}," grew a ",{"type":532,"tag":546,"props":1752,"children":1754},{"className":1753},[],[1755],{"type":541,"value":1756},"width",{"type":541,"value":1758}," prop (a ",{"type":532,"tag":546,"props":1760,"children":1762},{"className":1761},[],[1763],{"type":541,"value":1764},"#right",{"type":541,"value":1766}," flex child has no intrinsic width) and honors ",{"type":532,"tag":546,"props":1768,"children":1770},{"className":1769},[],[1771],{"type":541,"value":1772},"legend=\"none\"",{"type":541,"value":1774}," for the per-harness stack, which owns one shared key; the people-page bands stay fleet-wide under a team filter (the people-pages ruling — cards describe the fleet, the table the filter), so those devices cross-foot with the provenance's \"of N seen\" rather than the filtered table. ",{"type":532,"tag":747,"props":1776,"children":1777},{},[1778],{"type":541,"value":1779},"Not done:",{"type":541,"value":1781}," a per-category daily series (plan decision 3, the next thread); archive captures kept in ",{"type":532,"tag":546,"props":1783,"children":1785},{"className":1784},[],[1786],{"type":541,"value":1787},"\u002Ftmp\u002Fc92\u002Flisting-viz\u002F",{"type":541,"value":1789},", as the earlier c92 threads did.",{"project":9,"cycle":11,"dir":13,"title":14,"date":5,"lead":1791,"long":24,"ast":1792},"day-series planned",{"type":529,"children":1793},[1794],{"type":532,"tag":533,"props":1795,"children":1796},{},[1797,1802,1803,1809,1810,1815,1817,1823,1824,1830,1831,1837,1839,1845,1847,1853,1855,1860,1862,1867,1869,1875,1877,1883,1885,1890,1892,1898,1900,1906,1908,1914],{"type":532,"tag":537,"props":1798,"children":1799},{},[1800],{"type":541,"value":1801},"day-series planned (2026-09-20):",{"type":541,"value":1037},{"type":532,"tag":546,"props":1804,"children":1806},{"className":1805},[],[1807],{"type":541,"value":1808},"day-series-prompt.md",{"type":541,"value":553},{"type":532,"tag":546,"props":1811,"children":1813},{"className":1812},[],[1814],{"type":541,"value":559},{"type":541,"value":1816},") — the listing-viz follow-ups made concrete. Verified before planning: the three timestamped fact tables (",{"type":532,"tag":546,"props":1818,"children":1820},{"className":1819},[],[1821],{"type":541,"value":1822},"llm_usage",{"type":541,"value":561},{"type":532,"tag":546,"props":1825,"children":1827},{"className":1826},[],[1828],{"type":541,"value":1829},"tool_calls",{"type":541,"value":561},{"type":532,"tag":546,"props":1832,"children":1834},{"className":1833},[],[1835],{"type":541,"value":1836},"runs",{"type":541,"value":1838}," ⋈ ",{"type":532,"tag":546,"props":1840,"children":1842},{"className":1841},[],[1843],{"type":541,"value":1844},"agent_instances",{"type":541,"value":1846}," via ",{"type":532,"tag":546,"props":1848,"children":1850},{"className":1849},[],[1851],{"type":541,"value":1852},"run_meta_map",{"type":541,"value":1854},") cover every listing axis; ",{"type":532,"tag":546,"props":1856,"children":1858},{"className":1857},[],[1859],{"type":541,"value":621},{"type":541,"value":1861},"'s scope resolver and ",{"type":532,"tag":546,"props":1863,"children":1865},{"className":1864},[],[1866],{"type":541,"value":1005},{"type":541,"value":1868},"' day axis + dedup key are the pieces to reuse; detail-pages' backend commit already emits ",{"type":532,"tag":546,"props":1870,"children":1872},{"className":1871},[],[1873],{"type":541,"value":1874},"judged\u002Fok\u002Ffailed",{"type":541,"value":1876}," and ",{"type":532,"tag":546,"props":1878,"children":1880},{"className":1879},[],[1881],{"type":541,"value":1882},"reasoning_tokens",{"type":541,"value":1884},", so the listing bands' two recorded deviations now ",{"type":532,"tag":747,"props":1886,"children":1887},{},[1888],{"type":541,"value":1889},"disagree",{"type":541,"value":1891}," with Model detail and are reconciled first (§A, unsequenced); everything else waits for timeframe-always's ",{"type":532,"tag":546,"props":1893,"children":1895},{"className":1894},[],[1896],{"type":541,"value":1897},"fleet_cutoff",{"type":541,"value":1899}," (executing in the other session as this was written — ",{"type":532,"tag":546,"props":1901,"children":1903},{"className":1902},[],[1904],{"type":541,"value":1905},"cost.vue",{"type":541,"value":1907}," already reads ",{"type":532,"tag":546,"props":1909,"children":1911},{"className":1910},[],[1912],{"type":541,"value":1913},"gf.apiUrl",{"type":541,"value":1915},"). Eight decisions at the end, defaults stated.",{"project":9,"cycle":11,"dir":13,"title":14,"date":5,"lead":1917,"long":24,"ast":1918},"detail-pages executed",{"type":529,"children":1919},[1920],{"type":532,"tag":533,"props":1921,"children":1922},{},[1923,1928,1930,1936,1937,1942,1944,1949,1951,1956,1958,1964,1966,1971,1973,1978,1979,1984,1985,1990,1992,1998,2000,2005,2006,2012,2013,2019,2020,2026,2027,2032,2033,2038,2040,2045,2047,2053,2055,2061,2063,2068,2069,2075,2077,2083,2084,2090,2092,2097,2099,2104,2106,2112,2114,2119,2121,2126,2128,2134,2136,2141,2143,2149,2151,2157,2159,2165,2167,2172,2174,2180,2182,2188,2190,2196,2198,2203],{"type":532,"tag":537,"props":1924,"children":1925},{},[1926],{"type":541,"value":1927},"detail-pages executed (2026-09-20):",{"type":541,"value":1929}," Plan run end to end, every decision as ruled (",{"type":532,"tag":546,"props":1931,"children":1933},{"className":1932},[],[1934],{"type":541,"value":1935},"detail-pages-guide.md",{"type":541,"value":561},{"type":532,"tag":546,"props":1938,"children":1940},{"className":1939},[],[1941],{"type":541,"value":559},{"type":541,"value":1943},"; twin record ",{"type":532,"tag":546,"props":1945,"children":1947},{"className":1946},[],[1948],{"type":541,"value":743},{"type":541,"value":1950}," §detail-pages). ",{"type":532,"tag":747,"props":1952,"children":1953},{},[1954],{"type":541,"value":1955},"Groundwork:",{"type":541,"value":1957}," backend ",{"type":532,"tag":546,"props":1959,"children":1961},{"className":1960},[],[1962],{"type":541,"value":1963},"web.rs",{"type":541,"value":1965}," — ",{"type":532,"tag":546,"props":1967,"children":1969},{"className":1968},[],[1970],{"type":541,"value":1208},{"type":541,"value":1972}," callers pass both maps (real ",{"type":532,"tag":546,"props":1974,"children":1976},{"className":1975},[],[1977],{"type":541,"value":1216},{"type":541,"value":818},{"type":532,"tag":546,"props":1980,"children":1982},{"className":1981},[],[1983],{"type":541,"value":1224},{"type":541,"value":818},{"type":532,"tag":546,"props":1986,"children":1988},{"className":1987},[],[1989],{"type":541,"value":1231},{"type":541,"value":1991}," on every page's Agents ledger), ",{"type":532,"tag":546,"props":1993,"children":1995},{"className":1994},[],[1996],{"type":541,"value":1997},"\u002Fapi\u002Ftools",{"type":541,"value":1999}," emits ",{"type":532,"tag":546,"props":2001,"children":2003},{"className":2002},[],[2004],{"type":541,"value":1551},{"type":541,"value":818},{"type":532,"tag":546,"props":2007,"children":2009},{"className":2008},[],[2010],{"type":541,"value":2011},"ok",{"type":541,"value":818},{"type":532,"tag":546,"props":2014,"children":2016},{"className":2015},[],[2017],{"type":541,"value":2018},"failed",{"type":541,"value":561},{"type":532,"tag":546,"props":2021,"children":2023},{"className":2022},[],[2024],{"type":541,"value":2025},"\u002Fapi\u002Fmodels",{"type":541,"value":1999},{"type":532,"tag":546,"props":2028,"children":2030},{"className":2029},[],[2031],{"type":541,"value":1882},{"type":541,"value":1342},{"type":532,"tag":546,"props":2034,"children":2036},{"className":2035},[],[2037],{"type":541,"value":1224},{"type":541,"value":2039}," = in + out + reasoning), ",{"type":532,"tag":546,"props":2041,"children":2043},{"className":2042},[],[2044],{"type":541,"value":621},{"type":541,"value":2046}," gains a ",{"type":532,"tag":546,"props":2048,"children":2050},{"className":2049},[],[2051],{"type":541,"value":2052},"policy",{"type":541,"value":2054}," block per scope, workspace runs end at their last observation; ",{"type":532,"tag":546,"props":2056,"children":2058},{"className":2057},[],[2059],{"type":541,"value":2060},"cargo test",{"type":541,"value":2062}," 58. Layer: ",{"type":532,"tag":546,"props":2064,"children":2066},{"className":2065},[],[2067],{"type":541,"value":1284},{"type":541,"value":623},{"type":532,"tag":546,"props":2070,"children":2072},{"className":2071},[],[2073],{"type":541,"value":2074},"ActorHeaderCell",{"type":541,"value":2076}," extracted from agent detail's inline header (decision 2 — layer, with a demo; shipped in 0.9.17 alongside timeframe-always's Filter change), then ",{"type":532,"tag":546,"props":2078,"children":2080},{"className":2079},[],[2081],{"type":541,"value":2082},"DataMachine showFullNumber",{"type":541,"value":1876},{"type":532,"tag":546,"props":2085,"children":2087},{"className":2086},[],[2088],{"type":541,"value":2089},"AgentAvatar size",{"type":541,"value":2091}," as ",{"type":532,"tag":537,"props":2093,"children":2094},{},[2095],{"type":541,"value":2096},"0.9.18",{"type":541,"value":2098},"; consumer lockfiles refreshed. qdash: ",{"type":532,"tag":546,"props":2100,"children":2102},{"className":2101},[],[2103],{"type":541,"value":1292},{"type":541,"value":2105}," (six pure band functions, vitest 20), ",{"type":532,"tag":546,"props":2107,"children":2109},{"className":2108},[],[2110],{"type":541,"value":2111},"lib\u002Fentity-chip.ts",{"type":541,"value":2113}," (the session page's glyph + chip vocabulary, shared); agent detail adopts ",{"type":532,"tag":546,"props":2115,"children":2117},{"className":2116},[],[2118],{"type":541,"value":1284},{"type":541,"value":2120}," with no visual change. Design site: both components documented (registry, adminProps demos), an ",{"type":532,"tag":747,"props":2122,"children":2123},{},[2124],{"type":541,"value":2125},"Actor Detail Frame",{"type":541,"value":2127}," pattern on ",{"type":532,"tag":546,"props":2129,"children":2131},{"className":2130},[],[2132],{"type":541,"value":2133},"\u002Fpatterns\u002Fapp",{"type":541,"value":2135}," whose demo cross-foots. ",{"type":532,"tag":747,"props":2137,"children":2138},{},[2139],{"type":541,"value":2140},"Pages:",{"type":541,"value":2142}," six fresh-context agents, one per page, each holding the guide's §4 section and a shared brief (",{"type":532,"tag":546,"props":2144,"children":2146},{"className":2145},[],[2147],{"type":541,"value":2148},"\u002Ftmp\u002Fc92\u002Fdetail-pages\u002FBRIEF.md",{"type":541,"value":2150},") — Model → Workspace → MCP Server → Tool → Harness → Machine, all on the frame, nothing old dropped (What the first screen doesn't carry sits under a \"More detail\" rule). Review caught two rule breaks before commit: Spend tiles abbreviated to \"$2k\" (→ ",{"type":532,"tag":546,"props":2152,"children":2154},{"className":2153},[],[2155],{"type":541,"value":2156},"showFullNumber",{"type":541,"value":2158},") and the model token bar's parts included cache and didn't sum to the headline (→ parts are in \u002F out \u002F reasoning; cache is named in provenance). Verified headless on a fresh seed instance (",{"type":532,"tag":546,"props":2160,"children":2162},{"className":2161},[],[2163],{"type":541,"value":2164},":7881",{"type":541,"value":2166},", rebuilt binary) — populated \u002F empty \u002F not-found \u002F dark, console clean, band ↔ ledger pairs checked per page, link spot-checks; ",{"type":532,"tag":546,"props":2168,"children":2170},{"className":2169},[],[2171],{"type":541,"value":953},{"type":541,"value":2173}," 287. Seed gaps (no skills, configured-only servers, shadow installs, ",{"type":532,"tag":546,"props":2175,"children":2177},{"className":2176},[],[2178],{"type":541,"value":2179},"default_on",{"type":541,"value":2181},") covered by specs and route-fulfilled fake payloads. Machine was rebuilt on the frame alone per decision 3 — Device Details remains its own later thread. Follow-ups in the twin record (",{"type":532,"tag":546,"props":2183,"children":2185},{"className":2184},[],[2186],{"type":541,"value":2187},"listingTo",{"type":541,"value":2189}," adapter branch, ",{"type":532,"tag":546,"props":2191,"children":2193},{"className":2192},[],[2194],{"type":541,"value":2195},"modelsBand",{"type":541,"value":2197}," reasoning part, ",{"type":532,"tag":546,"props":2199,"children":2201},{"className":2200},[],[2202],{"type":541,"value":29},{"type":541,"value":2204}," provenance slot, detail pages + timeframe).",{"project":9,"cycle":11,"dir":13,"title":14,"date":5,"lead":2206,"long":24,"ast":2207},"timeframe-always executed",{"type":529,"children":2208},[2209],{"type":532,"tag":533,"props":2210,"children":2211},{},[2212,2217,2218,2224,2226,2232,2234,2239,2241,2246,2248,2253,2254,2260,2261,2266,2268,2274,2276,2281,2283,2289,2291,2295,2296,2301,2303,2308,2310,2315,2317,2323,2325,2331,2333,2338,2340,2345,2346,2352,2353,2358,2360,2366,2368,2374,2376,2382,2384,2389,2390,2395,2396,2401,2403,2409,2411,2417,2419,2425,2426,2432,2433,2439,2441,2447,2449,2455,2457,2461,2463,2468,2470,2476,2478,2483,2485,2491,2493,2498,2500,2505,2506,2512,2513,2518,2520,2525,2526,2532,2533,2539,2540,2546,2547,2552,2554,2560,2561,2567,2569,2575,2576,2581,2582,2588,2590,2596,2597,2602,2603,2608,2609,2614,2615,2621,2623,2628,2630,2636,2638,2644,2646,2651,2653,2658,2660,2665,2667,2673,2674,2679,2681,2687,2689,2695,2697,2703,2705,2711,2712,2718,2719,2725,2727,2732,2733,2739,2741,2746,2748,2753,2755,2760,2762,2767,2769,2775,2777,2783,2785,2790,2792,2798,2800,2804,2806,2811,2812,2817,2819,2825,2826,2832,2833,2839],{"type":532,"tag":537,"props":2213,"children":2214},{},[2215],{"type":541,"value":2216},"timeframe-always executed (2026-09-20):",{"type":541,"value":753},{"type":532,"tag":546,"props":2219,"children":2221},{"className":2220},[],[2222],{"type":541,"value":2223},"timeframe-always-plan.md",{"type":541,"value":2225}," run end to end (qdash ",{"type":532,"tag":546,"props":2227,"children":2229},{"className":2228},[],[2230],{"type":541,"value":2231},"ca04a2ee",{"type":541,"value":2233}," + record ",{"type":532,"tag":546,"props":2235,"children":2237},{"className":2236},[],[2238],{"type":541,"value":296},{"type":541,"value":2240},"; layer ",{"type":532,"tag":537,"props":2242,"children":2243},{},[2244],{"type":541,"value":2245},"0.9.17",{"type":541,"value":2247}," — overtaken minutes later by detail-pages' 0.9.18, which is what qdash pins). ",{"type":532,"tag":747,"props":2249,"children":2250},{},[2251],{"type":541,"value":2252},"Layer:",{"type":541,"value":753},{"type":532,"tag":546,"props":2255,"children":2257},{"className":2256},[],[2258],{"type":541,"value":2259},"FilterItem.removable",{"type":541,"value":1876},{"type":532,"tag":546,"props":2262,"children":2264},{"className":2263},[],[2265],{"type":541,"value":1057},{"type":541,"value":2267},"'s permanent ",{"type":532,"tag":546,"props":2269,"children":2271},{"className":2270},[],[2272],{"type":541,"value":2273},"when:",{"type":541,"value":2275}," column, last before Config, rendered whenever ",{"type":532,"tag":546,"props":2277,"children":2279},{"className":2278},[],[2280],{"type":541,"value":1065},{"type":541,"value":2282}," is on and options are given — the bar is never in its empty state on such a consumer; ",{"type":532,"tag":546,"props":2284,"children":2286},{"className":2285},[],[2287],{"type":541,"value":2288},"timeframe=false",{"type":541,"value":2290}," keeps the \"Add Filter\" pill. ",{"type":532,"tag":747,"props":2292,"children":2293},{},[2294],{"type":541,"value":1444},{"type":541,"value":753},{"type":532,"tag":546,"props":2297,"children":2299},{"className":2298},[],[2300],{"type":541,"value":1057},{"type":541,"value":2302}," demo's \"Empty\" scenario became \"Timeframe only — the always-in-place state\" plus a ",{"type":532,"tag":546,"props":2304,"children":2306},{"className":2305},[],[2307],{"type":541,"value":2288},{"type":541,"value":2309}," scenario; ",{"type":532,"tag":546,"props":2311,"children":2313},{"className":2312},[],[2314],{"type":541,"value":1126},{"type":541,"value":2316}," demo gained ",{"type":532,"tag":546,"props":2318,"children":2320},{"className":2319},[],[2321],{"type":541,"value":2322},"removable=false",{"type":541,"value":2324}," (with ",{"type":532,"tag":546,"props":2326,"children":2328},{"className":2327},[],[2329],{"type":541,"value":2330},"formatVal",{"type":541,"value":2332}," option labels) and the ",{"type":532,"tag":546,"props":2334,"children":2336},{"className":2335},[],[2337],{"type":541,"value":1134},{"type":541,"value":2339}," admin toggle; registry entries for both (props ",{"type":532,"tag":546,"props":2341,"children":2343},{"className":2342},[],[2344],{"type":541,"value":2330},{"type":541,"value":818},{"type":532,"tag":546,"props":2347,"children":2349},{"className":2348},[],[2350],{"type":541,"value":2351},"roundLeft",{"type":541,"value":818},{"type":532,"tag":546,"props":2354,"children":2356},{"className":2355},[],[2357],{"type":541,"value":1134},{"type":541,"value":2359}," documented, ",{"type":532,"tag":546,"props":2361,"children":2363},{"className":2362},[],[2364],{"type":541,"value":2365},"timeframe-only",{"type":541,"value":2367}," state); ",{"type":532,"tag":546,"props":2369,"children":2371},{"className":2370},[],[2372],{"type":541,"value":2373},"qcontrol\u002Fteams",{"type":541,"value":2375}," mock flipped to the pill (page-registry note); all four pages render the pill headless with a clean console (",{"type":532,"tag":546,"props":2377,"children":2379},{"className":2378},[],[2380],{"type":541,"value":2381},"\u002Ftmp\u002Fc92\u002Ftimeframe-design.mjs",{"type":541,"value":2383},"). ",{"type":532,"tag":747,"props":2385,"children":2386},{},[2387],{"type":541,"value":2388},"qdash shell:",{"type":541,"value":753},{"type":532,"tag":546,"props":2391,"children":2393},{"className":2392},[],[2394],{"type":541,"value":1142},{"type":541,"value":561},{"type":532,"tag":546,"props":2397,"children":2399},{"className":2398},[],[2400],{"type":541,"value":1150},{"type":541,"value":2402}," shell-owned in ",{"type":532,"tag":546,"props":2404,"children":2406},{"className":2405},[],[2407],{"type":541,"value":2408},"useGlobalFilter",{"type":541,"value":2410}," (URL omits the default, localStorage follows, hydrated on register with URL winning), ",{"type":532,"tag":546,"props":2412,"children":2414},{"className":2413},[],[2415],{"type":541,"value":2416},"keys: []",{"type":541,"value":2418}," as a period-only registration, ",{"type":532,"tag":546,"props":2420,"children":2422},{"className":2421},[],[2423],{"type":541,"value":2424},"gf.periodLabel",{"type":541,"value":818},{"type":532,"tag":546,"props":2427,"children":2429},{"className":2428},[],[2430],{"type":541,"value":2431},"apiParams",{"type":541,"value":818},{"type":532,"tag":546,"props":2434,"children":2436},{"className":2435},[],[2437],{"type":541,"value":2438},"apiUrl(path, keys)",{"type":541,"value":2440}," — the picker because ",{"type":532,"tag":546,"props":2442,"children":2444},{"className":2443},[],[2445],{"type":541,"value":2446},"?host=",{"type":541,"value":2448}," is ",{"type":532,"tag":546,"props":2450,"children":2452},{"className":2451},[],[2453],{"type":541,"value":2454},"\u002Fapi\u002Fmachines",{"type":541,"value":2456},"' detail mode, so a listing forwards only the keys its endpoint reads; 8 new specs. ",{"type":532,"tag":747,"props":2458,"children":2459},{},[2460],{"type":541,"value":2140},{"type":541,"value":2462}," eight listings + fleet index fetch through ",{"type":532,"tag":546,"props":2464,"children":2466},{"className":2465},[],[2467],{"type":541,"value":1913},{"type":541,"value":2469}," and label their bands with the window; fleet index's ",{"type":532,"tag":546,"props":2471,"children":2473},{"className":2472},[],[2474],{"type":541,"value":2475},"seen7d",{"type":541,"value":2477}," retired for the windowed count with an all-time denominator; Sessions' period trigger bar and Cost's tab group retired (same ",{"type":532,"tag":546,"props":2479,"children":2481},{"className":2480},[],[2482],{"type":541,"value":1595},{"type":541,"value":2484},", deep links hold); Findings \u002F DLP period-only; people pages fetch rosters ",{"type":532,"tag":546,"props":2486,"children":2488},{"className":2487},[],[2489],{"type":541,"value":2490},"?period=all",{"type":541,"value":2492}," and activity with the global period, row fields window-neutral, Overviews take a ",{"type":532,"tag":546,"props":2494,"children":2496},{"className":2495},[],[2497],{"type":541,"value":1150},{"type":541,"value":2499}," prop, intensity keeps its fixed 30d feed; the solo Teams page registers period-only so its windowed numbers carry the pill. ",{"type":532,"tag":747,"props":2501,"children":2502},{},[2503],{"type":541,"value":2504},"Backend:",{"type":541,"value":753},{"type":532,"tag":546,"props":2507,"children":2509},{"className":2508},[],[2510],{"type":541,"value":2511},"fleet_anchor",{"type":541,"value":1342},{"type":532,"tag":546,"props":2514,"children":2516},{"className":2515},[],[2517],{"type":541,"value":1165},{"type":541,"value":2519},"), ",{"type":532,"tag":546,"props":2521,"children":2523},{"className":2522},[],[2524],{"type":541,"value":1897},{"type":541,"value":818},{"type":532,"tag":546,"props":2527,"children":2529},{"className":2528},[],[2530],{"type":541,"value":2531},"cutoff_pred",{"type":541,"value":818},{"type":532,"tag":546,"props":2534,"children":2536},{"className":2535},[],[2537],{"type":541,"value":2538},"lifetime_pred",{"type":541,"value":818},{"type":532,"tag":546,"props":2541,"children":2543},{"className":2542},[],[2544],{"type":541,"value":2545},"run_cost_map_in",{"type":541,"value":1568},{"type":532,"tag":546,"props":2548,"children":2550},{"className":2549},[],[2551],{"type":541,"value":1150},{"type":541,"value":2553}," on agents, inventory, models, tools, mcp-servers, workspaces, machines, harnesses under the four §C rules; costs \u002F dlp \u002F security \u002F sessions \u002F stats-24h moved onto the fleet anchor; ",{"type":532,"tag":546,"props":2555,"children":2557},{"className":2556},[],[2558],{"type":541,"value":2559},"agents_value",{"type":541,"value":818},{"type":532,"tag":546,"props":2562,"children":2564},{"className":2563},[],[2565],{"type":541,"value":2566},"costs_value",{"type":541,"value":2568}," extracted; one windowed test per body + the §C.2 invariant (",{"type":532,"tag":546,"props":2570,"children":2572},{"className":2571},[],[2573],{"type":541,"value":2574},"agents_cost_cross_foots_with_costs",{"type":541,"value":2383},{"type":532,"tag":537,"props":2577,"children":2578},{},[2579],{"type":541,"value":2580},"Where the plan was wrong:",{"type":541,"value":753},{"type":532,"tag":546,"props":2583,"children":2585},{"className":2584},[],[2586],{"type":541,"value":2587},"harnesses",{"type":541,"value":2589}," already carried ",{"type":532,"tag":546,"props":2591,"children":2593},{"className":2592},[],[2594],{"type":541,"value":2595},"agents",{"type":541,"value":818},{"type":532,"tag":546,"props":2598,"children":2600},{"className":2599},[],[2601],{"type":541,"value":1836},{"type":541,"value":818},{"type":532,"tag":546,"props":2604,"children":2606},{"className":2605},[],[2607],{"type":541,"value":1224},{"type":541,"value":818},{"type":532,"tag":546,"props":2610,"children":2612},{"className":2611},[],[2613],{"type":541,"value":1231},{"type":541,"value":818},{"type":532,"tag":546,"props":2616,"children":2618},{"className":2617},[],[2619],{"type":541,"value":2620},"last_active",{"type":541,"value":2622}," (the plan said the row had no activity fact) — windowed those, identity read from every run on record so an installed adapter keeps its name; ",{"type":532,"tag":546,"props":2624,"children":2626},{"className":2625},[],[2627],{"type":541,"value":1111},{"type":541,"value":2629}," replaced (its space-form ",{"type":532,"tag":546,"props":2631,"children":2633},{"className":2632},[],[2634],{"type":541,"value":2635},"datetime()",{"type":541,"value":2637}," literal let the whole cutoff day through against ",{"type":532,"tag":546,"props":2639,"children":2641},{"className":2640},[],[2642],{"type":541,"value":2643},"T",{"type":541,"value":2645},"-form timestamps — ",{"type":532,"tag":546,"props":2647,"children":2649},{"className":2648},[],[2650],{"type":541,"value":2531},{"type":541,"value":2652}," writes a ",{"type":532,"tag":546,"props":2654,"children":2656},{"className":2655},[],[2657],{"type":541,"value":2643},{"type":541,"value":2659},"-form literal); a ",{"type":532,"tag":537,"props":2661,"children":2662},{},[2663],{"type":541,"value":2664},"third index",{"type":541,"value":2666}," was needed, ",{"type":532,"tag":546,"props":2668,"children":2670},{"className":2669},[],[2671],{"type":541,"value":2672},"tool_calls(run_id)",{"type":541,"value":1965},{"type":532,"tag":546,"props":2675,"children":2677},{"className":2676},[],[2678],{"type":541,"value":629},{"type":541,"value":2680}," took ~5 s on the seed on both binaries (its ",{"type":532,"tag":546,"props":2682,"children":2684},{"className":2683},[],[2685],{"type":541,"value":2686},"run_id = ? OR entity_id = ?",{"type":541,"value":2688}," subselects scanned) and now takes 0.1 s; ",{"type":532,"tag":546,"props":2690,"children":2692},{"className":2691},[],[2693],{"type":541,"value":2694},"useApi",{"type":541,"value":2696}," dropped a path-change refetch that arrived mid-flight, so the hydrated period was served one poll late — it now queues (a real race the plan didn't foresee); ",{"type":532,"tag":546,"props":2698,"children":2700},{"className":2699},[],[2701],{"type":541,"value":2702},"PersonAgent",{"type":541,"value":2704},"'s windowed fields are ",{"type":532,"tag":546,"props":2706,"children":2708},{"className":2707},[],[2709],{"type":541,"value":2710},"windowSessions",{"type":541,"value":818},{"type":532,"tag":546,"props":2713,"children":2715},{"className":2714},[],[2716],{"type":541,"value":2717},"windowTokens",{"type":541,"value":1342},{"type":532,"tag":546,"props":2720,"children":2722},{"className":2721},[],[2723],{"type":541,"value":2724},"sessions",{"type":541,"value":2726}," was already the all-time roster count). ",{"type":532,"tag":537,"props":2728,"children":2729},{},[2730],{"type":541,"value":2731},"Verified headless",{"type":541,"value":1342},{"type":532,"tag":546,"props":2734,"children":2736},{"className":2735},[],[2737],{"type":541,"value":2738},"\u002Ftmp\u002Fc92\u002Ftimeframe.mjs",{"type":541,"value":2740},"): isolated seed ",{"type":532,"tag":546,"props":2742,"children":2744},{"className":2743},[],[2745],{"type":541,"value":937},{"type":541,"value":2747}," on the rebuilt binary — ",{"type":532,"tag":537,"props":2749,"children":2750},{},[2751],{"type":541,"value":2752},"53 checks, 0 failures",{"type":541,"value":2754},": pill with no ",{"type":532,"tag":546,"props":2756,"children":2758},{"className":2757},[],[2759],{"type":541,"value":1595},{"type":541,"value":2761}," on all 16 registered pages, Not Applicable on the unregistered ones, band = table on every listing at 24h \u002F 30d, Σ agents cost = Cost total at 24h \u002F 7d \u002F 30d (66.07 \u002F 331.44 \u002F 1926.20) on the API and in the DOM, all-time denominators constant across windows, persistence across a breadcrumb navigation \u002F reload \u002F bare URL, ",{"type":532,"tag":546,"props":2763,"children":2765},{"className":2764},[],[2766],{"type":541,"value":2490},{"type":541,"value":2768}," deep links, back-to-default clears URL and store, dark theme; console clean apart from two ",{"type":532,"tag":546,"props":2770,"children":2772},{"className":2771},[],[2773],{"type":541,"value":2774},"DataRankedBars",{"type":541,"value":2776}," duplicate-key warnings under 30d that belong to the concurrent day-series thread's layer component (keys by label). Live ",{"type":532,"tag":546,"props":2778,"children":2780},{"className":2779},[],[2781],{"type":541,"value":2782},":7878",{"type":541,"value":2784}," (old binary, root-owned): 30 shell-only checks pass; it needs the restart for windowing. ",{"type":532,"tag":546,"props":2786,"children":2788},{"className":2787},[],[2789],{"type":541,"value":953},{"type":541,"value":2791}," 290 (+8), ",{"type":532,"tag":546,"props":2793,"children":2795},{"className":2794},[],[2796],{"type":541,"value":2797},"cargo test -p qdash",{"type":541,"value":2799}," 68 (+10). ",{"type":532,"tag":747,"props":2801,"children":2802},{},[2803],{"type":541,"value":1779},{"type":541,"value":2805}," dist regeneration (PR time); detail pages still Not Applicable (detail-pages decision 6 inherits ",{"type":532,"tag":546,"props":2807,"children":2809},{"className":2808},[],[2810],{"type":541,"value":1595},{"type":541,"value":623},{"type":532,"tag":546,"props":2813,"children":2815},{"className":2814},[],[2816],{"type":541,"value":621},{"type":541,"value":2818}," period); archive captures kept in ",{"type":532,"tag":546,"props":2820,"children":2822},{"className":2821},[],[2823],{"type":541,"value":2824},"\u002Ftmp\u002Fc92\u002F",{"type":541,"value":1342},{"type":532,"tag":546,"props":2827,"children":2829},{"className":2828},[],[2830],{"type":541,"value":2831},"timeframe-*.png",{"type":541,"value":561},{"type":532,"tag":546,"props":2834,"children":2836},{"className":2835},[],[2837],{"type":541,"value":2838},"timeframe-design-*.png",{"type":541,"value":2840},").",{"project":9,"cycle":11,"dir":13,"title":14,"date":5,"lead":2842,"long":24,"ast":2843},"day-series §A executed",{"type":529,"children":2844},[2845],{"type":532,"tag":533,"props":2846,"children":2847},{},[2848,2853,2854,2860,2862,2867,2869,2874,2876,2888,2889,2895,2897,2903,2905,2910,2912,2917,2918,2923,2924,2929,2930,2935,2937,2943,2945,2950,2952,2971,2972,2977,2978,2984,2986,2991,2993,2999,3001,3007,3009,3015,3017,3023,3025,3031,3033,3037,3038,3043,3045,3050,3052,3057,3059,3063,3064,3070,3072,3077,3079,3085,3087,3092,3093,3098,3100,3108,3110,3115,3116,3121,3123,3128,3130,3136,3138,3143,3145,3153,3155,3160,3162,3167,3169,3175,3177,3183,3184,3188,3190,3195,3197,3202,3204,3210],{"type":532,"tag":537,"props":2849,"children":2850},{},[2851],{"type":541,"value":2852},"day-series §A executed (2026-09-20):",{"type":541,"value":753},{"type":532,"tag":546,"props":2855,"children":2857},{"className":2856},[],[2858],{"type":541,"value":2859},"day-series-plan.md",{"type":541,"value":2861}," §A run end to end, every decision on its default; §B–§F wait for timeframe-always (landed the same day, qdash ",{"type":532,"tag":546,"props":2863,"children":2865},{"className":2864},[],[2866],{"type":541,"value":2231},{"type":541,"value":2868},") and detail-pages — start §B from the branch tip. Twin record ",{"type":532,"tag":546,"props":2870,"children":2872},{"className":2871},[],[2873],{"type":541,"value":743},{"type":541,"value":2875}," §day-series §A. ",{"type":532,"tag":747,"props":2877,"children":2878},{},[2879,2881,2886],{"type":541,"value":2880},"Reconcile (qdash ",{"type":532,"tag":546,"props":2882,"children":2884},{"className":2883},[],[2885],{"type":541,"value":1492},{"type":541,"value":2887},", vitest 290):",{"type":541,"value":753},{"type":532,"tag":546,"props":2890,"children":2892},{"className":2891},[],[2893],{"type":541,"value":2894},"modelsBand.tokens",{"type":541,"value":2896}," is the served field (input + output + reasoning — the detail-pages ruling), the composition bar's parts are those three and sum to it, cache read \u002F write are named in the provenance (",{"type":532,"tag":546,"props":2898,"children":2900},{"className":2899},[],[2901],{"type":541,"value":2902},"+2.87B cache read · 324.1M cache write · 83 % of all tokens served from cache",{"type":541,"value":2904},"), never drawn — Models listing and Model detail now share one definition (the listing keeps a zero reasoning part in its legend where the detail omits it, so the legend states the definition); ",{"type":532,"tag":546,"props":2906,"children":2908},{"className":2907},[],[2909],{"type":541,"value":1543},{"type":541,"value":2911}," reads served ",{"type":532,"tag":546,"props":2913,"children":2915},{"className":2914},[],[2916],{"type":541,"value":1551},{"type":541,"value":818},{"type":532,"tag":546,"props":2919,"children":2921},{"className":2920},[],[2922],{"type":541,"value":2011},{"type":541,"value":818},{"type":532,"tag":546,"props":2925,"children":2927},{"className":2926},[],[2928],{"type":541,"value":2018},{"type":541,"value":818},{"type":532,"tag":546,"props":2931,"children":2933},{"className":2932},[],[2934],{"type":541,"value":1262},{"type":541,"value":2936},", the ",{"type":532,"tag":546,"props":2938,"children":2940},{"className":2939},[],[2941],{"type":541,"value":2942},"calls − denied",{"type":541,"value":2944}," derivation and its comment are gone, success = Σ ok ÷ Σ judged (the definition Tool detail's donut draws); specs assert parts sum to ",{"type":532,"tag":546,"props":2946,"children":2948},{"className":2947},[],[2949],{"type":541,"value":1224},{"type":541,"value":2951}," and ok + failed + denied = calls. ",{"type":532,"tag":747,"props":2953,"children":2954},{},[2955,2957,2962,2964,2969],{"type":541,"value":2956},"Layer (",{"type":532,"tag":537,"props":2958,"children":2959},{},[2960],{"type":541,"value":2961},"0.9.19",{"type":541,"value":2963},", then ",{"type":532,"tag":537,"props":2965,"children":2966},{},[2967],{"type":541,"value":2968},"0.9.20",{"type":541,"value":2970}," minutes later):",{"type":541,"value":753},{"type":532,"tag":546,"props":2973,"children":2975},{"className":2974},[],[2976],{"type":541,"value":2774},{"type":541,"value":1342},{"type":532,"tag":546,"props":2979,"children":2981},{"className":2980},[],[2982],{"type":541,"value":2983},"data\u002FRankedBars.vue",{"type":541,"value":2985},") — qdash's ",{"type":532,"tag":546,"props":2987,"children":2989},{"className":2988},[],[2990],{"type":541,"value":1574},{"type":541,"value":2992}," lifted verbatim plus ",{"type":532,"tag":546,"props":2994,"children":2996},{"className":2995},[],[2997],{"type":541,"value":2998},"layout: 'inline' | 'stacked'",{"type":541,"value":3000},"; stacked puts the label on its own line above a full-width bar with the share at the right end in text tokens, so id-shaped labels never truncate; 0.9.20 keys rows by index + label after timeframe-always's headless run caught duplicate-key warnings under 30d (two sessions by one user · agent, two workspaces named alike). qdash's ",{"type":532,"tag":546,"props":3002,"children":3004},{"className":3003},[],[3005],{"type":541,"value":3006},"RankedBars.vue",{"type":541,"value":3008}," is a shim for one release; Models \u002F Workspaces \u002F Machines Spend and Sessions Tokens call ",{"type":532,"tag":546,"props":3010,"children":3012},{"className":3011},[],[3013],{"type":541,"value":3014},"DataRankedBars layout=\"stacked\"",{"type":541,"value":3016}," — the three third-column Spend sites at ",{"type":532,"tag":546,"props":3018,"children":3020},{"className":3019},[],[3021],{"type":541,"value":3022},":width=\"150\"",{"type":541,"value":3024},", because a 190 px device beside a ",{"type":532,"tag":546,"props":3026,"children":3028},{"className":3027},[],[3029],{"type":541,"value":3030},"4.2k USD",{"type":541,"value":3032}," value overflows the card (the inline version had always overflowed there too, invisibly, since the bars have no track and the labels truncated); Teams \u002F Devices \u002F MCP Servers \u002F Tools \u002F Agents stay inline through the shim. ",{"type":532,"tag":747,"props":3034,"children":3035},{},[3036],{"type":541,"value":1444},{"type":541,"value":753},{"type":532,"tag":546,"props":3039,"children":3041},{"className":3040},[],[3042],{"type":541,"value":2774},{"type":541,"value":3044}," registry entry + demo (both layouts, empty em-dash, the same long paths inline vs stacked, people with mono off, inside a DataMachine); the ",{"type":532,"tag":546,"props":3046,"children":3048},{"className":3047},[],[3049],{"type":541,"value":29},{"type":541,"value":3051}," Ranked share preset and its copy snippet re-pointed to the component. ",{"type":532,"tag":747,"props":3053,"children":3054},{},[3055],{"type":541,"value":3056},"Cycle-manager:",{"type":541,"value":3058}," concurrent-threads paragraph under Thread Documentation Convention, synced to the six sisters (bob-wire, market-analyst, app.qpoint.io, qflow, qmap, qpixel), each committed. ",{"type":532,"tag":747,"props":3060,"children":3061},{},[3062],{"type":541,"value":2731},{"type":541,"value":1342},{"type":532,"tag":546,"props":3065,"children":3067},{"className":3066},[],[3068],{"type":541,"value":3069},"\u002Ftmp\u002Fc92\u002Fday-series-a\u002Fverify.mjs",{"type":541,"value":3071},", captures there): ",{"type":532,"tag":537,"props":3073,"children":3074},{},[3075],{"type":541,"value":3076},"192 checks, 0 failures over 48 page loads",{"type":541,"value":3078},", both themes, console clean — Models Tokens headline = Σ served tokens = Σ in + out + reasoning, bar parts input \u002F output \u002F reasoning sum to it, cache in the provenance only, tokens-by-model bar sums to it, every Model detail Tokens tile = its listing row and the seven sum to the headline; Tools Calls = Σ served calls, Outcome donut counts = Σ served ok \u002F failed \u002F denied = Calls, headline = Σ ok ÷ Σ judged, five Tool details' Calls \u002F Denied \u002F Success tiles and ",{"type":532,"tag":546,"props":3080,"children":3082},{"className":3081},[],[3083],{"type":541,"value":3084},"judged · ok · failed",{"type":541,"value":3086}," provenance = their rows; every stacked label = the rollup's top 3 and renders untruncated (also under ",{"type":532,"tag":546,"props":3088,"children":3090},{"className":3089},[],[3091],{"type":541,"value":1705},{"type":541,"value":1876},{"type":532,"tag":546,"props":3094,"children":3096},{"className":3095},[],[3097],{"type":541,"value":2490},{"type":541,"value":3099},"); the inline shim pages render. On seed ",{"type":532,"tag":537,"props":3101,"children":3102},{},[3103],{"type":532,"tag":546,"props":3104,"children":3106},{"className":3105},[],[3107],{"type":541,"value":2164},{"type":541,"value":3109},", not ",{"type":532,"tag":546,"props":3111,"children":3113},{"className":3112},[],[3114],{"type":541,"value":937},{"type":541,"value":1965},{"type":532,"tag":546,"props":3117,"children":3119},{"className":3118},[],[3120],{"type":541,"value":937},{"type":541,"value":3122}," runs a binary from before detail-pages and serves neither ",{"type":532,"tag":546,"props":3124,"children":3126},{"className":3125},[],[3127],{"type":541,"value":1882},{"type":541,"value":3129}," nor ",{"type":532,"tag":546,"props":3131,"children":3133},{"className":3132},[],[3134],{"type":541,"value":3135},"judged \u002F ok \u002F failed",{"type":541,"value":3137},", so §A can't be checked there; ",{"type":532,"tag":546,"props":3139,"children":3141},{"className":3140},[],[3142],{"type":541,"value":2164},{"type":541,"value":3144}," is the rebuilt binary on the same seed db. Consumer lockfiles refreshed to 0.9.20 and committed (design, bob-wire, app.qpoint.io, ",{"type":532,"tag":3146,"props":3147,"children":3151},"a",{"href":3148,"rel":3149},"http:\u002F\u002Fwww.qpoint.io",[3150],"nofollow",[3152],{"type":541,"value":438},{"type":541,"value":3154},", qflow, qdash). ",{"type":532,"tag":747,"props":3156,"children":3157},{},[3158],{"type":541,"value":3159},"Concurrency, as it happened:",{"type":541,"value":3161}," the sibling timeframe-always session committed the four listing pages (",{"type":532,"tag":546,"props":3163,"children":3165},{"className":3164},[],[3166],{"type":541,"value":2231},{"type":541,"value":3168},") minutes after this thread had edited them, sweeping the Tokens-card reconcile and the four call-site switches into its commit — the very interleaving the new rule names; noted in both threads' commit messages, nothing to undo. The design registry (shared with timeframe-always's uncommitted edits) was staged as this thread's hunk only (",{"type":532,"tag":546,"props":3170,"children":3172},{"className":3171},[],[3173],{"type":541,"value":3174},"\u002Ftmp\u002Fc92\u002Fday-series-a\u002Fstage.mjs",{"type":541,"value":3176},": HEAD blob + substitution → ",{"type":532,"tag":546,"props":3178,"children":3180},{"className":3179},[],[3181],{"type":541,"value":3182},"update-index",{"type":541,"value":2383},{"type":532,"tag":747,"props":3185,"children":3186},{},[3187],{"type":541,"value":1779},{"type":541,"value":3189}," §B–§F (sequenced); the ",{"type":532,"tag":546,"props":3191,"children":3193},{"className":3192},[],[3194],{"type":541,"value":3006},{"type":541,"value":3196}," shim deletion (next release); the ",{"type":532,"tag":747,"props":3198,"children":3199},{},[3200],{"type":541,"value":3201},"Listing overview band",{"type":541,"value":3203}," pattern still hand-rolls its ranked rows (§F); dist not regenerated (§A doesn't ask; PR time); archive captures kept in ",{"type":532,"tag":546,"props":3205,"children":3207},{"className":3206},[],[3208],{"type":541,"value":3209},"\u002Ftmp\u002Fc92\u002Fday-series-a\u002F",{"type":541,"value":1023},{"project":9,"cycle":11,"dir":13,"title":14,"date":3212,"lead":3213,"long":24,"ast":3214},"2026-09-19","actor-listings + surface-section",{"type":529,"children":3215},[3216],{"type":532,"tag":533,"props":3217,"children":3218},{},[3219,3224,3226,3232,3234,3240,3242,3248,3250,3256,3258,3264,3265,3271],{"type":532,"tag":537,"props":3220,"children":3221},{},[3222],{"type":541,"value":3223},"actor-listings + surface-section (2026-09-19):",{"type":541,"value":3225}," Plans written, nothing executed. Surveyed all 17 ",{"type":532,"tag":546,"props":3227,"children":3229},{"className":3228},[],[3230],{"type":541,"value":3231},"\u002Finventory",{"type":541,"value":3233}," pages and the design mocks: no listing has an overview today, filter state is four idioms (",{"type":532,"tag":546,"props":3235,"children":3237},{"className":3236},[],[3238],{"type":541,"value":3239},"useAgentFilter",{"type":541,"value":3241}," chip, posture\u002Fkind chips, ",{"type":532,"tag":546,"props":3243,"children":3245},{"className":3244},[],[3246],{"type":541,"value":3247},"UxTabGroup",{"type":541,"value":3249}," period, none), and Surface already exists three times on ",{"type":532,"tag":546,"props":3251,"children":3253},{"className":3252},[],[3254],{"type":541,"value":3255},"DataSurfacePanel",{"type":541,"value":3257}," (fleet index, agent detail, user-v3) with four more hand-rolled look-alikes on detail pages. See ",{"type":532,"tag":546,"props":3259,"children":3261},{"className":3260},[],[3262],{"type":541,"value":3263},"actor-listings-plan.md",{"type":541,"value":561},{"type":532,"tag":546,"props":3266,"children":3268},{"className":3267},[],[3269],{"type":541,"value":3270},"surface-section-plan.md",{"type":541,"value":3272}," — each ends with the decisions to confirm.",{"project":9,"cycle":11,"dir":13,"title":14,"date":3212,"lead":3274,"long":24,"ast":3275},"actor-listings + surface-section executed",{"type":529,"children":3276},[3277],{"type":532,"tag":533,"props":3278,"children":3279},{},[3280,3285,3286,3291,3292,3297,3298,3303,3305,3311,3313,3318,3320,3325,3327,3333,3335,3341,3342,3347,3348,3354,3356,3362,3364,3370,3372,3377,3379,3384,3385,3391,3393,3399,3401,3407,3409,3415,3416,3422,3424,3429,3431,3436,3438,3443,3445,3450,3451,3457,3459,3464,3466,3471,3473,3478,3480,3485,3487,3492],{"type":532,"tag":537,"props":3281,"children":3282},{},[3283],{"type":541,"value":3284},"actor-listings + surface-section executed (2026-09-19):",{"type":541,"value":729},{"type":532,"tag":546,"props":3287,"children":3289},{"className":3288},[],[3290],{"type":541,"value":735},{"type":541,"value":737},{"type":532,"tag":546,"props":3293,"children":3295},{"className":3294},[],[3296],{"type":541,"value":743},{"type":541,"value":2383},{"type":532,"tag":747,"props":3299,"children":3300},{},[3301],{"type":541,"value":3302},"Actor listings:",{"type":541,"value":3304}," all eight ",{"type":532,"tag":546,"props":3306,"children":3308},{"className":3307},[],[3309],{"type":541,"value":3310},"\u002Finventory\u002F*",{"type":541,"value":3312}," listings and the fleet index register with the global filter and carry a three-",{"type":532,"tag":546,"props":3314,"children":3316},{"className":3315},[],[3317],{"type":541,"value":29},{"type":541,"value":3319}," overview cross-footing with the filtered table (",{"type":532,"tag":546,"props":3321,"children":3323},{"className":3322},[],[3324],{"type":541,"value":1492},{"type":541,"value":3326},", vitest); key catalogue extended; ",{"type":532,"tag":546,"props":3328,"children":3330},{"className":3329},[],[3331],{"type":541,"value":3332},"agentKeyDef()",{"type":541,"value":3334}," shows the agent's name for an entity-id pill via the new layer ",{"type":532,"tag":546,"props":3336,"children":3338},{"className":3337},[],[3339],{"type":541,"value":3340},"FilterKeyDefinition.formatVal",{"type":541,"value":1568},{"type":532,"tag":546,"props":3343,"children":3345},{"className":3344},[],[3346],{"type":541,"value":3239},{"type":541,"value":818},{"type":532,"tag":546,"props":3349,"children":3351},{"className":3350},[],[3352],{"type":541,"value":3353},"InventoryAgentFilterChip",{"type":541,"value":3355}," and every hand-rolled chip row retired; Sessions' period is now the global timeframe; the fleet index's hand-rolled ",{"type":532,"tag":546,"props":3357,"children":3359},{"className":3358},[],[3360],{"type":541,"value":3361},"DataMetricBase",{"type":541,"value":3363}," box and ",{"type":532,"tag":546,"props":3365,"children":3367},{"className":3366},[],[3368],{"type":541,"value":3369},"sparkGeo",{"type":541,"value":3371}," sparks became ",{"type":532,"tag":546,"props":3373,"children":3375},{"className":3374},[],[3376],{"type":541,"value":29},{"type":541,"value":3378},"s. ",{"type":532,"tag":747,"props":3380,"children":3381},{},[3382],{"type":541,"value":3383},"Surface section:",{"type":541,"value":1957},{"type":532,"tag":546,"props":3386,"children":3388},{"className":3387},[],[3389],{"type":541,"value":3390},"\u002Fapi\u002Fsurface?\u003Cscope>=",{"type":541,"value":3392}," (agent \u002F host \u002F user \u002F team \u002F model \u002F server \u002F tool \u002F workspace \u002F adapter, none = fleet, own axis omitted; builder lifted out of ",{"type":532,"tag":546,"props":3394,"children":3396},{"className":3395},[],[3397],{"type":541,"value":3398},"\u002Fapi\u002Fagent",{"type":541,"value":3400},"; Rust tests per scope); layer ",{"type":532,"tag":546,"props":3402,"children":3404},{"className":3403},[],[3405],{"type":541,"value":3406},"DataSurfaceSection",{"type":541,"value":3408}," chrome; qdash ",{"type":532,"tag":546,"props":3410,"children":3412},{"className":3411},[],[3413],{"type":541,"value":3414},"\u003CSurfaceSection>",{"type":541,"value":623},{"type":532,"tag":546,"props":3417,"children":3419},{"className":3418},[],[3420],{"type":541,"value":3421},"lib\u002Fsurface-rollups.ts",{"type":541,"value":3423}," (bar metric per axis, house cells, ",{"type":532,"tag":546,"props":3425,"children":3427},{"className":3426},[],[3428],{"type":541,"value":2187},{"type":541,"value":3430}," deep links onto the filtered listings); placed on all seven actor detail pages and the fleet index (replacing five hand-rolled lists and agent detail's inline block; tools detail net new). Design site: ",{"type":532,"tag":546,"props":3432,"children":3434},{"className":3433},[],[3435],{"type":541,"value":3406},{"type":541,"value":3437}," demo + registry entry, ",{"type":532,"tag":546,"props":3439,"children":3441},{"className":3440},[],[3442],{"type":541,"value":1057},{"type":541,"value":3444}," demo documents ",{"type":532,"tag":546,"props":3446,"children":3448},{"className":3447},[],[3449],{"type":541,"value":2330},{"type":541,"value":561},{"type":532,"tag":546,"props":3452,"children":3454},{"className":3453},[],[3455],{"type":541,"value":3456},"user-v3",{"type":541,"value":3458}," adopts the chrome, stale page-registry note corrected. Layer released as ",{"type":532,"tag":537,"props":3460,"children":3461},{},[3462],{"type":541,"value":3463},"0.9.15",{"type":541,"value":3465},". Verified headless on the Meridian seed with a clean console on every page; ",{"type":532,"tag":546,"props":3467,"children":3469},{"className":3468},[],[3470],{"type":541,"value":953},{"type":541,"value":3472}," 232, ",{"type":532,"tag":546,"props":3474,"children":3476},{"className":3475},[],[3477],{"type":541,"value":2797},{"type":541,"value":3479}," 52. Not done: Sessions detail (phase 3), the expand-row compact grid, migrating Findings \u002F Cost onto the global filter; the live ",{"type":532,"tag":546,"props":3481,"children":3483},{"className":3482},[],[3484],{"type":541,"value":2782},{"type":541,"value":3486}," backend must be restarted on the rebuilt binary for ",{"type":532,"tag":546,"props":3488,"children":3490},{"className":3489},[],[3491],{"type":541,"value":621},{"type":541,"value":1023},{"project":9,"cycle":11,"dir":13,"title":14,"date":3212,"lead":3494,"long":24,"ast":3495},"session-details executed , phase 3 thread 1 of 5)",{"type":529,"children":3496},[3497],{"type":532,"tag":533,"props":3498,"children":3499},{},[3500,3505,3506,3512,3514,3520,3521,3526,3528,3534,3536,3541,3542,3548,3550,3556,3558,3564,3566,3572,3574,3580,3582,3587,3589,3595,3597,3603,3605,3611,3613,3618,3620,3625,3627,3632],{"type":532,"tag":537,"props":3501,"children":3502},{},[3503],{"type":541,"value":3504},"session-details executed (2026-09-19, phase 3 thread 1 of 5):",{"type":541,"value":753},{"type":532,"tag":546,"props":3507,"children":3509},{"className":3508},[],[3510],{"type":541,"value":3511},"\u002Finventory\u002Fsessions\u002Fdetail",{"type":541,"value":3513}," replaced in place with the c90 session mock (",{"type":532,"tag":546,"props":3515,"children":3517},{"className":3516},[],[3518],{"type":541,"value":3519},"session-details-prompt.md",{"type":541,"value":561},{"type":532,"tag":546,"props":3522,"children":3524},{"className":3523},[],[3525],{"type":541,"value":559},{"type":541,"value":3527},"). Backend: ",{"type":532,"tag":546,"props":3529,"children":3531},{"className":3530},[],[3532],{"type":541,"value":3533},"session_detail_value",{"type":541,"value":3535}," now serves the run's ",{"type":532,"tag":537,"props":3537,"children":3538},{},[3539],{"type":541,"value":3540},"event grain",{"type":541,"value":1342},{"type":532,"tag":546,"props":3543,"children":3545},{"className":3544},[],[3546],{"type":541,"value":3547},"events",{"type":541,"value":3549},", ≤500, typed per event — tool calls pre-joined with decision and result by ",{"type":532,"tag":546,"props":3551,"children":3553},{"className":3552},[],[3554],{"type":541,"value":3555},"call_id",{"type":541,"value":3557},", message text and tool arguments passed through a new ",{"type":532,"tag":546,"props":3559,"children":3561},{"className":3560},[],[3562],{"type":541,"value":3563},"normalize::redact_text",{"type":541,"value":3565}," so secrets\u002FSSNs render masked exactly as the DLP findings show them) and ",{"type":532,"tag":546,"props":3567,"children":3569},{"className":3568},[],[3570],{"type":541,"value":3571},"token_parts",{"type":541,"value":3573},"; the \"may not serve an event log\" worry in ",{"type":532,"tag":546,"props":3575,"children":3577},{"className":3576},[],[3578],{"type":541,"value":3579},"plan.md",{"type":541,"value":3581}," was moot — the ",{"type":532,"tag":546,"props":3583,"children":3585},{"className":3584},[],[3586],{"type":541,"value":3547},{"type":541,"value":3588}," table had everything. qdash: ",{"type":532,"tag":546,"props":3590,"children":3592},{"className":3591},[],[3593],{"type":541,"value":3594},"lib\u002Fsession-transcript.ts",{"type":541,"value":3596}," (vitest 9) turns the grain into the layer ",{"type":532,"tag":546,"props":3598,"children":3600},{"className":3599},[],[3601],{"type":541,"value":3602},"TranscriptPanel",{"type":541,"value":3604}," shape (a turn per user prompt, one ",{"type":532,"tag":546,"props":3606,"children":3608},{"className":3607},[],[3609],{"type":541,"value":3610},"tool",{"type":541,"value":3612}," part per call, policy kept out of the dialogue), raw-event rows, the Surface chip grid, the rail's policy-event count. Page: identity ribbon, Transcript ⇄ Surface, TranscriptPanel with the BYOK disclaimer, Raw events toggle, sticky rail of four ",{"type":532,"tag":546,"props":3614,"children":3616},{"className":3615},[],[3617],{"type":541,"value":29},{"type":541,"value":3619},"s + labelled fields + Files, \"(AI gen summary)\" and Account projected; per Mark, everything the old page had that the mock doesn't (Actions, Commands, Egress, Sensitive files, DLP, Models & Tokens) stays under a \"More detail\" rule. Verified on the seed (Marcus's run with an AWS key in the prompt renders masked; Priya's Cursor run with a denied call); no event-less run exists in the seed, so that branch is covered by tests only. ",{"type":532,"tag":546,"props":3621,"children":3623},{"className":3622},[],[3624],{"type":541,"value":2060},{"type":541,"value":3626}," 54, ",{"type":532,"tag":546,"props":3628,"children":3630},{"className":3629},[],[3631],{"type":541,"value":953},{"type":541,"value":3633}," 241.",{"project":9,"cycle":43,"dir":45,"title":46,"date":18,"lead":20,"long":23,"ast":3635},{"type":529,"children":3636},[3637],{"type":532,"tag":533,"props":3638,"children":3639},{},[3640],{"type":532,"tag":747,"props":3641,"children":3642},{},[3643],{"type":541,"value":3644},"Backfilled 2026-09-18 from the shipped code — Key Changes were not written as the\nwork happened.",{"project":9,"cycle":35,"dir":37,"title":38,"date":18,"lead":3646,"long":24,"ast":3647},"filter alignment pass",{"type":529,"children":3648},[3649],{"type":532,"tag":533,"props":3650,"children":3651},{},[3652,3657,3659,3664,3666,3671,3673,3679,3681,3687,3688,3694,3696,3702,3704,3710,3711,3717,3719,3725,3727,3733,3734,3740],{"type":532,"tag":537,"props":3653,"children":3654},{},[3655],{"type":541,"value":3656},"filter alignment pass (2026-09-18):",{"type":541,"value":3658}," Tuned ",{"type":532,"tag":546,"props":3660,"children":3662},{"className":3661},[],[3663],{"type":541,"value":651},{"type":541,"value":3665},"'s page-level ",{"type":532,"tag":546,"props":3667,"children":3669},{"className":3668},[],[3670],{"type":541,"value":1057},{"type":541,"value":3672}," and per-section ",{"type":532,"tag":546,"props":3674,"children":3676},{"className":3675},[],[3677],{"type":541,"value":3678},"FilterTriggerBar",{"type":541,"value":3680}," placement and the section backgrounds against the mock, iterating with capture checks (",{"type":532,"tag":546,"props":3682,"children":3684},{"className":3683},[],[3685],{"type":541,"value":3686},"public\u002Farchive\u002F2026-q3\u002Fsweep\u002Fc90-filter-align-check*.png",{"type":541,"value":561},{"type":532,"tag":546,"props":3689,"children":3691},{"className":3690},[],[3692],{"type":541,"value":3693},"-bg-check.png",{"type":541,"value":3695}," — scratch shots, not archive entries). Two global layer tweaks made in the same pass while tuning the chrome, shipped in q-nuxt-layer 0.9.13 and visible to every consumer: ",{"type":532,"tag":546,"props":3697,"children":3699},{"className":3698},[],[3700],{"type":541,"value":3701},"UxAvatar",{"type":541,"value":3703}," border weight ",{"type":532,"tag":546,"props":3705,"children":3707},{"className":3706},[],[3708],{"type":541,"value":3709},"border-1",{"type":541,"value":879},{"type":532,"tag":546,"props":3712,"children":3714},{"className":3713},[],[3715],{"type":541,"value":3716},"border-2",{"type":541,"value":3718},", and ",{"type":532,"tag":546,"props":3720,"children":3722},{"className":3721},[],[3723],{"type":541,"value":3724},"UxPageTitle",{"type":541,"value":3726},"'s underline padding ",{"type":532,"tag":546,"props":3728,"children":3730},{"className":3729},[],[3731],{"type":541,"value":3732},"pb-1",{"type":541,"value":879},{"type":532,"tag":546,"props":3735,"children":3737},{"className":3736},[],[3738],{"type":541,"value":3739},"pb-3",{"type":541,"value":1023},{"project":9,"cycle":11,"dir":13,"title":14,"date":18,"lead":3742,"long":24,"ast":3743},"kick-off",{"type":529,"children":3744},[3745],{"type":532,"tag":533,"props":3746,"children":3747},{},[3748,3753,3755,3761,3763,3769,3771,3777,3778,3784,3786,3792,3793,3799,3801,3806,3808,3813,3814,3820],{"type":532,"tag":537,"props":3749,"children":3750},{},[3751],{"type":541,"value":3752},"kick-off (2026-09-18):",{"type":541,"value":3754}," Research and plan, no code. Located the real target (qdash UI, not app.qpoint.io), verified layer 0.9.13 is installed there with every component the page needs, mapped the fixture world → ",{"type":532,"tag":546,"props":3756,"children":3758},{"className":3757},[],[3759],{"type":541,"value":3760},"\u002Fapi\u002F*",{"type":541,"value":3762}," gap (the problem's shape is data, not components), read app.qpoint.io's filter end to end (",{"type":532,"tag":546,"props":3764,"children":3766},{"className":3765},[],[3767],{"type":541,"value":3768},"layouts\u002Fglobal.vue",{"type":541,"value":3770}," teleport, URL-computed ",{"type":532,"tag":546,"props":3772,"children":3774},{"className":3773},[],[3775],{"type":541,"value":3776},"filters",{"type":541,"value":561},{"type":532,"tag":546,"props":3779,"children":3781},{"className":3780},[],[3782],{"type":541,"value":3783},"query-string",{"type":541,"value":3785}," store persistence, lazy ",{"type":532,"tag":546,"props":3787,"children":3789},{"className":3788},[],[3790],{"type":541,"value":3791},"requestValSuggestions",{"type":541,"value":561},{"type":532,"tag":546,"props":3794,"children":3796},{"className":3795},[],[3797],{"type":541,"value":3798},"useTrafficFilters",{"type":541,"value":3800}," consumption) and restated it for qdash. Four decisions taken with Mark: rewrite ",{"type":532,"tag":546,"props":3802,"children":3804},{"className":3803},[],[3805],{"type":541,"value":689},{"type":541,"value":3807}," in place · projected badges for unserved denominators · replicate the global filter shell-wide · keep team assignment in the expand row. See ",{"type":532,"tag":546,"props":3809,"children":3811},{"className":3810},[],[3812],{"type":541,"value":3579},{"type":541,"value":561},{"type":532,"tag":546,"props":3815,"children":3817},{"className":3816},[],[3818],{"type":541,"value":3819},"global-filter-plan.md",{"type":541,"value":1023},{"project":9,"cycle":11,"dir":13,"title":14,"date":18,"lead":3822,"long":24,"ast":3823},"phase 1 + 2",{"type":529,"children":3824},[3825],{"type":532,"tag":533,"props":3826,"children":3827},{},[3828,3833,3835,3840,3842,3847,3849,3855,3857,3863,3865,3871,3873,3879,3881,3887,3889,3895,3897,3902,3904,3910,3912,3918,3919,3925,3927,3933,3935,3941,3943,3949,3950,3955,3957,3962,3964,3970,3972,3978,3980,3986,3987,3992,3994,3999,4001,4006],{"type":532,"tag":537,"props":3829,"children":3830},{},[3831],{"type":541,"value":3832},"phase 1 + 2 (2026-09-18):",{"type":541,"value":3834}," Executed ",{"type":532,"tag":546,"props":3836,"children":3838},{"className":3837},[],[3839],{"type":541,"value":3579},{"type":541,"value":3841}," end to end on qcontrol ",{"type":532,"tag":546,"props":3843,"children":3845},{"className":3844},[],[3846],{"type":541,"value":735},{"type":541,"value":3848}," (twin record: ",{"type":532,"tag":546,"props":3850,"children":3852},{"className":3851},[],[3853],{"type":541,"value":3854},"qcontrol\u002Fcrates\u002Fqdash\u002Fui\u002Fcycles\u002Fc15.teams-users-devices-port\u002FCYCLE.md",{"type":541,"value":3856},"). Layer: finished the sticky\u002Fstuck prototype in ",{"type":532,"tag":546,"props":3858,"children":3860},{"className":3859},[],[3861],{"type":541,"value":3862},"filter\u002Findex.vue",{"type":541,"value":3864}," — the component owns pinning (",{"type":532,"tag":546,"props":3866,"children":3868},{"className":3867},[],[3869],{"type":541,"value":3870},"stickyTop",{"type":541,"value":3872}," prop, ",{"type":532,"tag":546,"props":3874,"children":3876},{"className":3875},[],[3877],{"type":541,"value":3878},"_stuck",{"type":541,"value":3880}," class + ",{"type":532,"tag":546,"props":3882,"children":3884},{"className":3883},[],[3885],{"type":541,"value":3886},"stuck",{"type":541,"value":3888}," emit, ",{"type":532,"tag":546,"props":3890,"children":3892},{"className":3891},[],[3893],{"type":541,"value":3894},"bg-surface-sunken",{"type":541,"value":3896}," backing), filter v2 hex → tokens; released as ",{"type":532,"tag":537,"props":3898,"children":3899},{},[3900],{"type":541,"value":3901},"q-nuxt-layer 0.9.14",{"type":541,"value":3903},". qdash: ",{"type":532,"tag":546,"props":3905,"children":3907},{"className":3906},[],[3908],{"type":541,"value":3909},"lib\u002Ffilter-query.ts",{"type":541,"value":3911}," (URL grammar, 14 specs), ",{"type":532,"tag":546,"props":3913,"children":3915},{"className":3914},[],[3916],{"type":541,"value":3917},"lib\u002Ffilter-keys.ts",{"type":541,"value":561},{"type":532,"tag":546,"props":3920,"children":3922},{"className":3921},[],[3923],{"type":541,"value":3924},"composables\u002FuseGlobalFilter.ts",{"type":541,"value":3926}," (singleton, URL as truth, localStorage follow-across-pages, ",{"type":532,"tag":546,"props":3928,"children":3930},{"className":3929},[],[3931],{"type":541,"value":3932},"ready",{"type":541,"value":3934}," gating), ",{"type":532,"tag":546,"props":3936,"children":3938},{"className":3937},[],[3939],{"type":541,"value":3940},"components\u002FGlobalFilterBar.vue",{"type":541,"value":3942}," mounted once in ",{"type":532,"tag":546,"props":3944,"children":3946},{"className":3945},[],[3947],{"type":541,"value":3948},"layouts\u002Fdefault.vue",{"type":541,"value":1568},{"type":532,"tag":546,"props":3951,"children":3953},{"className":3952},[],[3954],{"type":541,"value":681},{"type":541,"value":3956}," (16 specs: person\u002Fdevice\u002Fteam rows on real ",{"type":532,"tag":546,"props":3958,"children":3960},{"className":3959},[],[3961],{"type":541,"value":3760},{"type":541,"value":3963}," data, ",{"type":532,"tag":546,"props":3965,"children":3967},{"className":3966},[],[3968],{"type":541,"value":3969},"PROJECTED",{"type":541,"value":3971}," constants for the unserved denominators); ",{"type":532,"tag":546,"props":3973,"children":3975},{"className":3974},[],[3976],{"type":541,"value":3977},"pages\u002Fteams.vue",{"type":541,"value":3979}," rewritten in place from the design source with projected badges, inline team assignment kept, ",{"type":532,"tag":546,"props":3981,"children":3983},{"className":3982},[],[3984],{"type":541,"value":3985},"?team=",{"type":541,"value":553},{"type":532,"tag":546,"props":3988,"children":3990},{"className":3989},[],[3991],{"type":541,"value":922},{"type":541,"value":3993}," deep links preserved; nav label → \"Teams, Users & Devices\". Verified headless against live ",{"type":532,"tag":546,"props":3995,"children":3997},{"className":3996},[],[3998],{"type":541,"value":2782},{"type":541,"value":4000}," (sparse) and the Meridian seed (populated): console clean, filter round-trips through the URL, persists across pages, pins on scroll, both themes. Endcap SVGs were already real art — the \"checkerboard\" fix in ",{"type":532,"tag":546,"props":4002,"children":4004},{"className":4003},[],[4005],{"type":541,"value":3819},{"type":541,"value":4007}," §3.4 was moot.",{"project":9,"cycle":519,"dir":521,"title":522,"date":33,"lead":20,"long":24,"ast":4009},{"type":529,"children":4010},[4011],{"type":532,"tag":4012,"props":4013,"children":4014},"ul",{},[4015],{"type":532,"tag":4016,"props":4017,"children":4018},"li",{},[4019,4024,4026,4032,4034,4040,4042,4048,4050,4055,4057,4063,4065,4071],{"type":532,"tag":537,"props":4020,"children":4021},{},[4022],{"type":541,"value":4023},"2026-09-17:",{"type":541,"value":4025}," Relocated the demo page from ",{"type":532,"tag":546,"props":4027,"children":4029},{"className":4028},[],[4030],{"type":541,"value":4031},"app\u002Fpages\u002Fpages\u002Fphase2-chat-transcript.vue",{"type":541,"value":4033},"\nto ",{"type":532,"tag":546,"props":4035,"children":4037},{"className":4036},[],[4038],{"type":541,"value":4039},"app\u002Fpages\u002Fpages\u002Fphase1\u002Fchat-transcript.vue",{"type":541,"value":4041}," (registered ",{"type":532,"tag":546,"props":4043,"children":4045},{"className":4044},[],[4046],{"type":541,"value":4047},"phase: 'phase1'",{"type":541,"value":4049},",\n",{"type":532,"tag":546,"props":4051,"children":4053},{"className":4052},[],[4054],{"type":541,"value":2724},{"type":541,"value":4056}," group) — the \"Phase 2\" label this cycle coined for it collided with\nc88's later, unrelated \"Phase 2 redesign\" work once that cycle needed the name\nfor real. Chat Transcript was always phase1-world-adjacent (a layer component\ndemo, not a v2 redesign of something already shipped), so it moved rather than\nkeeping the name. ",{"type":532,"tag":546,"props":4058,"children":4060},{"className":4059},[],[4061],{"type":541,"value":4062},"\u002Fpages",{"type":541,"value":4064},"' \"Phase 2\" card now points at c88's ",{"type":532,"tag":546,"props":4066,"children":4068},{"className":4067},[],[4069],{"type":541,"value":4070},"\u002Fpages\u002Fphase2",{"type":541,"value":4072},"\ninstead. No component or fixture code changed, only the page's location and\nback-link.",{"project":9,"cycle":51,"dir":53,"title":54,"date":33,"lead":4074,"long":24,"ast":4075},"Phase 2 formalized as a site-wide bucket",{"type":529,"children":4076},[4077],{"type":532,"tag":533,"props":4078,"children":4079},{},[4080,4085,4087,4092,4094,4100,4102,4107,4108,4113,4114,4119,4121,4127,4129,4135,4137,4143,4145,4151,4152,4158,4160,4166,4168,4174,4176,4181,4183,4189,4191,4197,4199,4204,4206,4211],{"type":532,"tag":537,"props":4081,"children":4082},{},[4083],{"type":541,"value":4084},"Phase 2 formalized as a site-wide bucket (2026-09-17):",{"type":541,"value":4086}," The design site's own ",{"type":532,"tag":546,"props":4088,"children":4090},{"className":4089},[],[4091],{"type":541,"value":4062},{"type":541,"value":4093}," index had a single \"Phase 2\" card pointing at c85's unrelated ",{"type":532,"tag":546,"props":4095,"children":4097},{"className":4096},[],[4098],{"type":541,"value":4099},"phase2-chat-transcript.vue",{"type":541,"value":4101}," — a naming collision with this cycle's own \"Phase 2 redesign\" work. Resolved by relocating: c85's chat-transcript moved into ",{"type":532,"tag":546,"props":4103,"children":4105},{"className":4104},[],[4106],{"type":541,"value":4039},{"type":541,"value":4041},{"type":532,"tag":546,"props":4109,"children":4111},{"className":4110},[],[4112],{"type":541,"value":4047},{"type":541,"value":561},{"type":532,"tag":546,"props":4115,"children":4117},{"className":4116},[],[4118],{"type":541,"value":2724},{"type":541,"value":4120}," group — it was always phase1-world-adjacent, not a v2 redesign), and this cycle's lab page moved from the flat ",{"type":532,"tag":546,"props":4122,"children":4124},{"className":4123},[],[4125],{"type":541,"value":4126},"phase2-global-filter.vue",{"type":541,"value":4128}," to ",{"type":532,"tag":546,"props":4130,"children":4132},{"className":4131},[],[4133],{"type":541,"value":4134},"app\u002Fpages\u002Fpages\u002Fphase2\u002Fglobal-filter.vue",{"type":541,"value":4136},", the first page under a proper ",{"type":532,"tag":546,"props":4138,"children":4140},{"className":4139},[],[4141],{"type":541,"value":4142},"phase2",{"type":541,"value":4144}," bucket. Added ",{"type":532,"tag":546,"props":4146,"children":4148},{"className":4147},[],[4149],{"type":541,"value":4150},"'phase2'",{"type":541,"value":4128},{"type":532,"tag":546,"props":4153,"children":4155},{"className":4154},[],[4156],{"type":541,"value":4157},"PagePhase",{"type":541,"value":4159},", a ",{"type":532,"tag":546,"props":4161,"children":4163},{"className":4162},[],[4164],{"type":541,"value":4165},"pageHref",{"type":541,"value":4167}," branch (",{"type":532,"tag":546,"props":4169,"children":4171},{"className":4170},[],[4172],{"type":541,"value":4173},"\u002Fpages\u002Fphase2\u002F\u003Cslug>",{"type":541,"value":4175},"), a ",{"type":532,"tag":546,"props":4177,"children":4179},{"className":4178},[],[4180],{"type":541,"value":4142},{"type":541,"value":4182}," pageGroup, and a new ",{"type":532,"tag":546,"props":4184,"children":4186},{"className":4185},[],[4187],{"type":541,"value":4188},"app\u002Fpages\u002Fpages\u002Fphase2\u002Findex.vue",{"type":541,"value":4190}," landing page (mirrors phase1\u002Findex.vue's tone, lists every ",{"type":532,"tag":546,"props":4192,"children":4194},{"className":4193},[],[4195],{"type":541,"value":4196},"phase: 'phase2'",{"type":541,"value":4198}," registry entry — no Linear-tracked plan needed since Phase 2 has none). ",{"type":532,"tag":546,"props":4200,"children":4202},{"className":4201},[],[4203],{"type":541,"value":4062},{"type":541,"value":4205},"' Phase 2 card now points at ",{"type":532,"tag":546,"props":4207,"children":4209},{"className":4208},[],[4210],{"type":541,"value":4070},{"type":541,"value":4212}," and describes it as \"v2 redesigns of components already extracted in Phase 1\" rather than naming chat-transcript.",{"project":9,"cycle":35,"dir":37,"title":38,"date":33,"lead":4214,"long":24,"ast":4215},"user-details-v3",{"type":529,"children":4216},[4217],{"type":532,"tag":533,"props":4218,"children":4219},{},[4220,4225,4227,4233,4235,4241,4243,4249,4251,4257,4259,4265,4267,4273,4275,4281,4283,4289,4291,4297,4299,4305,4307,4313,4314,4320,4322,4328,4330,4336,4338,4344,4345,4350],{"type":532,"tag":537,"props":4221,"children":4222},{},[4223],{"type":541,"value":4224},"user-details-v3 (2026-09-17):",{"type":541,"value":4226}," New ",{"type":532,"tag":546,"props":4228,"children":4230},{"className":4229},[],[4231],{"type":541,"value":4232},"app\u002Fpages\u002Fqcontrol\u002Fuser-v3.vue",{"type":541,"value":4234}," executing the dropped ",{"type":532,"tag":546,"props":4236,"children":4238},{"className":4237},[],[4239],{"type":541,"value":4240},"designs\u002Fuser-details - anotated@2x.png",{"type":541,"value":4242}," — compact identity header, a ",{"type":532,"tag":546,"props":4244,"children":4246},{"className":4245},[],[4247],{"type":541,"value":4248},"DataHistoryGraph",{"type":541,"value":4250}," \"Total Session per Agent\" chart paired with clickable headline stats, scroll-anchor tabs (Deployments\u002FAgents\u002FSessions\u002FSurface, no scroll-spy), ",{"type":532,"tag":546,"props":4252,"children":4254},{"className":4253},[],[4255],{"type":541,"value":4256},"QcontrolDeviceAgentsCard.vue",{"type":541,"value":4258}," device cards (green \"Sensor Active\" banner + a dense nested Agents table), then the Sessions table reused verbatim from ",{"type":532,"tag":546,"props":4260,"children":4262},{"className":4261},[],[4263],{"type":541,"value":4264},"user-v2",{"type":541,"value":4266},". Versioned as a new file per the repo's own frozen\u002Fworking pattern: ",{"type":532,"tag":546,"props":4268,"children":4270},{"className":4269},[],[4271],{"type":541,"value":4272},"user-v2.vue",{"type":541,"value":4274}," frozen as the historical archive, every page's ",{"type":532,"tag":546,"props":4276,"children":4278},{"className":4277},[],[4279],{"type":541,"value":4280},"QCONTROL_HOME.person",{"type":541,"value":4282}," repointed to ",{"type":532,"tag":546,"props":4284,"children":4286},{"className":4285},[],[4287],{"type":541,"value":4288},"\u002Fqcontrol\u002Fuser-v3",{"type":541,"value":4290},", registry entry added and ",{"type":532,"tag":546,"props":4292,"children":4294},{"className":4293},[],[4295],{"type":541,"value":4296},"qcontrol-user-v2",{"type":541,"value":4298},"'s marked superseded. Sections the mock doesn't show (verdict line, chain strip, Models card, Accounts\u002FSurface detail) are deferred, not deleted. Fixture additions for the design's data story: one new fully-covered multi-device person in ",{"type":532,"tag":546,"props":4300,"children":4302},{"className":4301},[],[4303],{"type":541,"value":4304},"people.ts",{"type":541,"value":4306}," and an ",{"type":532,"tag":546,"props":4308,"children":4310},{"className":4309},[],[4311],{"type":541,"value":4312},"'iphone'",{"type":541,"value":753},{"type":532,"tag":546,"props":4315,"children":4317},{"className":4316},[],[4318],{"type":541,"value":4319},"DeviceKind",{"type":541,"value":4321}," in ",{"type":532,"tag":546,"props":4323,"children":4325},{"className":4324},[],[4326],{"type":541,"value":4327},"world\u002Ftypes.ts",{"type":541,"value":4329}," (one-line ",{"type":532,"tag":546,"props":4331,"children":4333},{"className":4332},[],[4334],{"type":541,"value":4335},"kindLabel",{"type":541,"value":4337}," addition in the eight exhaustive maps). See ",{"type":532,"tag":546,"props":4339,"children":4341},{"className":4340},[],[4342],{"type":541,"value":4343},"user-details-v3-prompt.md",{"type":541,"value":818},{"type":532,"tag":546,"props":4346,"children":4348},{"className":4347},[],[4349],{"type":541,"value":559},{"type":541,"value":1023},{"project":9,"cycle":35,"dir":37,"title":38,"date":33,"lead":4352,"long":24,"ast":4353},"users-devices-listing",{"type":529,"children":4354},[4355],{"type":532,"tag":533,"props":4356,"children":4357},{},[4358,4363,4365,4371,4373,4379,4381,4387,4389,4394,4396,4401,4403,4408,4410,4416,4418,4423,4424,4429,4430,4435,4437,4443,4444,4449],{"type":532,"tag":537,"props":4359,"children":4360},{},[4361],{"type":541,"value":4362},"users-devices-listing (2026-09-17):",{"type":541,"value":4364}," Combined Teams, Users, and Devices into one page (",{"type":532,"tag":546,"props":4366,"children":4368},{"className":4367},[],[4369],{"type":541,"value":4370},"app\u002Fpages\u002Fqcontrol\u002Fteams.vue",{"type":541,"value":4372},") per a newer dropped mock (",{"type":532,"tag":546,"props":4374,"children":4376},{"className":4375},[],[4377],{"type":541,"value":4378},"designs\u002Fusers-devices-listing-page - anotated@2x.png",{"type":541,"value":4380},") — ",{"type":532,"tag":546,"props":4382,"children":4384},{"className":4383},[],[4385],{"type":541,"value":4386},"NavJumpPills",{"type":541,"value":4388}," section switcher, a page-level ",{"type":532,"tag":546,"props":4390,"children":4392},{"className":4391},[],[4393],{"type":541,"value":1057},{"type":541,"value":4395}," (team\u002Fprovider) and per-section ",{"type":532,"tag":546,"props":4397,"children":4399},{"className":4398},[],[4400],{"type":541,"value":3678},{"type":541,"value":4402}," replacing the old click-to-filter header rings, ",{"type":532,"tag":546,"props":4404,"children":4406},{"className":4405},[],[4407],{"type":541,"value":29},{"type":541,"value":4409}," presets for the coverage stat cards, and a net-new Teams table (the mock's own annotation flagged it missing). Retired the standalone ",{"type":532,"tag":546,"props":4411,"children":4413},{"className":4412},[],[4414],{"type":541,"value":4415},"\u002Fqcontrol\u002Fdevices",{"type":541,"value":4417}," route (sidebar + registry updated); its content is now the page's Devices section. First real (non-demo) consumer of the ",{"type":532,"tag":546,"props":4419,"children":4421},{"className":4420},[],[4422],{"type":541,"value":29},{"type":541,"value":553},{"type":532,"tag":546,"props":4425,"children":4427},{"className":4426},[],[4428],{"type":541,"value":1057},{"type":541,"value":553},{"type":532,"tag":546,"props":4431,"children":4433},{"className":4432},[],[4434],{"type":541,"value":3678},{"type":541,"value":4436}," layer components. See ",{"type":532,"tag":546,"props":4438,"children":4440},{"className":4439},[],[4441],{"type":541,"value":4442},"users-devices-listing-prompt.md",{"type":541,"value":818},{"type":532,"tag":546,"props":4445,"children":4447},{"className":4446},[],[4448],{"type":541,"value":559},{"type":541,"value":1023},{"project":9,"cycle":35,"dir":37,"title":38,"date":33,"lead":4451,"long":24,"ast":4452},"session-details",{"type":529,"children":4453},[4454],{"type":532,"tag":533,"props":4455,"children":4456},{},[4457,4462,4464,4470,4472,4478,4480,4486,4487,4493,4495,4500,4502,4508,4509,4515,4516,4522,4523,4529,4531,4537,4539,4544,4546,4551,4553,4559,4561,4566,4568,4574,4576,4582,4584,4590,4592,4598,4600,4606,4608,4614,4616,4622,4624,4629,4630,4635,4637,4642,4643,4648],{"type":532,"tag":537,"props":4458,"children":4459},{},[4460],{"type":541,"value":4461},"session-details (2026-09-17):",{"type":541,"value":4463}," Reworked ",{"type":532,"tag":546,"props":4465,"children":4467},{"className":4466},[],[4468],{"type":541,"value":4469},"app\u002Fpages\u002Fqcontrol\u002Fsession-v2.vue",{"type":541,"value":4471}," against ",{"type":532,"tag":546,"props":4473,"children":4475},{"className":4474},[],[4476],{"type":541,"value":4477},"designs\u002Fsession-details@2x.png",{"type":541,"value":4479}," — a two-column body (reading column + sticky metadata rail) replaces the single full-width column below the receipt. Added ",{"type":532,"tag":546,"props":4481,"children":4483},{"className":4482},[],[4484],{"type":541,"value":4485},"sessionTranscript()",{"type":541,"value":1342},{"type":532,"tag":546,"props":4488,"children":4490},{"className":4489},[],[4491],{"type":541,"value":4492},"app\u002Fdata\u002Fphase1\u002Fderived\u002Fsession-detail.ts",{"type":541,"value":4494},") mapping the c77 beat\u002Fchapter grain onto the c85 ",{"type":532,"tag":546,"props":4496,"children":4498},{"className":4497},[],[4499],{"type":541,"value":3602},{"type":541,"value":4501}," family's ",{"type":532,"tag":546,"props":4503,"children":4505},{"className":4504},[],[4506],{"type":541,"value":4507},"Transcript",{"type":541,"value":553},{"type":532,"tag":546,"props":4510,"children":4512},{"className":4511},[],[4513],{"type":541,"value":4514},"TranscriptTurn",{"type":541,"value":553},{"type":532,"tag":546,"props":4517,"children":4519},{"className":4518},[],[4520],{"type":541,"value":4521},"TranscriptMessage",{"type":541,"value":553},{"type":532,"tag":546,"props":4524,"children":4526},{"className":4525},[],[4527],{"type":541,"value":4528},"ContentPart",{"type":541,"value":4530}," shape — chapters become turns, each machinery event inside an action beat becomes its own ",{"type":532,"tag":546,"props":4532,"children":4534},{"className":4533},[],[4535],{"type":541,"value":4536},"Ran: …",{"type":541,"value":4538}," tool-call row. Two decisions made with Mark before building (see ",{"type":532,"tag":546,"props":4540,"children":4542},{"className":4541},[],[4543],{"type":541,"value":3519},{"type":541,"value":4545},"): policy violations stay out of the transcript entirely (no policy-speaker concept in ",{"type":532,"tag":546,"props":4547,"children":4549},{"className":4548},[],[4550],{"type":541,"value":4521},{"type":541,"value":4552},"; they remain in the existing Exceptions box, now linking to a raw-events row instead of an in-transcript beat anchor) and the ",{"type":532,"tag":546,"props":4554,"children":4556},{"className":4555},[],[4557],{"type":541,"value":4558},"TranscriptNavigator",{"type":541,"value":4560}," turn-navigator ships despite echoing the removed \"Chapters\" concept, since it's a separately-shipped c85 interaction. The rail's Tokens\u002Fest. Cost\u002FTool Calls\u002FPolicy Events tiles are ",{"type":532,"tag":546,"props":4562,"children":4564},{"className":4563},[],[4565],{"type":541,"value":29},{"type":541,"value":4567}," instances (Cost's ",{"type":532,"tag":546,"props":4569,"children":4571},{"className":4570},[],[4572],{"type":541,"value":4573},"$",{"type":541,"value":4575}," rides the ",{"type":532,"tag":546,"props":4577,"children":4579},{"className":4578},[],[4580],{"type":541,"value":4581},"#left",{"type":541,"value":4583}," slot since ",{"type":532,"tag":546,"props":4585,"children":4587},{"className":4586},[],[4588],{"type":541,"value":4589},"DataMetricValue",{"type":541,"value":4591},"'s ",{"type":532,"tag":546,"props":4593,"children":4595},{"className":4594},[],[4596],{"type":541,"value":4597},"unit",{"type":541,"value":4599}," always renders after the number; Policy Events uses ",{"type":532,"tag":546,"props":4601,"children":4603},{"className":4602},[],[4604],{"type":541,"value":4605},"healthModes.ZERO_TOLERANCE",{"type":541,"value":4607},"); User\u002FAgent\u002FDevice\u002FAccount\u002FRepo reuse the receipt's existing ",{"type":532,"tag":546,"props":4609,"children":4611},{"className":4610},[],[4612],{"type":541,"value":4613},"QcontrolEntityChip",{"type":541,"value":4615},"s, relaid as labelled fields. Files is a new list sourced from the session's ",{"type":532,"tag":546,"props":4617,"children":4619},{"className":4618},[],[4620],{"type":541,"value":4621},"file_access",{"type":541,"value":4623}," events directly, honest to the real event shape (no permission-decision field, so a sensitive read reads \"sensitive read\" rather than the mock's literal \"read not allowed\"). First real (non-demo) joint consumer of ",{"type":532,"tag":546,"props":4625,"children":4627},{"className":4626},[],[4628],{"type":541,"value":3602},{"type":541,"value":1876},{"type":532,"tag":546,"props":4631,"children":4633},{"className":4632},[],[4634],{"type":541,"value":29},{"type":541,"value":4636},". Verified via SSR curl against all five switcher sessions (including the no-events case) — no runtime errors. See ",{"type":532,"tag":546,"props":4638,"children":4640},{"className":4639},[],[4641],{"type":541,"value":3519},{"type":541,"value":818},{"type":532,"tag":546,"props":4644,"children":4646},{"className":4645},[],[4647],{"type":541,"value":559},{"type":541,"value":1023},{"project":9,"cycle":35,"dir":37,"title":38,"date":33,"lead":4650,"long":24,"ast":4651},"session-details, work-in-progress toggle",{"type":529,"children":4652},[4653],{"type":532,"tag":533,"props":4654,"children":4655},{},[4656,4661,4663,4669],{"type":532,"tag":537,"props":4657,"children":4658},{},[4659],{"type":541,"value":4660},"session-details, work-in-progress toggle (2026-09-17):",{"type":541,"value":4662}," Follow-up per Mark's review — the pre-mock verdict line + receipt card (identity header, four stat blocks, Exceptions box) and the Composition notes section moved below the mock-faithful transcript\u002Frail view and collapsed behind a \"Show Work In Progress\" toggle (",{"type":532,"tag":546,"props":4664,"children":4666},{"className":4665},[],[4667],{"type":541,"value":4668},"showWip",{"type":541,"value":4670},", off by default), since the rail and Exceptions box already carry that information for an ordinary reader. The scenario switcher and tab switch stay visible at top (still working\u002Fnavigation aids, not review-only scaffolding).",{"project":9,"cycle":35,"dir":37,"title":38,"date":33,"lead":4672,"long":23,"ast":4673},"session-details, transcript disclaimer",{"type":529,"children":4674},[4675],{"type":532,"tag":533,"props":4676,"children":4677},{},[4678,4683,4685,4690,4692,4698],{"type":532,"tag":537,"props":4679,"children":4680},{},[4681],{"type":541,"value":4682},"session-details, transcript disclaimer (2026-09-17):",{"type":541,"value":4684}," Follow-up — the BYOK\u002Fencryption disclaimer paragraph moved below ",{"type":532,"tag":546,"props":4686,"children":4688},{"className":4687},[],[4689],{"type":541,"value":3602},{"type":541,"value":4691}," (was above it) and collapsed behind a \"Show details\" toggle (",{"type":532,"tag":546,"props":4693,"children":4695},{"className":4694},[],[4696],{"type":541,"value":4697},"showTranscriptDetails",{"type":541,"value":4699},", off by default), so the transcript itself is the first thing a reader sees under the tab switch.",{"project":9,"cycle":35,"dir":37,"title":38,"date":33,"lead":4701,"long":24,"ast":4702},"session-details, default session + switcher relocation",{"type":529,"children":4703},[4704],{"type":532,"tag":533,"props":4705,"children":4706},{},[4707,4712,4714,4720,4722,4728,4730,4736,4738,4744,4746,4752],{"type":532,"tag":537,"props":4708,"children":4709},{},[4710],{"type":541,"value":4711},"session-details, default session + switcher relocation (2026-09-17):",{"type":541,"value":4713}," Follow-up — the page now defaults to Kai's blocked-tool session (",{"type":532,"tag":546,"props":4715,"children":4717},{"className":4716},[],[4718],{"type":541,"value":4719},"ses-kai-04",{"type":541,"value":4721},", a local ",{"type":532,"tag":546,"props":4723,"children":4725},{"className":4724},[],[4726],{"type":541,"value":4727},"DEFAULT_ID",{"type":541,"value":4729}," override in ",{"type":532,"tag":546,"props":4731,"children":4733},{"className":4732},[],[4734],{"type":541,"value":4735},"session-v2.vue",{"type":541,"value":4737},", not a change to ",{"type":532,"tag":546,"props":4739,"children":4741},{"className":4740},[],[4742],{"type":541,"value":4743},"derived\u002Fsession-detail.ts",{"type":541,"value":4745},"'s shared ",{"type":532,"tag":546,"props":4747,"children":4749},{"className":4748},[],[4750],{"type":541,"value":4751},"DEFAULT_SESSION_ID",{"type":541,"value":4753},", which the other session-detail pages still default from) instead of Marcus's sensitive-file session. The \"review a session\" scenario switcher moved out of the top working view into the Work In Progress block, alongside the verdict\u002Freceipt card it was always scaffolding for.",{"project":9,"cycle":26,"dir":28,"title":29,"date":33,"lead":20,"long":24,"ast":4755},{"type":529,"children":4756},[4757],{"type":532,"tag":4012,"props":4758,"children":4759},{},[4760],{"type":532,"tag":4016,"props":4761,"children":4762},{},[4763,4767,4769,4775,4776,4781,4783,4788,4789,4795,4796,4802,4804,4809,4810,4815,4817,4822,4824,4829,4831,4837,4838,4844,4845,4851,4852,4858],{"type":532,"tag":537,"props":4764,"children":4765},{},[4766],{"type":541,"value":33},{"type":541,"value":4768}," — Built ",{"type":532,"tag":546,"props":4770,"children":4772},{"className":4771},[],[4773],{"type":541,"value":4774},"q-nuxt-layer\u002Fcomponents\u002Fdata\u002Fmachine\u002Findex.vue",{"type":541,"value":1342},{"type":532,"tag":546,"props":4777,"children":4779},{"className":4778},[],[4780],{"type":541,"value":29},{"type":541,"value":4782},"): title, full-width hairline, optional description, and provenance row wrapped around ",{"type":532,"tag":546,"props":4784,"children":4786},{"className":4785},[],[4787],{"type":541,"value":4589},{"type":541,"value":553},{"type":532,"tag":546,"props":4790,"children":4792},{"className":4791},[],[4793],{"type":541,"value":4794},"DataMetricTrend",{"type":541,"value":553},{"type":532,"tag":546,"props":4797,"children":4799},{"className":4798},[],[4800],{"type":541,"value":4801},"DataMetricSpark",{"type":541,"value":4803},", with ",{"type":532,"tag":546,"props":4805,"children":4807},{"className":4806},[],[4808],{"type":541,"value":4581},{"type":541,"value":553},{"type":532,"tag":546,"props":4811,"children":4813},{"className":4812},[],[4814],{"type":541,"value":1764},{"type":541,"value":4816}," slots for consumer-composed content. No changes needed to the reused primitives — ",{"type":532,"tag":546,"props":4818,"children":4820},{"className":4819},[],[4821],{"type":541,"value":4589},{"type":541,"value":4823},"'s existing ",{"type":532,"tag":546,"props":4825,"children":4827},{"className":4826},[],[4828],{"type":541,"value":4597},{"type":541,"value":4830}," handling already covers ",{"type":532,"tag":546,"props":4832,"children":4834},{"className":4833},[],[4835],{"type":541,"value":4836},"bytes",{"type":541,"value":553},{"type":532,"tag":546,"props":4839,"children":4841},{"className":4840},[],[4842],{"type":541,"value":4843},"duration",{"type":541,"value":553},{"type":532,"tag":546,"props":4846,"children":4848},{"className":4847},[],[4849],{"type":541,"value":4850},"ms",{"type":541,"value":553},{"type":532,"tag":546,"props":4853,"children":4855},{"className":4854},[],[4856],{"type":541,"value":4857},"%",{"type":541,"value":4859},"\u002Fcustom passthrough cleanly.",{"project":9,"cycle":26,"dir":28,"title":29,"date":33,"lead":20,"long":24,"ast":4861},{"type":529,"children":4862},[4863],{"type":532,"tag":4012,"props":4864,"children":4865},{},[4866],{"type":532,"tag":4016,"props":4867,"children":4868},{},[4869,4873,4875,4881,4883,4888,4890,4896,4898,4904,4906,4912,4914,4919,4921,4926],{"type":532,"tag":537,"props":4870,"children":4871},{},[4872],{"type":541,"value":33},{"type":541,"value":4874}," — Documented on the design site: new ",{"type":532,"tag":546,"props":4876,"children":4878},{"className":4877},[],[4879],{"type":541,"value":4880},"data-machine",{"type":541,"value":4882}," registry group + ",{"type":532,"tag":546,"props":4884,"children":4886},{"className":4885},[],[4887],{"type":541,"value":29},{"type":541,"value":4889}," entry, ",{"type":532,"tag":546,"props":4891,"children":4893},{"className":4892},[],[4894],{"type":541,"value":4895},"_demos\u002FDataMachine.vue",{"type":541,"value":4897}," with the two reference presets (\"User Coverage\", \"Devices Sensored\") plus empty\u002Fminimal\u002Ftypical\u002Foverflow\u002Ferror scenarios and a unit-passthrough spot-check, visual-index placement on ",{"type":532,"tag":546,"props":4899,"children":4901},{"className":4900},[],[4902],{"type":541,"value":4903},"\u002Fcomponents",{"type":541,"value":4905},". Also fixed a stale leftover from the c28 data-metric rename: the ",{"type":532,"tag":546,"props":4907,"children":4909},{"className":4908},[],[4910],{"type":541,"value":4911},"data-metric",{"type":541,"value":4913}," group's registry label and ",{"type":532,"tag":546,"props":4915,"children":4917},{"className":4916},[],[4918],{"type":541,"value":4903},{"type":541,"value":4920}," section header both still read \"Data Machine\" — renamed to \"Data Metric\" so the new real ",{"type":532,"tag":546,"props":4922,"children":4924},{"className":4923},[],[4925],{"type":541,"value":29},{"type":541,"value":4927}," component doesn't collide with it.",{"project":9,"cycle":26,"dir":28,"title":29,"date":33,"lead":20,"long":23,"ast":4929},{"type":529,"children":4930},[4931],{"type":532,"tag":4012,"props":4932,"children":4933},{},[4934],{"type":532,"tag":4016,"props":4935,"children":4936},{},[4937,4941,4943,4949,4951,4957,4959,4965,4966,4972,4973,4979,4981,4986],{"type":532,"tag":537,"props":4938,"children":4939},{},[4940],{"type":541,"value":33},{"type":541,"value":4942}," — Wrote the base + curated-presets pattern into ",{"type":532,"tag":546,"props":4944,"children":4946},{"className":4945},[],[4947],{"type":541,"value":4948},"component_philosophy.md",{"type":541,"value":4950}," (Principle 4 + Design Lineage) and ",{"type":532,"tag":546,"props":4952,"children":4954},{"className":4953},[],[4955],{"type":541,"value":4956},"design_methodology.md",{"type":541,"value":4958}," (Decomposition and Modularity), citing qmap's ",{"type":532,"tag":546,"props":4960,"children":4962},{"className":4961},[],[4963],{"type":541,"value":4964},"QMap",{"type":541,"value":553},{"type":532,"tag":546,"props":4967,"children":4969},{"className":4968},[],[4970],{"type":541,"value":4971},"QMapDataflow",{"type":541,"value":553},{"type":532,"tag":546,"props":4974,"children":4976},{"className":4975},[],[4977],{"type":541,"value":4978},"QMapPolicyViolation",{"type":541,"value":4980}," as the precedent and ",{"type":532,"tag":546,"props":4982,"children":4984},{"className":4983},[],[4985],{"type":541,"value":29},{"type":541,"value":4987}," as the new cross-project instance.",{"project":9,"cycle":26,"dir":28,"title":29,"date":33,"lead":20,"long":23,"ast":4989},{"type":529,"children":4990},[4991],{"type":532,"tag":4012,"props":4992,"children":4993},{},[4994],{"type":532,"tag":4016,"props":4995,"children":4996},{},[4997,5001,5003,5009,5011,5017,5019,5025],{"type":532,"tag":537,"props":4998,"children":4999},{},[5000],{"type":541,"value":33},{"type":541,"value":5002}," — Swapped the demo's hand-rolled, too-smooth sparkline arrays for the existing ",{"type":532,"tag":546,"props":5004,"children":5006},{"className":5005},[],[5007],{"type":541,"value":5008},"app\u002Fdata\u002Fsparklines.ts",{"type":541,"value":5010}," fixtures (",{"type":532,"tag":546,"props":5012,"children":5014},{"className":5013},[],[5015],{"type":541,"value":5016},"sparkNoise",{"type":541,"value":5018}," for generic examples, ",{"type":532,"tag":546,"props":5020,"children":5022},{"className":5021},[],[5023],{"type":541,"value":5024},"sparkUp",{"type":541,"value":5026}," for the positive-delta \"Devices Sensored\" preset) — real telemetry is jagged, not a clean ramp.",{"project":9,"cycle":26,"dir":28,"title":29,"date":33,"lead":20,"long":23,"ast":5028},{"type":529,"children":5029},[5030],{"type":532,"tag":4012,"props":5031,"children":5032},{},[5033],{"type":532,"tag":4016,"props":5034,"children":5035},{},[5036,5040,5042,5048],{"type":532,"tag":537,"props":5037,"children":5038},{},[5039],{"type":541,"value":33},{"type":541,"value":5041}," — Added a ",{"type":532,"tag":546,"props":5043,"children":5045},{"className":5044},[],[5046],{"type":541,"value":5047},"UxCopyBtn",{"type":541,"value":5049}," (icon-only, top-right corner) to each preset card in the demo, copying a self-contained Vue template snippet of that exact preset — makes the \"copy this, don't hand-assemble\" pattern literal instead of just stated.",{"project":9,"cycle":26,"dir":28,"title":29,"date":33,"lead":20,"long":24,"ast":5051},{"type":529,"children":5052},[5053],{"type":532,"tag":4012,"props":5054,"children":5055},{},[5056],{"type":532,"tag":4016,"props":5057,"children":5058},{},[5059,5063,5065,5070,5072,5078,5080,5086,5087,5093,5095,5101,5103,5109,5111,5117,5119,5124,5126,5132,5134,5140,5142,5148],{"type":532,"tag":537,"props":5060,"children":5061},{},[5062],{"type":541,"value":33},{"type":541,"value":5064}," — Fixed a real bug in ",{"type":532,"tag":546,"props":5066,"children":5068},{"className":5067},[],[5069],{"type":541,"value":4801},{"type":541,"value":5071}," surfaced by using it unfilled: ",{"type":532,"tag":546,"props":5073,"children":5075},{"className":5074},[],[5076],{"type":541,"value":5077},"svgMachine.sparkChart",{"type":541,"value":5079}," always injected baseline anchor points (",{"type":532,"tag":546,"props":5081,"children":5083},{"className":5082},[],[5084],{"type":541,"value":5085},"(0,-10)",{"type":541,"value":818},{"type":532,"tag":546,"props":5088,"children":5090},{"className":5089},[],[5091],{"type":541,"value":5092},"(width+10,-1)",{"type":541,"value":5094},") meant to close a filled polygon; with ",{"type":532,"tag":546,"props":5096,"children":5098},{"className":5097},[],[5099],{"type":541,"value":5100},"fillColor=\"none\"",{"type":541,"value":5102}," those anchors render as a visible drop at the start\u002Fend of the stroked line. Added a ",{"type":532,"tag":546,"props":5104,"children":5106},{"className":5105},[],[5107],{"type":541,"value":5108},"closePath",{"type":541,"value":5110}," param (",{"type":532,"tag":546,"props":5112,"children":5114},{"className":5113},[],[5115],{"type":541,"value":5116},"q-nuxt-layer\u002Futils\u002Fsvg.js",{"type":541,"value":5118},") and had ",{"type":532,"tag":546,"props":5120,"children":5122},{"className":5121},[],[5123],{"type":541,"value":4801},{"type":541,"value":5125}," pass ",{"type":532,"tag":546,"props":5127,"children":5129},{"className":5128},[],[5130],{"type":541,"value":5131},"fillColor !== 'none'",{"type":541,"value":5133},", so line-only sparklines render clean. Also fixes the same latent artifact in ",{"type":532,"tag":546,"props":5135,"children":5137},{"className":5136},[],[5138],{"type":541,"value":5139},"SecurityPolicyCard",{"type":541,"value":5141},"'s three sparklines (verified, no regression). ",{"type":532,"tag":546,"props":5143,"children":5145},{"className":5144},[],[5146],{"type":541,"value":5147},"SparkChartOld",{"type":541,"value":5149}," untouched — deprecated, out of scope.",{"project":9,"cycle":26,"dir":28,"title":29,"date":33,"lead":20,"long":23,"ast":5151},{"type":529,"children":5152},[5153],{"type":532,"tag":4012,"props":5154,"children":5155},{},[5156],{"type":532,"tag":4016,"props":5157,"children":5158},{},[5159,5163,5165,5170,5171,5176,5178,5184,5186,5191,5193,5199],{"type":532,"tag":537,"props":5160,"children":5161},{},[5162],{"type":541,"value":33},{"type":541,"value":5164}," — Replaced the static ",{"type":532,"tag":546,"props":5166,"children":5168},{"className":5167},[],[5169],{"type":541,"value":5016},{"type":541,"value":553},{"type":532,"tag":546,"props":5172,"children":5174},{"className":5173},[],[5175],{"type":541,"value":5024},{"type":541,"value":5177}," fixtures with a new ",{"type":532,"tag":546,"props":5179,"children":5181},{"className":5180},[],[5182],{"type":541,"value":5183},"generateVelocitySpark()",{"type":541,"value":5185}," helper in ",{"type":532,"tag":546,"props":5187,"children":5189},{"className":5188},[],[5190],{"type":541,"value":5008},{"type":541,"value":5192}," — a damped random walk (velocity carries forward instead of each point being independent) so the line moves in short organic runs like real traffic, with an optional ",{"type":532,"tag":546,"props":5194,"children":5196},{"className":5195},[],[5197],{"type":541,"value":5198},"drift",{"type":541,"value":5200}," for a biased trend (used for the positive-delta \"Devices Sensored\" preset).",{"project":9,"cycle":26,"dir":28,"title":29,"date":33,"lead":20,"long":23,"ast":5202},{"type":529,"children":5203},[5204],{"type":532,"tag":4012,"props":5205,"children":5206},{},[5207],{"type":532,"tag":4016,"props":5208,"children":5209},{},[5210,5214,5216,5222,5224,5229,5230,5235,5237,5243,5245,5251],{"type":532,"tag":537,"props":5211,"children":5212},{},[5213],{"type":541,"value":33},{"type":541,"value":5215}," — Added optional ",{"type":532,"tag":546,"props":5217,"children":5219},{"className":5218},[],[5220],{"type":541,"value":5221},"slotGap",{"type":541,"value":5223}," prop (Number, px) — extra spacing between ",{"type":532,"tag":546,"props":5225,"children":5227},{"className":5226},[],[5228],{"type":541,"value":4581},{"type":541,"value":553},{"type":532,"tag":546,"props":5231,"children":5233},{"className":5232},[],[5234],{"type":541,"value":1764},{"type":541,"value":5236}," slot content and the main value\u002Fdelta group, on top of the row's default gap. Implemented as conditional margin on ",{"type":532,"tag":546,"props":5238,"children":5240},{"className":5239},[],[5241],{"type":541,"value":5242},"v-if=\"$slots.left\u002Fright\"",{"type":541,"value":5244}," wrappers so it costs nothing when a slot is unused. Demoed with a dedicated \"Slot Gap\" comparison (default vs. ",{"type":532,"tag":546,"props":5246,"children":5248},{"className":5247},[],[5249],{"type":541,"value":5250},"slotGap=\"24\"",{"type":541,"value":5252},") and documented in the registry.",{"project":9,"cycle":51,"dir":53,"title":54,"date":41,"lead":5254,"long":24,"ast":5255},"Phase 2 redesign",{"type":529,"children":5256},[5257],{"type":532,"tag":533,"props":5258,"children":5259},{},[5260,5265,5267,5273,5275,5281,5283,5289,5291,5297,5299,5304],{"type":532,"tag":537,"props":5261,"children":5262},{},[5263],{"type":541,"value":5264},"Phase 2 redesign (2026-09-16):",{"type":541,"value":5266}," Implemented v2 segmented-bar Filter and supporting components per mockup set: Phase-1 components moved into ",{"type":532,"tag":546,"props":5268,"children":5270},{"className":5269},[],[5271],{"type":541,"value":5272},"q-nuxt-layer\u002Fcomponents\u002Ffilter\u002Fold\u002F",{"type":541,"value":5274}," namespace (auto-registered as FilterOld*, FilterOldDatasetViewSelector) with internal cross-references rewritten; new v2 Filter rebuilt as segmented control (empty \"Add Filter\" pill, populated state as continuous bar with ADD trigger, two-row FilterItem pills, Config button); new FilterItem with italic key + bold value split across two rows, replaced \"!=\" text with slash-circle negation glyph; FilterInlineEdit restyled into two-row chrome with same typeahead behavior; FilterDatasetViewSelector built unchanged under live name (unchanged component); new FilterTriggerBar component (contextual quick-filter bar with optional key-select dropdown + single-select value pills). Reused existing q-nuxt-layer assets for icons (gear.svg for Config, no.svg for negation glyph—no new icon assets needed). Updated ",{"type":532,"tag":546,"props":5276,"children":5278},{"className":5277},[],[5279],{"type":541,"value":5280},"app\u002Fdata\u002Fcomponent-registry.ts",{"type":541,"value":5282},": new ",{"type":532,"tag":546,"props":5284,"children":5286},{"className":5285},[],[5287],{"type":541,"value":5288},"filter-old",{"type":541,"value":5290}," group (id, label \"Filter (Legacy)\", description), v2 entries added for Filter\u002FFilterItem\u002FFilterInlineEdit\u002FFilterTriggerBar under ",{"type":532,"tag":546,"props":5292,"children":5294},{"className":5293},[],[5295],{"type":541,"value":5296},"filter",{"type":541,"value":5298}," group, Phase-1 entries renamed to FilterOld* under filter-old group. Created demo files: 8 Phase-1 demos renamed to FilterOld*.vue, FilterDatasetViewSelector.vue copied to FilterOldDatasetViewSelector.vue, new demos for Filter.vue\u002FFilterItem.vue\u002FFilterInlineEdit.vue\u002FFilterTriggerBar.vue. Rewrote lab page ",{"type":532,"tag":546,"props":5300,"children":5302},{"className":5301},[],[5303],{"type":541,"value":4126},{"type":541,"value":5305}," demonstrating v2 Filter alongside FilterTriggerBar wired to same shared keyValFilters ref, proving two-way sync pattern. Left for future: v2 redesign of FilterManage modal (Config still opens FilterOldManage), sticky positioning behavior (strategy recommendations captured; consumer-owned implementation). Verified all new\u002Fupdated pages via local dev server — all render 200 with no console\u002Ficon-resolution errors, screengrabs captured to public\u002Fcycles\u002Fc88.global-filter\u002F.",{"project":9,"cycle":35,"dir":37,"title":38,"date":41,"lead":5307,"long":24,"ast":5308},"initial assembly",{"type":529,"children":5309},[5310],{"type":532,"tag":533,"props":5311,"children":5312},{},[5313,5318,5320,5326,5328,5334,5336,5342,5344,5350,5352,5358,5359,5364,5365,5371,5372,5378,5379,5385,5387,5393,5395,5401,5402,5408,5409,5415,5417,5423,5425,5431,5433,5438,5440,5446,5447,5453,5455,5461,5463,5469,5471,5477,5479,5485,5487,5493,5495,5501,5503,5509,5510,5515,5516,5522,5523,5528,5529,5535,5536,5542,5544,5550],{"type":532,"tag":537,"props":5314,"children":5315},{},[5316],{"type":541,"value":5317},"initial assembly (2026-09-16):",{"type":541,"value":5319}," Built the chrome and assembled the seven pages. ",{"type":532,"tag":546,"props":5321,"children":5323},{"className":5322},[],[5324],{"type":541,"value":5325},"app\u002Fcomponents\u002FQcontrolSidebar.vue",{"type":541,"value":5327}," — a route-aware left nav modeled on the qdash ",{"type":532,"tag":546,"props":5329,"children":5331},{"className":5330},[],[5332],{"type":541,"value":5333},"AppSidebar.vue",{"type":541,"value":5335}," replica, scoped to the three listing links (Teams & Users, Sessions, Devices) with the wordmark on top; ",{"type":532,"tag":546,"props":5337,"children":5339},{"className":5338},[],[5340],{"type":541,"value":5341},"app\u002Flayouts\u002Fqcontrol.vue",{"type":541,"value":5343}," composes it with the main slot. ",{"type":532,"tag":546,"props":5345,"children":5347},{"className":5346},[],[5348],{"type":541,"value":5349},"app\u002Fpages\u002Fqcontrol\u002F{teams,team,user,sessions,session,devices,device}.vue",{"type":541,"value":5351}," — five copied\u002Fadapted from the best phase1 iteration (",{"type":532,"tag":546,"props":5353,"children":5355},{"className":5354},[],[5356],{"type":541,"value":5357},"teams-v3",{"type":541,"value":561},{"type":532,"tag":546,"props":5360,"children":5362},{"className":5361},[],[5363],{"type":541,"value":2724},{"type":541,"value":561},{"type":532,"tag":546,"props":5366,"children":5368},{"className":5367},[],[5369],{"type":541,"value":5370},"user-detail-v2",{"type":541,"value":561},{"type":532,"tag":546,"props":5373,"children":5375},{"className":5374},[],[5376],{"type":541,"value":5377},"session-detail-v2",{"type":541,"value":561},{"type":532,"tag":546,"props":5380,"children":5382},{"className":5381},[],[5383],{"type":541,"value":5384},"device-detail-v2",{"type":541,"value":5386},"; state toggle dropped, cross-links repointed through a local ",{"type":532,"tag":546,"props":5388,"children":5390},{"className":5389},[],[5391],{"type":541,"value":5392},"QCONTROL_HOME",{"type":541,"value":5394}," map rather than the shared ",{"type":532,"tag":546,"props":5396,"children":5398},{"className":5397},[],[5399],{"type":541,"value":5400},"routes.ts",{"type":541,"value":2519},{"type":532,"tag":546,"props":5403,"children":5405},{"className":5404},[],[5406],{"type":541,"value":5407},"team.vue",{"type":541,"value":1876},{"type":532,"tag":546,"props":5410,"children":5412},{"className":5411},[],[5413],{"type":541,"value":5414},"devices.vue",{"type":541,"value":5416}," net new. ",{"type":532,"tag":546,"props":5418,"children":5420},{"className":5419},[],[5421],{"type":541,"value":5422},"app\u002Fdata\u002Fphase1\u002Fderived\u002Fdevices.ts",{"type":541,"value":5424}," mirrors ",{"type":532,"tag":546,"props":5426,"children":5428},{"className":5427},[],[5429],{"type":541,"value":5430},"derived\u002Fsessions.ts",{"type":541,"value":5432},"'s shape (a ",{"type":532,"tag":546,"props":5434,"children":5436},{"className":5435},[],[5437],{"type":541,"value":666},{"type":541,"value":5439}," per world device wrapping ",{"type":532,"tag":546,"props":5441,"children":5443},{"className":5442},[],[5444],{"type":541,"value":5445},"coverageGap",{"type":541,"value":553},{"type":532,"tag":546,"props":5448,"children":5450},{"className":5449},[],[5451],{"type":541,"value":5452},"deviceHeadline",{"type":541,"value":5454}," from ",{"type":532,"tag":546,"props":5456,"children":5458},{"className":5457},[],[5459],{"type":541,"value":5460},"device-detail.ts",{"type":541,"value":5462},", a band, a verdict). ",{"type":532,"tag":546,"props":5464,"children":5466},{"className":5465},[],[5467],{"type":541,"value":5468},"app\u002Fdata\u002Fpage-registry.ts",{"type":541,"value":5470}," gained a ",{"type":532,"tag":546,"props":5472,"children":5474},{"className":5473},[],[5475],{"type":541,"value":5476},"qcontrol",{"type":541,"value":5478}," page group and an ",{"type":532,"tag":546,"props":5480,"children":5482},{"className":5481},[],[5483],{"type":541,"value":5484},"href",{"type":541,"value":5486}," override field so registry cards can point at a route outside ",{"type":532,"tag":546,"props":5488,"children":5490},{"className":5489},[],[5491],{"type":541,"value":5492},"\u002Fpages\u002F\u003Cslug>",{"type":541,"value":5494}," — one ",{"type":532,"tag":546,"props":5496,"children":5498},{"className":5497},[],[5499],{"type":541,"value":5500},"qcontrol-preview",{"type":541,"value":5502}," entry as the flow's front door, then one entry per page. Pages later forked into frozen\u002Fworking pairs (",{"type":532,"tag":546,"props":5504,"children":5506},{"className":5505},[],[5507],{"type":541,"value":5508},"user.vue",{"type":541,"value":553},{"type":532,"tag":546,"props":5511,"children":5513},{"className":5512},[],[5514],{"type":541,"value":4272},{"type":541,"value":561},{"type":532,"tag":546,"props":5517,"children":5519},{"className":5518},[],[5520],{"type":541,"value":5521},"session.vue",{"type":541,"value":553},{"type":532,"tag":546,"props":5524,"children":5526},{"className":5525},[],[5527],{"type":541,"value":4735},{"type":541,"value":561},{"type":532,"tag":546,"props":5530,"children":5532},{"className":5531},[],[5533],{"type":541,"value":5534},"device.vue",{"type":541,"value":553},{"type":532,"tag":546,"props":5537,"children":5539},{"className":5538},[],[5540],{"type":541,"value":5541},"device-v2.vue",{"type":541,"value":5543},") so manual design iteration has a live target while the assembled original stays as the archive. ",{"type":532,"tag":546,"props":5545,"children":5547},{"className":5546},[],[5548],{"type":541,"value":5549},"app\u002Fcomponents\u002FQcontrolEntityChip.vue",{"type":541,"value":5551}," (2026-09-17) extracted the person\u002Fdevice\u002Fagent\u002Faccount\u002Frepo chip every qcontrol page repeats.",{"project":9,"cycle":51,"dir":53,"title":54,"date":49,"lead":5553,"long":24,"ast":5554},"Phase 1 extraction",{"type":529,"children":5555},[5556],{"type":532,"tag":533,"props":5557,"children":5558},{},[5559,5564,5566,5572,5574,5579,5580,5585,5586,5592,5593,5599,5600,5606,5607,5613,5614,5620,5621,5627,5629,5635,5637,5642,5643,5648,5650,5656,5658,5664,5666,5671,5673,5679,5681,5687,5689,5695,5697,5703],{"type":532,"tag":537,"props":5560,"children":5561},{},[5562],{"type":541,"value":5563},"Phase 1 extraction (2026-09-15):",{"type":541,"value":5565}," All 8 components extracted into ",{"type":532,"tag":546,"props":5567,"children":5569},{"className":5568},[],[5570],{"type":541,"value":5571},"q-nuxt-layer\u002Fcomponents\u002Ffilter\u002F",{"type":541,"value":5573},": ",{"type":532,"tag":546,"props":5575,"children":5577},{"className":5576},[],[5578],{"type":541,"value":1057},{"type":541,"value":561},{"type":532,"tag":546,"props":5581,"children":5583},{"className":5582},[],[5584],{"type":541,"value":1126},{"type":541,"value":561},{"type":532,"tag":546,"props":5587,"children":5589},{"className":5588},[],[5590],{"type":541,"value":5591},"FilterInlineEdit",{"type":541,"value":561},{"type":532,"tag":546,"props":5594,"children":5596},{"className":5595},[],[5597],{"type":541,"value":5598},"FilterManage",{"type":541,"value":561},{"type":532,"tag":546,"props":5601,"children":5603},{"className":5602},[],[5604],{"type":541,"value":5605},"FilterEmbed",{"type":541,"value":561},{"type":532,"tag":546,"props":5608,"children":5610},{"className":5609},[],[5611],{"type":541,"value":5612},"FilterTimeframe",{"type":541,"value":561},{"type":532,"tag":546,"props":5615,"children":5617},{"className":5616},[],[5618],{"type":541,"value":5619},"FilterManageItem",{"type":541,"value":561},{"type":532,"tag":546,"props":5622,"children":5624},{"className":5623},[],[5625],{"type":541,"value":5626},"FilterDatasetViewSelector",{"type":541,"value":5628}," — plus ",{"type":532,"tag":546,"props":5630,"children":5632},{"className":5631},[],[5633],{"type":541,"value":5634},"q-nuxt-layer\u002Futils\u002Ffilter.ts",{"type":541,"value":5636}," for filter-shape constants\u002Ftypes. During extraction, discovered ",{"type":532,"tag":546,"props":5638,"children":5640},{"className":5639},[],[5641],{"type":541,"value":5612},{"type":541,"value":1876},{"type":532,"tag":546,"props":5644,"children":5646},{"className":5645},[],[5647],{"type":541,"value":5598},{"type":541,"value":5649}," embedded business logic (Pinia store, route\u002Forg composables) not visible from names alone; decoupled into props\u002Femits, business logic left local. ",{"type":532,"tag":546,"props":5651,"children":5653},{"className":5652},[],[5654],{"type":541,"value":5655},"DatasetViewSelector",{"type":541,"value":5657}," similarly decoupled. ",{"type":532,"tag":546,"props":5659,"children":5661},{"className":5660},[],[5662],{"type":541,"value":5663},"TagAutocomplete.vue",{"type":541,"value":5665}," found to be dead code (hardcoded dummy component) and excluded rather than moved. All 8 documented on the design site with new ",{"type":532,"tag":546,"props":5667,"children":5669},{"className":5668},[],[5670],{"type":541,"value":5296},{"type":541,"value":5672}," group in ",{"type":532,"tag":546,"props":5674,"children":5676},{"className":5675},[],[5677],{"type":541,"value":5678},"component-registry.ts",{"type":541,"value":5680},", demo files under ",{"type":532,"tag":546,"props":5682,"children":5684},{"className":5683},[],[5685],{"type":541,"value":5686},"app\u002Fpages\u002Fcomponents\u002F_demos\u002F",{"type":541,"value":5688},", live at ",{"type":532,"tag":546,"props":5690,"children":5692},{"className":5691},[],[5693],{"type":541,"value":5694},"\u002Fcomponents\u002Ffilter\u002F*",{"type":541,"value":5696},". Built v2 lab workspace page ",{"type":532,"tag":546,"props":5698,"children":5700},{"className":5699},[],[5701],{"type":541,"value":5702},"app\u002Fpages\u002Fpages\u002Fphase2-global-filter.vue",{"type":541,"value":5704}," (unregistered, composes real Phase-1 components). Verified via local dev server — all new pages render without console warnings\u002Ferrors. Decisions recorded in plan.md.",{"project":9,"cycle":43,"dir":45,"title":46,"date":49,"lead":5706,"long":24,"ast":5707},"— `derived\u002Fsessions.ts`.",{"type":529,"children":5708},[5709],{"type":532,"tag":4012,"props":5710,"children":5711},{},[5712],{"type":532,"tag":4016,"props":5713,"children":5714},{},[5715,5726,5728,5734,5736,5742,5744,5750,5752,5758,5760,5766,5768,5774,5775,5781,5783,5789,5791,5797,5799,5805,5807,5813],{"type":532,"tag":537,"props":5716,"children":5717},{},[5718,5720,5725],{"type":541,"value":5719},"2026-09-15 — ",{"type":532,"tag":546,"props":5721,"children":5723},{"className":5722},[],[5724],{"type":541,"value":5430},{"type":541,"value":1023},{"type":541,"value":5727}," New module mirroring ",{"type":532,"tag":546,"props":5729,"children":5731},{"className":5730},[],[5732],{"type":541,"value":5733},"derived\u002Fteams.ts",{"type":541,"value":5735},"'s\nconventions: ",{"type":532,"tag":546,"props":5737,"children":5739},{"className":5738},[],[5740],{"type":541,"value":5741},"SessionRow",{"type":541,"value":5743}," (a ",{"type":532,"tag":546,"props":5745,"children":5747},{"className":5746},[],[5748],{"type":541,"value":5749},"sessionReceipt(w, s)",{"type":541,"value":5751}," wrapper with listing-friendly\nfields flattened on top), ",{"type":532,"tag":546,"props":5753,"children":5755},{"className":5754},[],[5756],{"type":541,"value":5757},"sessionRoster(w)",{"type":541,"value":5759}," (every session in the world's recent\nsample, ranked violations → runaway cost → clean), ",{"type":532,"tag":546,"props":5761,"children":5763},{"className":5762},[],[5764],{"type":541,"value":5765},"sessionsBand(w, rows)",{"type":541,"value":5767},"\n(session count against the honest 7-day window, cost with tokens in the sub, the\nflagged list), and ",{"type":532,"tag":546,"props":5769,"children":5771},{"className":5770},[],[5772],{"type":541,"value":5773},"sessionsVerdict(w, rows)",{"type":541,"value":1342},{"type":532,"tag":546,"props":5776,"children":5778},{"className":5777},[],[5779],{"type":541,"value":5780},"warn",{"type":541,"value":5782}," only when a flagged session\nis a policy violation, else ",{"type":532,"tag":546,"props":5784,"children":5786},{"className":5785},[],[5787],{"type":541,"value":5788},"attention",{"type":541,"value":5790},"). Flag state is never re-derived — it reads\n",{"type":532,"tag":546,"props":5792,"children":5794},{"className":5793},[],[5795],{"type":541,"value":5796},"receipt.attention",{"type":541,"value":5798}," from session-detail.ts, the one source of truth. ",{"type":532,"tag":546,"props":5800,"children":5802},{"className":5801},[],[5803],{"type":541,"value":5804},"sessionsVerdict",{"type":541,"value":5806},"\ndeliberately not folded into derived.ts's central ",{"type":532,"tag":546,"props":5808,"children":5810},{"className":5809},[],[5811],{"type":541,"value":5812},"verdicts",{"type":541,"value":5814}," map yet.",{"project":9,"cycle":43,"dir":45,"title":46,"date":49,"lead":5816,"long":24,"ast":5817},"— `phase1\u002Fsessions.vue` (net new).",{"type":529,"children":5818},[5819],{"type":532,"tag":4012,"props":5820,"children":5821},{},[5822],{"type":532,"tag":4016,"props":5823,"children":5824},{},[5825,5837,5839,5845,5847,5853,5855,5860],{"type":532,"tag":537,"props":5826,"children":5827},{},[5828,5829,5835],{"type":541,"value":5719},{"type":532,"tag":546,"props":5830,"children":5832},{"className":5831},[],[5833],{"type":541,"value":5834},"phase1\u002Fsessions.vue",{"type":541,"value":5836}," (net new).",{"type":541,"value":5838}," The Sessions roster: verdict line,\na sessions\u002Fcost stat pair labelled \"· 7d sample\" so it never overstates what's on\nrecord (no donut ring — \"how many sessions\" has no natural denominator), a named\n\"needs a look\" list capped at 5 with an overflow note, and a ",{"type":532,"tag":546,"props":5840,"children":5842},{"className":5841},[],[5843],{"type":541,"value":5844},"DataTable",{"type":541,"value":5846}," roster\n(person, team, agent, started, duration, tokens, dollars, models as un-linked entity\nchips, outcome pill). Rows link straight to the existing Session detail receipt via\n",{"type":532,"tag":546,"props":5848,"children":5850},{"className":5849},[],[5851],{"type":541,"value":5852},"onRow",{"type":541,"value":5854}," — no per-page expand, since session-detail.vue already owns chapters,\ntranscript, raw events, and the actor web. Composition notes appended per the\n",{"type":532,"tag":546,"props":5856,"children":5858},{"className":5857},[],[5859],{"type":541,"value":651},{"type":541,"value":5861}," convention.",{"project":9,"cycle":43,"dir":45,"title":46,"date":49,"lead":5863,"long":24,"ast":5864},"— `phase1\u002Fteams-v3.vue`.",{"type":529,"children":5865},[5866],{"type":532,"tag":4012,"props":5867,"children":5868},{},[5869],{"type":532,"tag":4016,"props":5870,"children":5871},{},[5872,5883,5885,5891,5893,5899,5901,5907,5909,5915,5917,5923,5925,5931],{"type":532,"tag":537,"props":5873,"children":5874},{},[5875,5876,5882],{"type":541,"value":5719},{"type":532,"tag":546,"props":5877,"children":5879},{"className":5878},[],[5880],{"type":541,"value":5881},"phase1\u002Fteams-v3.vue",{"type":541,"value":1023},{"type":541,"value":5884}," Header-treatment iteration on\n",{"type":532,"tag":546,"props":5886,"children":5888},{"className":5887},[],[5889],{"type":541,"value":5890},"phase1\u002Fteams.vue",{"type":541,"value":5892}," (PRO-20): the \"people covered\" and \"devices sensored\"\n",{"type":532,"tag":546,"props":5894,"children":5896},{"className":5895},[],[5897],{"type":541,"value":5898},"Phase1StatBlock",{"type":541,"value":5900}," fractions become ",{"type":532,"tag":546,"props":5902,"children":5904},{"className":5903},[],[5905],{"type":541,"value":5906},"DataDonutChart",{"type":541,"value":5908}," coverage rings (same two\nnumbers from ",{"type":532,"tag":546,"props":5910,"children":5912},{"className":5911},[],[5913],{"type":541,"value":5914},"rosterBand",{"type":541,"value":5916},", click-to-filter behaviour rides along), plus a named\n\"needs attention\" list — ",{"type":532,"tag":546,"props":5918,"children":5920},{"className":5919},[],[5921],{"type":541,"value":5922},"band.investigate",{"type":541,"value":5924}," first (holds a seat, zero telemetry),\nthen filled to 5 from ",{"type":532,"tag":546,"props":5926,"children":5928},{"className":5927},[],[5929],{"type":541,"value":5930},"band.uncovered",{"type":541,"value":5932},", reusing the roster's own Coverage-column\nphrasing so header and table never say one fact two ways. \"Using AI · 30d\" and\n\"installs with an owner\" stay plain stat blocks. Question, verdict, team strip,\nroster, and expand untouched.",{"project":9,"cycle":43,"dir":45,"title":46,"date":49,"lead":5934,"long":23,"ast":5935},"— Registry.",{"type":529,"children":5936},[5937],{"type":532,"tag":4012,"props":5938,"children":5939},{},[5940],{"type":532,"tag":4016,"props":5941,"children":5942},{},[5943,5948,5949,5954,5956,5961,5963,5968,5970,5975],{"type":532,"tag":537,"props":5944,"children":5945},{},[5946],{"type":541,"value":5947},"2026-09-15 — Registry.",{"type":541,"value":753},{"type":532,"tag":546,"props":5950,"children":5952},{"className":5951},[],[5953],{"type":541,"value":5357},{"type":541,"value":5955}," (teams group) and ",{"type":532,"tag":546,"props":5957,"children":5959},{"className":5958},[],[5960],{"type":541,"value":2724},{"type":541,"value":5962}," (sessions group)\nentries in ",{"type":532,"tag":546,"props":5964,"children":5966},{"className":5965},[],[5967],{"type":541,"value":5468},{"type":541,"value":5969},", both ",{"type":532,"tag":546,"props":5971,"children":5973},{"className":5972},[],[5974],{"type":541,"value":4047},{"type":541,"value":1023},[5977,6072,6077,6086,6100,6104,6108,6113,6127,6347],{"id":9,"label":10,"commits":5978},[5979,5982,5985,5988,5991,5994,5997,6000,6003,6006,6009,6012,6015,6018,6021,6024,6027,6030,6033,6036,6039,6042,6045,6048,6051,6054,6057,6060,6063,6066,6069],{"repo":9,"sha":5980,"date":5,"subject":5981,"pr":20},"18410ceebf","c92: day-series §A record — timeframe-always commit hash after its amend (ca04a2ee)",{"repo":9,"sha":5983,"date":5,"subject":5984,"pr":20},"c09b835f25","c92: day-series §A executed — cycle record, plan status (§B–§F pending), thread prompt + plan persisted",{"repo":9,"sha":5986,"date":5,"subject":5987,"pr":20},"59d4823207","chore: bump q-nuxt-layer to 0.9.20 (c92 day-series §A)",{"repo":9,"sha":5989,"date":5,"subject":5990,"pr":20},"d18fdc2132","c92: day-series §A — cycle-manager: concurrent-threads rule under Thread Documentation Convention",{"repo":9,"sha":5992,"date":5,"subject":5993,"pr":20},"5a82193f34","c92: day-series §A — DataRankedBars documented; DataMachine 'Ranked share' preset re-pointed",{"repo":9,"sha":5995,"date":5,"subject":5996,"pr":20},"6c37c4ddc9","c92: active index — detail-pages landed, layer 0.9.18, guide linked",{"repo":9,"sha":5998,"date":5,"subject":5999,"pr":20},"536f0f78c5","c92: detail-pages executed — cycle record, guide §2 holes marked fixed",{"repo":9,"sha":6001,"date":5,"subject":6002,"pr":20},"87d58e02d4","chore: bump q-nuxt-layer to 0.9.18",{"repo":9,"sha":6004,"date":5,"subject":6005,"pr":20},"d54a643e86","c92 detail-pages: pattern mark at 40px (AgentAvatar size)",{"repo":9,"sha":6007,"date":5,"subject":6008,"pr":20},"2251b5a285","c92 detail-pages: Actor Detail Frame pattern — ActorHeader → elsewhere links → band → jump pills → ledgers → Surface → More detail, with the band rules; live harness example on demo data",{"repo":9,"sha":6010,"date":5,"subject":6011,"pr":20},"7e76675dfc","c92 detail-pages: ActorHeader + ActorHeaderCell documented — registry group, adminProps demos (empty \u002F minimal \u002F typical \u002F overflow), copyable composition",{"repo":9,"sha":6013,"date":5,"subject":6014,"pr":20},"83a22ab655","c92: listing-viz executed — cycle record, plan status, prompt + plan files; q-nuxt-layer 0.9.16 lockfile",{"repo":9,"sha":6016,"date":5,"subject":6017,"pr":20},"152ab2a0e9","c92: detail-pages thread — prompt, purpose & value guide, plan (decisions 1–8 ruled; Device Details stays its own thread)",{"repo":9,"sha":6019,"date":5,"subject":6020,"pr":20},"970284e7b5","c92: listing-viz — DataSegmentBar demo + registry, DataMachine presets (Composition, Ranked share, History), Listing overview band pattern",{"repo":9,"sha":6022,"date":5,"subject":6023,"pr":20},"493c4dcb62","c92: working-nav + people-pages executed — cycle record, plan status (executed in qdash)",{"repo":9,"sha":6025,"date":5,"subject":6026,"pr":20},"19df170bcd","c92: working-nav + people-pages thread plans (prompts + plans, cycle record updated)",{"repo":9,"sha":6028,"date":3212,"subject":6029,"pr":20},"5051283ecd","c92: session-details thread — prompt, plan, cycle record (executed in qdash)",{"repo":9,"sha":6031,"date":3212,"subject":6032,"pr":20},"5226ba2999","chore: bump q-nuxt-layer to 0.9.15",{"repo":9,"sha":6034,"date":3212,"subject":6035,"pr":20},"faac33bd35","c92: actor-listings + surface-section executed — DataSurfaceSection demo + registry, Filter demo documents formatVal, user-v3 adopts the chrome, cycle record",{"repo":9,"sha":6037,"date":3212,"subject":6038,"pr":20},"cf4836f168","c92: actor-listings + surface-section thread plans (prompts + plans, cycle record updated)",{"repo":9,"sha":6040,"date":18,"subject":6041,"pr":20},"d17c6879ab","chore: bump q-nuxt-layer to 0.9.14",{"repo":9,"sha":6043,"date":18,"subject":6044,"pr":20},"f71a8c2cbe","c92: phase 1 + 2 landed — cycle record, Filter demo documents stickyTop (layer 0.9.14)",{"repo":9,"sha":6046,"date":18,"subject":6047,"pr":20},"aa67e386de","c90: Filter moves into UxPageTitle #far-right on the Teams mock; c92: cycle kick-off (plan + global-filter plan)",{"repo":9,"sha":6049,"date":18,"subject":6050,"pr":20},"0096ae0b98","c88: v2 components shipped in q-nuxt-layer 0.9.13",{"repo":9,"sha":6052,"date":18,"subject":6053,"pr":20},"84f1705e1a","chore: bump q-nuxt-layer to 0.9.13",{"repo":9,"sha":6055,"date":18,"subject":6056,"pr":20},"93b024af1e","cycles: close c85, c87, c91; index c88–c90",{"repo":9,"sha":6058,"date":18,"subject":6059,"pr":20},"9265d532cf","c90: qcontrol preview — app chrome + assembled pages",{"repo":9,"sha":6061,"date":18,"subject":6062,"pr":20},"595b62a379","c91: DataMachine composition component + base\u002Fpreset pattern",{"repo":9,"sha":6064,"date":18,"subject":6065,"pr":20},"2d1f444968","c89: teams-v3 header treatment + net-new sessions listing",{"repo":9,"sha":6067,"date":18,"subject":6068,"pr":20},"ed2069616e","c88: global filter v2 demos + \u002Fpages\u002Fphase2 bucket",{"repo":9,"sha":6070,"date":18,"subject":6071,"pr":20},"8804475fe8","c85: relocate chat-transcript mock into phase1",{"id":322,"label":323,"commits":6073},[6074],{"repo":322,"sha":6075,"date":5,"subject":6076,"pr":20},"f89dc4a","c92: day-series §A — cycle-manager sync: concurrent-threads rule (canonical: design)",{"id":280,"label":281,"commits":6078},[6079,6081,6083],{"repo":280,"sha":6080,"date":5,"subject":5987,"pr":20},"4e43ef7",{"repo":280,"sha":6082,"date":5,"subject":6076,"pr":20},"be6170e",{"repo":280,"sha":6084,"date":5,"subject":6085,"pr":20},"a659a9f","chore: bump q-nuxt-layer lockfile to 0.9.16",{"id":91,"label":92,"commits":6087},[6088,6090,6092,6094,6096,6098],{"repo":91,"sha":6089,"date":5,"subject":5987,"pr":20},"9b676dd",{"repo":91,"sha":6091,"date":5,"subject":6076,"pr":20},"54d782a",{"repo":91,"sha":6093,"date":5,"subject":6002,"pr":20},"f2754a6",{"repo":91,"sha":6095,"date":5,"subject":6085,"pr":20},"31bf181",{"repo":91,"sha":6097,"date":3212,"subject":6032,"pr":20},"a804a64",{"repo":91,"sha":6099,"date":18,"subject":6041,"pr":20},"a513e21",{"id":76,"label":77,"commits":6101},[6102],{"repo":76,"sha":6103,"date":5,"subject":6076,"pr":20},"5990890",{"id":238,"label":239,"commits":6105},[6106],{"repo":238,"sha":6107,"date":5,"subject":6076,"pr":20},"da4e3c2",{"id":437,"label":438,"commits":6109},[6110],{"repo":437,"sha":6111,"date":49,"subject":6112,"pr":250},"19c3723","Base starting point for agent focused redesign (#66)",{"id":497,"label":498,"commits":6114},[6115,6117,6119,6121,6123,6125],{"repo":497,"sha":6116,"date":5,"subject":5987,"pr":20},"9025211",{"repo":497,"sha":6118,"date":5,"subject":6076,"pr":20},"a63c4c5",{"repo":497,"sha":6120,"date":5,"subject":6002,"pr":20},"299fdec",{"repo":497,"sha":6122,"date":5,"subject":6085,"pr":20},"0fc48e2",{"repo":497,"sha":6124,"date":3212,"subject":6032,"pr":20},"adaba16",{"repo":497,"sha":6126,"date":18,"subject":6041,"pr":20},"f7565f6",{"id":5476,"label":5476,"commits":6128},[6129,6132,6135,6137,6140,6143,6146,6149,6152,6155,6158,6161,6164,6167,6170,6173,6176,6179,6182,6185,6188,6191,6194,6197,6200,6203,6206,6209,6212,6215,6218,6221,6224,6227,6230,6233,6236,6239,6242,6245,6248,6251,6254,6257,6260,6263,6266,6269,6272,6275,6278,6281,6284,6287,6290,6293,6296,6299,6302,6305,6308,6311,6315,6319,6323,6327,6331,6335,6339,6343],{"repo":5476,"sha":6130,"date":5,"subject":6131,"pr":20},"2f1c59ddc","qdash c15: day-series §A record — sibling commit hashes after their amends",{"repo":5476,"sha":6133,"date":5,"subject":6134,"pr":20},"5f979ccd9","qdash c15: cycle record — day-series §A reconcile (design c92)",{"repo":5476,"sha":6136,"date":5,"subject":5987,"pr":20},"edff1cd6a",{"repo":5476,"sha":6138,"date":5,"subject":6139,"pr":20},"345ef25e3","c92: day-series §A — RankedBars becomes a shim over the layer's DataRankedBars",{"repo":5476,"sha":6141,"date":5,"subject":6142,"pr":20},"89a47e610","c92: day-series §A — Models band reconciled to served tokens, Tools band reads served ok \u002F failed \u002F denied",{"repo":5476,"sha":6144,"date":5,"subject":6145,"pr":20},"8f47f2f7d","qdash c15: cycle record — timeframe-always (design c92)",{"repo":5476,"sha":6147,"date":5,"subject":6148,"pr":20},"4f6b16ce8","qdash c15 timeframe-always: shell-owned ?period= (default 7d, persisted) shown as the permanent when: pill; every listing endpoint windowed under one fleet anchor (design c92)",{"repo":5476,"sha":6150,"date":5,"subject":6151,"pr":20},"a0f95e971","qdash c15: regenerate dist; cycle record — detail-pages (design c92)",{"repo":5476,"sha":6153,"date":5,"subject":6154,"pr":20},"3df076804","qdash: refresh q-nuxt-layer lock (0.9.18)",{"repo":5476,"sha":6156,"date":5,"subject":6157,"pr":20},"a3ca00010","qdash c15 detail-pages: harness mark at 40px (AgentAvatar size), Spend tile showFullNumber (design c92)",{"repo":5476,"sha":6159,"date":5,"subject":6160,"pr":20},"4d7370ef1","qdash c15 detail-pages: harness detail on the actor frame — Coverage headline, harnessBand tiles (installs donut, versions drift), onboard action for shadow installs, per-install cards → Installs ledger with config expand, Agents ledger (design c92)",{"repo":5476,"sha":6162,"date":5,"subject":6163,"pr":20},"e6ac67fad","qdash c15 detail-pages: tool detail on the actor frame — composite identity, Denied headline, toolBand tiles (success donut of judged parts), skills two-tile branch + honest-absence box, Agents + Recent calls ledgers (decision source, duration, expand for arguments\u002Foutput) (design c92)",{"repo":5476,"sha":6165,"date":5,"subject":6166,"pr":20},"2ed373ee0","qdash c15 detail-pages: model token parts sum to the headline (cache named in provenance, not drawn); findings plural; Spend tiles showFullNumber (design c92)",{"repo":5476,"sha":6168,"date":5,"subject":6169,"pr":20},"03b48f0b3","qdash c15 detail-pages: machine detail on the actor frame — Monitoring headline + onboard, machineBand tiles (installs donut, at-risk ZERO_TOLERANCE), Agents \u002F Installs \u002F Findings ledgers, users + models chips in metadata, honest-absence box when nothing is instrumented (design c92)",{"repo":5476,"sha":6171,"date":5,"subject":6172,"pr":20},"e418e2afc","qdash c15 detail-pages: model detail on the actor frame — Spend headline, modelBand tiles (tokens segment bar of in\u002Fout\u002Freasoning), Harnesses chip row (harnesses_detail rendered at last), Agents ledger, Configured-as-default under More detail (design c92)",{"repo":5476,"sha":6174,"date":5,"subject":6175,"pr":20},"f3bff5c06","qdash: workspace runs_detail ends an ended run at its last observation (same ruling as session_rows) so duration renders (design c92 detail-pages)",{"repo":5476,"sha":6177,"date":5,"subject":6178,"pr":20},"357465198","qdash c15 detail-pages: MCP server detail on the actor frame — Source headline, serverBand tiles + at-rest\u002Fruntime gap line, Tools ledger restored (denied per tool), Agents ledger with real tokens\u002Fspend, Configuration under More detail (design c92)",{"repo":5476,"sha":6180,"date":5,"subject":6181,"pr":20},"2b71efb55","qdash c15 detail-pages: workspace detail on the actor frame — ActorHeader (folder mark, full path subline, users\u002Fhosts chips, git projected), workspaceBand tiles, Agents + Recent runs ledgers (duration, running pill), Surface last (design c92)",{"repo":5476,"sha":6183,"date":5,"subject":6184,"pr":20},"c30ef2e1f","qdash c15 detail-pages: agent detail header on the layer's ActorHeader (no visual change) (design c92)",{"repo":5476,"sha":6186,"date":5,"subject":6187,"pr":20},"357857cf3","qdash c15 detail-pages: lib\u002Fdetail-bands (one pure band per actor detail page, vitest 20) + lib\u002Fentity-chip (glyphs, chip classes, tool-kind pills) (design c92)",{"repo":5476,"sha":6189,"date":5,"subject":6190,"pr":20},"83665c7b6","qdash c15: listing-viz — regenerate dist; cycle record; q-nuxt-layer 0.9.16 lockfile (design c92)",{"repo":5476,"sha":6192,"date":5,"subject":6193,"pr":20},"6b6e148a1","qdash: detail payloads — agents_detail carries calls + tokens + cost on every page; tools emit judged\u002Fok\u002Ffailed; models emit reasoning_tokens (tokens = in + out + reasoning); \u002Fapi\u002Fsurface policy block per scope (design c92 detail-pages)",{"repo":5476,"sha":6195,"date":5,"subject":6196,"pr":20},"414c638e9","c92: listing-viz — harnessesBand: nameless\u002Fkindless adapters read 'unknown kind' (explicit neutral segment) and 'unknown' rows",{"repo":5476,"sha":6198,"date":5,"subject":6199,"pr":20},"f05c5386e","c92: listing-viz — Teams: band from teamsBand — people-per-team ranked bars, assigned\u002Funassigned bar, spend-share ranked bars",{"repo":5476,"sha":6201,"date":5,"subject":6202,"pr":20},"13635f46d","c92: listing-viz — Users: Active · 30d gets the intensity ordinal bar",{"repo":5476,"sha":6204,"date":5,"subject":6205,"pr":20},"2dcf5dc00","c92: listing-viz — Devices: Monitored donut → coverage segment bar, Shadow gets shadow-installs-by-harness ranked bars",{"repo":5476,"sha":6207,"date":5,"subject":6208,"pr":20},"aaa33fb6c","c92: listing-viz — Fleet index: presence via DataSegmentBar, At-risk spark from \u002Fapi\u002Ftrends posture.crit, footprint sparks + rampTo + projected badge retired",{"repo":5476,"sha":6210,"date":5,"subject":6211,"pr":20},"2406646c8","c92: listing-viz — Sessions: status bar, top-3 cost ranked bars, flagged-by-worst-flag bar, full-width sessions-per-day history row with caption",{"repo":5476,"sha":6213,"date":5,"subject":6214,"pr":20},"053b2a164","c92: listing-viz — Agents: presence segment bar replaces the dot list, top-3 spend ranked bars, posture bar across all filtered agents",{"repo":5476,"sha":6216,"date":5,"subject":6217,"pr":20},"9fe6169e6","c92: listing-viz — Workspaces: freshness ordinal bar, shared\u002Fsolo runs bar, top-3 spend ranked bars",{"repo":5476,"sha":6219,"date":5,"subject":6220,"pr":20},"cfbe918b6","c92: listing-viz — Models: tokens-by-model bar (top 3 + Other), token-kind composition bar (headline = all kinds), top-3 spend ranked bars",{"repo":5476,"sha":6222,"date":5,"subject":6223,"pr":20},"a6be26c7b","c92: listing-viz — MCP Servers: source segment bar, top-3 calls and tools ranked bars",{"repo":5476,"sha":6225,"date":5,"subject":6226,"pr":20},"a7c909b61","c92: listing-viz — Tools: kind segment bar, top-3 calls ranked bars, Outcome donut ok · failed · denied (denied never judged)",{"repo":5476,"sha":6228,"date":5,"subject":6229,"pr":20},"4fbfd30ae","c92: listing-viz — Harnesses: kind segment bar, per-harness monitored\u002Fshadow rows, coverage meter (donut retired)",{"repo":5476,"sha":6231,"date":5,"subject":6232,"pr":20},"c0e5952d3","c92: listing-viz — Machines: coverage segment bar, coverage meter (donut retired), top-3 spend ranked bars",{"repo":5476,"sha":6234,"date":5,"subject":6235,"pr":20},"43556c66f","c92: listing-viz — bands grow the chart data: shareOf \u002F segmentsOf \u002F byDay helpers, per-band segments + top shares + sessions byDay (actor-bands), intensity \u002F coverage \u002F teams bands (people-rollups), RankedBars composition; vitest 262",{"repo":5476,"sha":6237,"date":5,"subject":6238,"pr":20},"97baba371","qdash c15: regenerate dist; cycle record — working-nav + people-pages; device donut legends below the ring",{"repo":5476,"sha":6240,"date":5,"subject":6241,"pr":20},"c11abe3ae","qdash c15 people-pages: TeamsOverview \u002F UsersOverview \u002F DevicesOverview; \u002Fteams → \u002Fteams-users-devices; solo \u002Fteams, \u002Fusers, \u002Fdevices (design c92)",{"repo":5476,"sha":6243,"date":5,"subject":6244,"pr":20},"44ca1bb96","qdash c15 working-nav: \"Working\" toggle + WORKING jump list in the sidebar (design c92)",{"repo":5476,"sha":6246,"date":3212,"subject":6247,"pr":20},"5544345d6","qdash c15: regenerate dist; cycle record — session-details",{"repo":5476,"sha":6249,"date":3212,"subject":6250,"pr":20},"7e07605ba","qdash c15 session-details: \u002Finventory\u002Fsessions\u002Fdetail becomes the c90 session mock — TranscriptPanel over the event grain, Surface chip grid, DataMachine rail; the ledger tables stay under \"More detail\"",{"repo":5476,"sha":6252,"date":3212,"subject":6253,"pr":20},"bbbe10f93","qdash: session detail serves the run's event grain + token parts; redact_text masks secrets at display (design c92 session-details)",{"repo":5476,"sha":6255,"date":3212,"subject":6256,"pr":20},"cd62cc22a","qdash c15 surface-section: say when \u002Fapi\u002Fsurface is not served instead of rendering a bare heading",{"repo":5476,"sha":6258,"date":3212,"subject":6259,"pr":20},"62ead921d","qdash: bump q-nuxt-layer to 0.9.15",{"repo":5476,"sha":6261,"date":3212,"subject":6262,"pr":20},"1d827b54b","qdash c15: regenerate dist; cycle record — actor-listings + surface-section",{"repo":5476,"sha":6264,"date":3212,"subject":6265,"pr":20},"ace53619d","qdash c15 surface-section: Surface on every actor detail + fleet index via \u003CSurfaceSection>",{"repo":5476,"sha":6267,"date":3212,"subject":6268,"pr":20},"570f50d29","qdash c15 surface-section: \u003CSurfaceSection> composition + lib\u002Fsurface-rollups (vitest)",{"repo":5476,"sha":6270,"date":3212,"subject":6271,"pr":20},"473676931","qdash: \u002Fapi\u002Fsurface?\u003Cscope>= — what an actor touches, for every actor (design c92 surface-section)",{"repo":5476,"sha":6273,"date":3212,"subject":6274,"pr":20},"033abb76e","qdash c15 actor-listings: \u002Finventory fleet index — DataMachine overview + footprint sparks, posture via the global filter (sparkGeo retired here)",{"repo":5476,"sha":6276,"date":3212,"subject":6277,"pr":20},"b3a57b545","qdash c15 actor-listings: \u002Finventory\u002Fsessions — global filter + DataMachine overview",{"repo":5476,"sha":6279,"date":3212,"subject":6280,"pr":20},"2c89c16e8","qdash c15 actor-listings: \u002Finventory\u002Fagents — global filter + DataMachine overview",{"repo":5476,"sha":6282,"date":3212,"subject":6283,"pr":20},"542b85658","qdash c15 actor-listings: \u002Finventory\u002Fmachines — global filter + DataMachine overview",{"repo":5476,"sha":6285,"date":3212,"subject":6286,"pr":20},"5b9a60cf9","qdash c15 actor-listings: \u002Finventory\u002Fharnesses — global filter + DataMachine overview",{"repo":5476,"sha":6288,"date":3212,"subject":6289,"pr":20},"c40f02c45","qdash c15 actor-listings: \u002Finventory\u002Fworkspaces — global filter + DataMachine overview",{"repo":5476,"sha":6291,"date":3212,"subject":6292,"pr":20},"8a0704b3b","qdash c15 actor-listings: \u002Finventory\u002Ftools — global filter + DataMachine overview",{"repo":5476,"sha":6294,"date":3212,"subject":6295,"pr":20},"561537194","qdash c15 actor-listings: \u002Finventory\u002Fmcp-servers — global filter + DataMachine overview",{"repo":5476,"sha":6297,"date":3212,"subject":6298,"pr":20},"f58ab67a9","qdash c15 actor-listings: \u002Finventory\u002Fmodels — global filter + DataMachine overview",{"repo":5476,"sha":6300,"date":3212,"subject":6301,"pr":20},"ab48bd608","qdash c15 actor-listings: key catalogue (posture\u002Fkind\u002Fsource\u002Fstatus\u002Fflagged\u002Fserver\u002Fmodel\u002Fworkspace\u002Fadapter, agentKeyDef with formatVal), lib\u002Factor-bands (vitest)",{"repo":5476,"sha":6303,"date":18,"subject":6304,"pr":20},"79b1f5490","qdash: bump q-nuxt-layer to 0.9.14",{"repo":5476,"sha":6306,"date":18,"subject":6307,"pr":20},"c4fdd6ada","qdash c15: regenerate dist (Teams, Users & Devices + global filter)",{"repo":5476,"sha":6309,"date":18,"subject":6310,"pr":20},"b6c123de3","qdash c15: Teams, Users & Devices on real data + shell-owned global filter (design c92)",{"repo":5476,"sha":6312,"date":3212,"subject":6313,"pr":6314},"540e04815","Fix hook stack-overflow (#710)",710,{"repo":5476,"sha":6316,"date":33,"subject":6317,"pr":6318},"4033c2aa9","Arch linux patches (#708)",708,{"repo":5476,"sha":6320,"date":41,"subject":6321,"pr":6322},"6ad12454d","Symbiote Connect module and transparent redirector (#700)",700,{"repo":5476,"sha":6324,"date":41,"subject":6325,"pr":6326},"52962f368","Prune excluded directories during format discovery (#705)",705,{"repo":5476,"sha":6328,"date":41,"subject":6329,"pr":6330},"0eafa4e7d","Kernel redirect of process TCP to qproxy (`qforward` + intake) (#704)",704,{"repo":5476,"sha":6332,"date":41,"subject":6333,"pr":6334},"15c3af29a","Add path for creating and attaching monitor workers to existing processes (#697)",697,{"repo":5476,"sha":6336,"date":49,"subject":6337,"pr":6338},"59752af2f","Wire monitor process discovery through qprocess tracker (#702)",702,{"repo":5476,"sha":6340,"date":49,"subject":6341,"pr":6342},"044709a16","Add standalone qprocess event tracker with eBPF variant for linux (#699)",699,{"repo":5476,"sha":6344,"date":4,"subject":6345,"pr":6346},"3e5dd0418","Port Qtap container lifecycle events into native Rust crate (#698)",698,{"id":6348,"label":6349,"commits":6350},"layer","q-nuxt-layer",[6351,6354,6357,6360,6363,6366,6369,6372,6375,6378,6381,6384,6387,6390,6393,6396,6399,6402,6405,6408,6411,6414,6417],{"repo":6348,"sha":6352,"date":5,"subject":6353,"pr":20},"538a502","c92: day-series §A — migration note: 0.9.20 row keys",{"repo":6348,"sha":6355,"date":5,"subject":6356,"pr":20},"910a284","v0.9.20: DataRankedBars rows keyed by index + label (c92 day-series §A)",{"repo":6348,"sha":6358,"date":5,"subject":6359,"pr":20},"1a510c3","c92: day-series §A — DataRankedBars keys rows by index + label",{"repo":6348,"sha":6361,"date":5,"subject":6362,"pr":20},"ee51480","v0.9.19: DataRankedBars — the Ranked share preset with inline + stacked layouts (c92 day-series §A)",{"repo":6348,"sha":6364,"date":5,"subject":6365,"pr":20},"653ae52","c92: day-series §A — DataRankedBars: the Ranked share preset as a layer component, inline + stacked layouts",{"repo":6348,"sha":6367,"date":5,"subject":6368,"pr":20},"88ff08a","v0.9.18: DataMachine showFullNumber, AgentAvatar size (c92 detail-pages)",{"repo":6348,"sha":6370,"date":5,"subject":6371,"pr":20},"9d4bf9d","c92 detail-pages: AgentAvatar size prop (logo edge in px; default 20) for ActorHeader marks",{"repo":6348,"sha":6373,"date":5,"subject":6374,"pr":20},"cc2ee1d","c92 detail-pages: DataMachine passes showFullNumber through to DataMetricValue (money tiles print 1956.24, not 2k)",{"repo":6348,"sha":6376,"date":5,"subject":6377,"pr":20},"bfd250b","v0.9.17: Filter's permanent when: timeframe column + FilterItem removable (c92 timeframe-always); ActorHeader + ActorHeaderCell (c92 detail-pages)",{"repo":6348,"sha":6379,"date":5,"subject":6380,"pr":20},"738ceac","c92 timeframe-always: FilterItem removable prop + Filter's permanent when: timeframe column (last before Config; empty state only without a timeframe)",{"repo":6348,"sha":6382,"date":5,"subject":6383,"pr":20},"30ebbbb","c92: ActorHeader + ActorHeaderCell — the combined actor identity header chrome (mark · name · subline; divided cells; metadata grid with Show All), lifted from qdash agent detail",{"repo":6348,"sha":6385,"date":5,"subject":6386,"pr":20},"08eac7c","v0.9.16: DataSegmentBar + shared data\u002Fpalette.js + DataMachine presets (c92 listing-viz)",{"repo":6348,"sha":6388,"date":5,"subject":6389,"pr":20},"840170b","c92: listing-viz — DataSegmentBar fold counts only uncolored items (explicitly colored parts never fold); data-total \u002F data-value \u002F data-val hooks for headless cross-foot checks",{"repo":6348,"sha":6391,"date":5,"subject":6392,"pr":20},"e07abd4","c92: listing-viz — DataSegmentBar + shared data\u002Fpalette.js (donut resolver, categorical slots, grape ordinal ramp lifted; history-graph\u002Fpalette.js re-exports)",{"repo":6348,"sha":6394,"date":3212,"subject":6395,"pr":20},"4d71bfe","v0.9.15: DataSurfaceSection + FilterKeyDefinition.formatVal (c92)",{"repo":6348,"sha":6397,"date":3212,"subject":6398,"pr":20},"82b18f0","c92: DataSurfaceSection — chrome for a set of DataSurfacePanels (heading, scope caption, lede, anchor, grid)",{"repo":6348,"sha":6400,"date":3212,"subject":6401,"pr":20},"3e44907","c92: FilterKeyDefinition.formatVal — display-only value formatter for the bar and its suggestions",{"repo":6348,"sha":6403,"date":18,"subject":6404,"pr":20},"6711ef6","v0.9.14: Filter sticky ownership + token colours (c92)",{"repo":6348,"sha":6406,"date":18,"subject":6407,"pr":20},"eba8496","c92: Filter owns sticky pinning (stickyTop, _stuck, canvas backing); filter v2 hex → tokens",{"repo":6348,"sha":6409,"date":18,"subject":6410,"pr":20},"13e8d40","v0.9.13: Filter v2 + legacy namespace (c88), DataMachine (c91), chrome tweaks (c90)",{"repo":6348,"sha":6412,"date":18,"subject":6413,"pr":20},"c3129a6","c90: UxAvatar border-2, UxPageTitle pb-3",{"repo":6348,"sha":6415,"date":18,"subject":6416,"pr":20},"ee51f82","c91: DataMachine + DataMetricSpark closePath fix",{"repo":6348,"sha":6418,"date":18,"subject":6419,"pr":20},"1d6b78c","c88: filter\u002F* — extraction + v2 segmented bar with negation",[6421,6423,6425,6427,6429,6431,6433,6435],{"tag":6422,"date":5,"subject":6356},"v0.9.20",{"tag":6424,"date":5,"subject":6362},"v0.9.19",{"tag":6426,"date":5,"subject":6368},"v0.9.18",{"tag":6428,"date":5,"subject":6377},"v0.9.17",{"tag":6430,"date":5,"subject":6386},"v0.9.16",{"tag":6432,"date":3212,"subject":6395},"v0.9.15",{"tag":6434,"date":18,"subject":6404},"v0.9.14",{"tag":6436,"date":18,"subject":6410},"v0.9.13",[],[6439,6445,6451,6460,6467,6473,6479,6487,6494,6498,6502,6506,6509,6516,6523,6529,6535],{"project":9,"cycle":511,"src":516,"route":6440,"caption":6441,"capturedAt":6442,"subject":6443,"evolution":20,"seq":20,"thread":20,"variant":20,"newThing":6444,"moments":21,"subjectSince":18},"\u002Fcomponents\u002Fdata\u002Fdata-history-graph","\u002Fcomponents\u002Fdata\u002Fdata-history-graph — pictogram history chart with unit-scaled block columns, swatch legend, and the 7\u002F30\u002F60-day\u002Fsparse\u002Fspike scenario grid","2026-09-18T16:47:41.425Z","component\u002Fdata-history-graph","DataHistoryGraph — unit-scaled pictogram columns that fall back to continuous bars past 40 columns",{"project":9,"cycle":43,"src":48,"route":6446,"caption":6447,"capturedAt":6448,"subject":6449,"evolution":6450,"seq":20,"thread":20,"variant":20,"newThing":20,"moments":155,"subjectSince":18},"\u002Fpages\u002Fphase1\u002Fsessions","Sessions listing (net new) — verdict, honest 7d-sample stat pair with no ring, named flagged-sessions list, DataTable roster ranked violations → runaway cost → clean","2026-09-18T16:47:24.503Z","page\u002Fsessions","\u002Fcycles\u002Fevolution\u002Fpage\u002Fsessions",{"project":9,"cycle":43,"src":6452,"route":6453,"caption":6454,"capturedAt":6455,"subject":6456,"evolution":6457,"seq":20,"thread":20,"variant":20,"newThing":6458,"moments":346,"subjectSince":6459},"\u002Fcycles\u002Fdesign\u002Fc89-teams-v3.png","\u002Fpages\u002Fphase1\u002Fteams-v3","Teams v3 header treatment — DataDonutChart coverage rings replace stat-block fractions, plus a named needs-attention list under the band","2026-09-18T16:47:21.670Z","page\u002Fteams","\u002Fcycles\u002Fevolution\u002Fpage\u002Fteams","The header idiom: a coverage ring where a real denominator exists, a named attention list instead of abstract counts","2026-09-02",{"project":9,"cycle":26,"src":32,"route":6461,"caption":6462,"capturedAt":6463,"subject":6464,"evolution":6465,"seq":20,"thread":20,"variant":20,"newThing":6466,"moments":83,"subjectSince":18},"\u002Fcomponents\u002Fdata-machine\u002Fdata-machine","\u002Fcomponents\u002Fdata-machine — adminProps harness above the two copyable presets (User Coverage, Devices Sensored) and the scenario grid","2026-09-18T16:47:18.842Z","component\u002Fdata-machine","\u002Fcycles\u002Fevolution\u002Fcomponent\u002Fdata-machine","DataMachine — the base-component + curated-preset pattern qmap arrived at, now a named layer idea",{"project":9,"cycle":519,"src":6468,"route":6469,"caption":6470,"capturedAt":6471,"subject":6472,"evolution":20,"seq":20,"thread":20,"variant":20,"newThing":20,"moments":21,"subjectSince":18},"\u002Fcycles\u002Fdesign\u002Fc85-transcript-panel-docs.png","\u002Fcomponents\u002Ftranscript\u002Ftranscript-panel","\u002Fcomponents\u002Ftranscript\u002Ftranscript-panel — adminProps + the four fixture states behind a toggle","2026-09-18T16:47:11.423Z","component\u002Ftranscript-panel",{"project":9,"cycle":519,"src":524,"route":6474,"caption":6475,"capturedAt":6476,"subject":6477,"evolution":20,"seq":20,"thread":20,"variant":20,"newThing":6478,"moments":21,"subjectSince":18},"\u002Fpages\u002Fphase1\u002Fchat-transcript","TranscriptPanel demo on \u002Fpages\u002Fphase1\u002Fchat-transcript — typical fixture: user\u002Fagent bubbles with the skewed-square tail, collapsed tool-call rows, the hover-expanding turn navigator rail","2026-09-18T16:47:08.622Z","page\u002Fchat-transcript","The transcript\u002F* namespace — c77's chat-grammar candidate promoted to five reusable layer components",{"project":9,"cycle":35,"src":6480,"route":6481,"caption":6482,"capturedAt":6483,"subject":6484,"evolution":6485,"seq":106,"thread":20,"variant":20,"newThing":6486,"moments":66,"subjectSince":6459},"\u002Fcycles\u002Fdesign\u002Fc90-session-details.png","\u002Fqcontrol\u002Fsession-v2","\u002Fqcontrol\u002Fsession-v2 — Session Details reworked against the dropped mock: transcript reading column + sticky DataMachine metadata rail","2026-09-17T19:06:30.510Z","page\u002Fsession-detail","\u002Fcycles\u002Fevolution\u002Fpage\u002Fsession-detail","The qcontrol preview — seven page mocks behind a left nav and app chrome that mimics the real shell",{"project":9,"cycle":51,"src":6488,"route":6489,"caption":6490,"capturedAt":6491,"subject":6492,"evolution":6493,"seq":20,"thread":20,"variant":20,"newThing":20,"moments":83,"subjectSince":41},"\u002Fcycles\u002Fdesign\u002Fc88-filter-v6.png","\u002Fcomponents\u002Ffilter\u002Ffilter","Filter v2, iteration 6","2026-09-16T21:08:22.544Z","component\u002Ffilter","\u002Fcycles\u002Fevolution\u002Fcomponent\u002Ffilter",{"project":9,"cycle":51,"src":6495,"route":6489,"caption":6496,"capturedAt":6497,"subject":6492,"evolution":6493,"seq":20,"thread":20,"variant":20,"newThing":20,"moments":83,"subjectSince":41},"\u002Fcycles\u002Fdesign\u002Fc88-filter-v5.png","Filter v2, iteration 5","2026-09-16T21:05:30.495Z",{"project":9,"cycle":51,"src":6499,"route":6489,"caption":6500,"capturedAt":6501,"subject":6492,"evolution":6493,"seq":20,"thread":20,"variant":20,"newThing":20,"moments":83,"subjectSince":41},"\u002Fcycles\u002Fdesign\u002Fc88-filter-v4.png","Filter v2, iteration 4","2026-09-16T21:02:24.631Z",{"project":9,"cycle":51,"src":6503,"route":6489,"caption":6504,"capturedAt":6505,"subject":6492,"evolution":6493,"seq":20,"thread":20,"variant":20,"newThing":20,"moments":83,"subjectSince":41},"\u002Fcycles\u002Fdesign\u002Fc88-filter-v3.png","Filter v2, iteration 3","2026-09-16T20:57:21.520Z",{"project":9,"cycle":51,"src":56,"route":6489,"caption":6507,"capturedAt":6508,"subject":6492,"evolution":6493,"seq":20,"thread":20,"variant":20,"newThing":20,"moments":83,"subjectSince":41},"Filter v2 with the Config modal open — edits happen there, the bar stays display-only","2026-09-16T20:51:32.793Z",{"project":9,"cycle":51,"src":6510,"route":6511,"caption":6512,"capturedAt":6513,"subject":6514,"evolution":20,"seq":20,"thread":20,"variant":20,"newThing":6515,"moments":21,"subjectSince":41},"\u002Fcycles\u002Fdesign\u002Fc88-filter-old.png","\u002Fcomponents\u002Ffilter-old\u002Ffilter-old","Phase 1 — the legacy filter extracted verbatim into filter\u002Fold\u002F (FilterOld*)","2026-09-16T18:40:58.603Z","component\u002Ffilter-old","Filter v2 — a display-only segmented bar with negation, plus FilterTriggerBar for contextual quick-filtering",{"project":9,"cycle":51,"src":6517,"route":6518,"caption":6519,"capturedAt":6520,"subject":6521,"evolution":6522,"seq":20,"thread":20,"variant":20,"newThing":20,"moments":83,"subjectSince":41},"\u002Fcycles\u002Fdesign\u002Fc88-filter-item.png","\u002Fcomponents\u002Ffilter\u002Ffilter-item","FilterItem — one segment of the v2 bar","2026-09-16T18:40:41.536Z","component\u002Ffilter-item","\u002Fcycles\u002Fevolution\u002Fcomponent\u002Ffilter-item",{"project":9,"cycle":51,"src":6524,"route":6525,"caption":6526,"capturedAt":6527,"subject":6528,"evolution":20,"seq":20,"thread":20,"variant":20,"newThing":20,"moments":21,"subjectSince":41},"\u002Fcycles\u002Fdesign\u002Fc88-trigger-bar.png","\u002Fcomponents\u002Ffilter\u002Ffilter-trigger-bar","FilterTriggerBar — contextual quick-filter strip wired to the same shared filter state","2026-09-16T18:40:25.546Z","component\u002Ffilter-trigger-bar",{"project":9,"cycle":51,"src":6530,"route":6531,"caption":6532,"capturedAt":6533,"subject":6534,"evolution":20,"seq":20,"thread":20,"variant":20,"newThing":20,"moments":21,"subjectSince":41},"\u002Fcycles\u002Fdesign\u002Fc88-lab-page.png","\u002Fpages\u002Fphase2-global-filter","\u002Fpages\u002Fphase2\u002Fglobal-filter lab page — Filter + FilterTriggerBar integration and the state-sync pattern","2026-09-16T18:40:22.632Z","page\u002Fphase2-global-filter",{"project":9,"cycle":51,"src":6536,"route":6489,"caption":6537,"capturedAt":6538,"subject":6492,"evolution":6493,"seq":20,"thread":20,"variant":20,"newThing":20,"moments":83,"subjectSince":41},"\u002Fcycles\u002Fdesign\u002Fc88-filter-v2.png","Filter v2, first segmented-bar pass","2026-09-16T18:39:59.981Z",[6540,6543,6546,6549,6552,6555],{"key":6541,"project":9,"cycle":26,"title":29,"count":21,"entries":221,"rep":6542,"newThing":6466},"design:c91",{"project":9,"cycle":26,"src":32,"route":6461,"caption":6462,"capturedAt":6463,"subject":6464,"evolution":6465,"seq":20,"thread":20,"variant":20,"newThing":6466,"moments":83,"subjectSince":18},{"key":6544,"project":9,"cycle":35,"title":38,"count":21,"entries":221,"rep":6545,"newThing":6486},"design:c90",{"project":9,"cycle":35,"src":6480,"route":6481,"caption":6482,"capturedAt":6483,"subject":6484,"evolution":6485,"seq":106,"thread":20,"variant":20,"newThing":6486,"moments":66,"subjectSince":6459},{"key":6547,"project":9,"cycle":43,"title":46,"count":83,"entries":115,"rep":6548,"newThing":6458},"design:c89",{"project":9,"cycle":43,"src":48,"route":6446,"caption":6447,"capturedAt":6448,"subject":6449,"evolution":6450,"seq":20,"thread":20,"variant":20,"newThing":20,"moments":155,"subjectSince":18},{"key":6550,"project":9,"cycle":51,"title":54,"count":346,"entries":66,"rep":6551,"newThing":6515},"design:c88",{"project":9,"cycle":51,"src":56,"route":6489,"caption":6507,"capturedAt":6508,"subject":6492,"evolution":6493,"seq":20,"thread":20,"variant":20,"newThing":20,"moments":83,"subjectSince":41},{"key":6553,"project":9,"cycle":519,"title":522,"count":83,"entries":21,"rep":6554,"newThing":6478},"design:c85",{"project":9,"cycle":519,"src":524,"route":6474,"caption":6475,"capturedAt":6476,"subject":6477,"evolution":20,"seq":20,"thread":20,"variant":20,"newThing":6478,"moments":21,"subjectSince":18},{"key":6556,"project":9,"cycle":511,"title":514,"count":21,"entries":22,"rep":6557,"newThing":6444},"design:c87",{"project":9,"cycle":511,"src":516,"route":6440,"caption":6441,"capturedAt":6442,"subject":6443,"evolution":20,"seq":20,"thread":20,"variant":20,"newThing":6444,"moments":21,"subjectSince":18},[6559,6563,6569,6574,6578,6582,6587,6592,6597,6601,6605,6609],{"id":6492,"kind":6560,"label":1057,"note":20,"cycles":6561,"count":123,"latest":6488,"moments":83,"since":41,"isNew":24,"evolution":6493},"component",[6562],{"project":9,"id":51},{"id":6477,"kind":6564,"label":6565,"note":20,"cycles":6566,"count":21,"latest":524,"moments":21,"since":18,"isNew":24,"evolution":6568},"page","Chat transcript",[6567],{"project":9,"id":519},"\u002Fcycles\u002Fevolution\u002Fpage\u002Fchat-transcript",{"id":6443,"kind":6560,"label":6570,"note":20,"cycles":6571,"count":21,"latest":516,"moments":21,"since":18,"isNew":24,"evolution":6573},"Data history graph",[6572],{"project":9,"id":511},"\u002Fcycles\u002Fevolution\u002Fcomponent\u002Fdata-history-graph",{"id":6464,"kind":6560,"label":6575,"note":20,"cycles":6576,"count":21,"latest":32,"moments":83,"since":18,"isNew":24,"evolution":6465},"Data machine",[6577],{"project":9,"id":26},{"id":6521,"kind":6560,"label":6579,"note":20,"cycles":6580,"count":21,"latest":6517,"moments":83,"since":41,"isNew":24,"evolution":6522},"Filter item",[6581],{"project":9,"id":51},{"id":6514,"kind":6560,"label":6583,"note":20,"cycles":6584,"count":21,"latest":6510,"moments":21,"since":41,"isNew":24,"evolution":6586},"Filter old",[6585],{"project":9,"id":51},"\u002Fcycles\u002Fevolution\u002Fcomponent\u002Ffilter-old",{"id":6528,"kind":6560,"label":6588,"note":20,"cycles":6589,"count":21,"latest":6524,"moments":21,"since":41,"isNew":24,"evolution":6591},"Filter trigger bar",[6590],{"project":9,"id":51},"\u002Fcycles\u002Fevolution\u002Fcomponent\u002Ffilter-trigger-bar",{"id":6534,"kind":6564,"label":6593,"note":20,"cycles":6594,"count":21,"latest":6530,"moments":21,"since":41,"isNew":24,"evolution":6596},"Phase2 global filter",[6595],{"project":9,"id":51},"\u002Fcycles\u002Fevolution\u002Fpage\u002Fphase2-global-filter",{"id":6484,"kind":6564,"label":6598,"note":20,"cycles":6599,"count":21,"latest":6480,"moments":66,"since":6459,"isNew":23,"evolution":6485},"Session detail",[6600],{"project":9,"id":35},{"id":6449,"kind":6564,"label":6602,"note":20,"cycles":6603,"count":21,"latest":48,"moments":155,"since":18,"isNew":24,"evolution":6450},"Sessions",[6604],{"project":9,"id":43},{"id":6456,"kind":6564,"label":134,"note":6606,"cycles":6607,"count":21,"latest":6452,"moments":346,"since":6459,"isNew":23,"evolution":6457},"Phase-1 mock (c81) → teams-v3 (c89) → qcontrol preview (c90) → qdash \u002Fteams-users-devices (c92).",[6608],{"project":9,"id":43},{"id":6472,"kind":6560,"label":6610,"note":20,"cycles":6611,"count":21,"latest":6468,"moments":21,"since":18,"isNew":24,"evolution":6613},"Transcript panel",[6612],{"project":9,"id":519},"\u002Fcycles\u002Fevolution\u002Fcomponent\u002Ftranscript-panel",[6615],"Deploys come from this checkout's deploy-branch reflog, which starts 2026-10-16.","2026-09-07","2026-09-21",1794599478406]