[{"data":1,"prerenderedAt":2400},["ShallowReactive",2],{"$f-mHY3IM1DNFb3qk5Zqt_MYPAcLAm7xquy8aKdq7yBmk":3},{"from":4,"to":5,"cycles":6,"entries":432,"repos":2124,"releases":2361,"deploys":2363,"captures":2364,"clusters":2382,"subjects":2389,"notes":2396,"week":4,"prev":2398,"next":2399,"current":21},"2026-08-24","2026-08-30",{"started":7,"open":32,"closed":431},[8,22],{"project":9,"projectLabel":10,"id":11,"num":12,"dir":13,"title":14,"focus":15,"status":16,"thumbnail":17,"started":18,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":20,"quietWeeks":20,"stale":21,"active":21},"design","Design","c80",80,"c80.brotli-stream-termination","brotli-stream-termination","qproxy MITM truncates streamed brotli response bodies — client apps show `Decompression error: BrotliDecompressionError`","active",null,"2026-08-27","record",1,false,{"project":9,"projectLabel":10,"id":23,"num":24,"dir":25,"title":26,"focus":27,"status":16,"thumbnail":28,"started":29,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":20,"quietWeeks":30,"stale":21,"active":31},"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",0,true,[33,43,52,59,67,74,83,89,97,103,110,118,126,134,141,151,159,166,174,181,186,196,203,208,215,223,230,238,245,253,261,266,271,275,280,287,295,300,306,313,321,327,333,342,350,358,365,368,371,376,381,385,391,397,403,410,415,419,426],{"project":9,"projectLabel":10,"id":34,"num":35,"dir":36,"title":37,"focus":38,"status":39,"thumbnail":17,"started":40,"startedSource":19,"closed":41,"closedSource":19,"openWeeks":42,"quietWeeks":30,"stale":21,"active":31},"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.","archived","2026-08-20","2026-11-03",2,{"project":9,"projectLabel":10,"id":44,"num":45,"dir":46,"title":47,"focus":48,"status":16,"thumbnail":49,"started":50,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":51,"quietWeeks":30,"stale":21,"active":31},"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","2026-08-14",3,{"project":9,"projectLabel":10,"id":53,"num":54,"dir":55,"title":56,"focus":57,"status":16,"thumbnail":58,"started":40,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":42,"quietWeeks":20,"stale":21,"active":21},"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":60,"projectLabel":61,"id":62,"num":63,"dir":64,"title":65,"focus":66,"status":16,"thumbnail":17,"started":40,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":42,"quietWeeks":20,"stale":21,"active":21},"market-analyst","Market Analyst","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":9,"projectLabel":10,"id":68,"num":69,"dir":70,"title":71,"focus":72,"status":16,"thumbnail":17,"started":73,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":51,"quietWeeks":42,"stale":21,"active":21},"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",{"project":75,"projectLabel":76,"id":77,"num":78,"dir":79,"title":80,"focus":17,"status":16,"thumbnail":81,"started":73,"startedSource":82,"closed":17,"closedSource":17,"openWeeks":51,"quietWeeks":42,"stale":21,"active":21},"bob-wire","Bob-Wire","c20",20,"c20.build-partner-portal","Build Partner Portal","\u002Fcycles\u002Fbob-wire\u002Fc20-index.png","git",{"project":75,"projectLabel":76,"id":84,"num":85,"dir":86,"title":87,"focus":17,"status":16,"thumbnail":88,"started":73,"startedSource":82,"closed":17,"closedSource":17,"openWeeks":51,"quietWeeks":42,"stale":21,"active":21},"c17",17,"c17.owasp-policy-pack","OWASP LLM Top 10 — Policy Pack","\u002Fcycles\u002Fbob-wire\u002Fc17-control-definition.png",{"project":90,"projectLabel":91,"id":92,"num":93,"dir":94,"title":95,"focus":17,"status":16,"thumbnail":96,"started":73,"startedSource":82,"closed":17,"closedSource":17,"openWeeks":51,"quietWeeks":42,"stale":21,"active":21},"qpixel","Qpixel","c5",5,"c5.selection-clipboard","Selection Clipboard","\u002Fcycles\u002Fqpixel\u002Fc5-editor.png",{"project":90,"projectLabel":91,"id":98,"num":99,"dir":100,"title":101,"focus":17,"status":16,"thumbnail":102,"started":73,"startedSource":82,"closed":17,"closedSource":17,"openWeeks":51,"quietWeeks":42,"stale":21,"active":21},"c4",4,"c4.svg-export","SVG Export","\u002Fcycles\u002Fqpixel\u002Fc4-checkerboard.png",{"project":9,"projectLabel":10,"id":104,"num":105,"dir":106,"title":107,"focus":108,"status":16,"thumbnail":109,"started":50,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":51,"quietWeeks":42,"stale":21,"active":21},"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",{"project":9,"projectLabel":10,"id":111,"num":112,"dir":113,"title":114,"focus":115,"status":39,"thumbnail":116,"started":50,"startedSource":19,"closed":117,"closedSource":19,"openWeeks":51,"quietWeeks":42,"stale":21,"active":21},"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":119,"num":120,"dir":121,"title":122,"focus":123,"status":16,"thumbnail":124,"started":125,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":51,"quietWeeks":42,"stale":21,"active":21},"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":127,"num":128,"dir":129,"title":130,"focus":131,"status":16,"thumbnail":132,"started":133,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":51,"quietWeeks":42,"stale":21,"active":21},"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":75,"projectLabel":76,"id":135,"num":136,"dir":137,"title":138,"focus":139,"status":16,"thumbnail":17,"started":140,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":93,"quietWeeks":42,"stale":21,"active":21},"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":142,"projectLabel":143,"id":144,"num":145,"dir":146,"title":147,"focus":148,"status":16,"thumbnail":149,"started":150,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":93,"quietWeeks":42,"stale":21,"active":21},"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":75,"projectLabel":76,"id":152,"num":153,"dir":154,"title":155,"focus":156,"status":16,"thumbnail":17,"started":157,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":158,"quietWeeks":42,"stale":21,"active":21},"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","2026-07-24",6,{"project":75,"projectLabel":76,"id":160,"num":161,"dir":162,"title":163,"focus":17,"status":16,"thumbnail":164,"started":165,"startedSource":82,"closed":17,"closedSource":17,"openWeeks":145,"quietWeeks":42,"stale":21,"active":21},"c15",15,"c15.agent-dashboard","Agent Dashboard","\u002Fcycles\u002Fbob-wire\u002Fc15-index.png","2026-06-09",{"project":75,"projectLabel":76,"id":167,"num":168,"dir":169,"title":170,"focus":17,"status":16,"thumbnail":171,"started":172,"startedSource":82,"closed":17,"closedSource":17,"openWeeks":173,"quietWeeks":42,"stale":21,"active":21},"c16",16,"c16.agent-control-plane","Agent Control Plane","\u002Fcycles\u002Fbob-wire\u002Fc16-control-plane-integrations.png","2026-06-04",13,{"project":75,"projectLabel":76,"id":175,"num":176,"dir":177,"title":178,"focus":17,"status":16,"thumbnail":179,"started":180,"startedSource":82,"closed":17,"closedSource":17,"openWeeks":168,"quietWeeks":42,"stale":21,"active":21},"c14",14,"c14.qcontrol-brochure-site","QControl Brochure Site","\u002Fcycles\u002Fbob-wire\u002Fc14-index.png","2026-05-11",{"project":75,"projectLabel":76,"id":182,"num":173,"dir":183,"title":184,"focus":17,"status":16,"thumbnail":185,"started":180,"startedSource":82,"closed":17,"closedSource":17,"openWeeks":168,"quietWeeks":42,"stale":21,"active":21},"c13","c13.ai-agent-policies","AI Agent Policies","\u002Fcycles\u002Fbob-wire\u002Fc13-index.png",{"project":187,"projectLabel":188,"id":189,"num":190,"dir":191,"title":192,"focus":193,"status":16,"thumbnail":194,"started":195,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":85,"quietWeeks":42,"stale":21,"active":21},"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":187,"projectLabel":188,"id":197,"num":198,"dir":199,"title":200,"focus":201,"status":16,"thumbnail":17,"started":202,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":153,"quietWeeks":42,"stale":21,"active":21},"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":75,"projectLabel":76,"id":144,"num":145,"dir":204,"title":205,"focus":17,"status":16,"thumbnail":206,"started":207,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":136,"quietWeeks":42,"stale":21,"active":21},"c12.inventory-deep-dive","Inventory Deep Dive","\u002Fcycles\u002Fbob-wire\u002Fc12-index.png","2026-04-24",{"project":75,"projectLabel":76,"id":209,"num":210,"dir":211,"title":212,"focus":17,"status":16,"thumbnail":213,"started":214,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":136,"quietWeeks":42,"stale":21,"active":21},"c10",10,"c10.security-overview-benchmark","Security Overview Benchmark","\u002Fcycles\u002Fbob-wire\u002Fc10-index.png","2026-04-22",{"project":187,"projectLabel":188,"id":216,"num":217,"dir":218,"title":219,"focus":220,"status":16,"thumbnail":221,"started":222,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":136,"quietWeeks":42,"stale":21,"active":21},"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":75,"projectLabel":76,"id":224,"num":225,"dir":226,"title":227,"focus":17,"status":16,"thumbnail":228,"started":229,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":136,"quietWeeks":42,"stale":21,"active":21},"c9",9,"c9.meaning-layer-dashboard","Meaning-Layer Dashboard","\u002Fcycles\u002Fbob-wire\u002Fc9-index.png","2026-04-20",{"project":187,"projectLabel":188,"id":231,"num":232,"dir":233,"title":234,"focus":235,"status":16,"thumbnail":236,"started":237,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":78,"quietWeeks":42,"stale":21,"active":21},"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",{"project":187,"projectLabel":188,"id":239,"num":240,"dir":241,"title":242,"focus":243,"status":16,"thumbnail":244,"started":237,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":78,"quietWeeks":42,"stale":21,"active":21},"c23",23,"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":187,"projectLabel":188,"id":246,"num":247,"dir":248,"title":249,"focus":250,"status":16,"thumbnail":251,"started":252,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":78,"quietWeeks":42,"stale":21,"active":21},"c22",22,"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":187,"projectLabel":188,"id":254,"num":255,"dir":256,"title":257,"focus":258,"status":16,"thumbnail":259,"started":260,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":247,"quietWeeks":42,"stale":21,"active":21},"c21",21,"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":75,"projectLabel":76,"id":98,"num":99,"dir":262,"title":263,"focus":17,"status":16,"thumbnail":264,"started":265,"startedSource":82,"closed":17,"closedSource":17,"openWeeks":247,"quietWeeks":42,"stale":21,"active":21},"c4.aii-agents-entity","AI Agents Entity","\u002Fcycles\u002Fbob-wire\u002Fc4-agent-sessions.png","2026-04-01",{"project":142,"projectLabel":143,"id":209,"num":210,"dir":267,"title":268,"focus":17,"status":16,"thumbnail":269,"started":270,"startedSource":82,"closed":17,"closedSource":17,"openWeeks":240,"quietWeeks":42,"stale":21,"active":21},"c10.real-data","Real Data","\u002Fcycles\u002Fqflow\u002Fc10-devtools-iso.png","2026-03-23",{"project":142,"projectLabel":143,"id":62,"num":63,"dir":272,"title":273,"focus":17,"status":16,"thumbnail":274,"started":270,"startedSource":82,"closed":17,"closedSource":17,"openWeeks":240,"quietWeeks":42,"stale":21,"active":21},"c8.label-controls","label controls","\u002Fcycles\u002Fqflow\u002Fc8-bottom-warm.png",{"project":75,"projectLabel":76,"id":276,"num":51,"dir":277,"title":278,"focus":17,"status":16,"thumbnail":279,"started":270,"startedSource":82,"closed":17,"closedSource":17,"openWeeks":240,"quietWeeks":42,"stale":21,"active":21},"c3","c3.dataflows","Dataflows","\u002Fcycles\u002Fbob-wire\u002Fc3-dataflows-overview.png",{"project":75,"projectLabel":76,"id":281,"num":20,"dir":282,"title":283,"focus":284,"status":16,"thumbnail":285,"started":286,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":198,"quietWeeks":42,"stale":21,"active":21},"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",{"project":60,"projectLabel":61,"id":288,"num":289,"dir":290,"title":291,"focus":292,"status":293,"thumbnail":17,"started":294,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":190,"quietWeeks":20,"stale":21,"active":21},"c7",7,"c7.avoma-notes","avoma-notes","Explore and integrate Avoma notes data into extraction pipeline and dashboard visualizations.","parked","2026-02-25",{"project":60,"projectLabel":61,"id":98,"num":99,"dir":296,"title":297,"focus":298,"status":293,"thumbnail":17,"started":299,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":190,"quietWeeks":20,"stale":21,"active":21},"c4.refinement","refinement","Refine how extracted data is displayed in the dashboard and improve extraction quality where gaps exist.","2026-02-24",{"project":60,"projectLabel":61,"id":276,"num":51,"dir":301,"title":302,"focus":303,"status":293,"thumbnail":17,"started":304,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":305,"quietWeeks":20,"stale":21,"active":21},"c3.oauth","oauth","Add Google OAuth to restrict dashboard access to @qpoint.io team members.","2026-02-20",28,{"project":9,"projectLabel":10,"id":307,"num":308,"dir":309,"title":310,"focus":311,"status":293,"thumbnail":312,"started":73,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":51,"quietWeeks":42,"stale":21,"active":21},"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":314,"num":315,"dir":316,"title":317,"focus":318,"status":293,"thumbnail":319,"started":320,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":99,"quietWeeks":42,"stale":21,"active":21},"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":322,"num":323,"dir":324,"title":325,"focus":326,"status":293,"thumbnail":17,"started":157,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":158,"quietWeeks":51,"stale":21,"active":21},"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.",{"project":9,"projectLabel":10,"id":328,"num":329,"dir":330,"title":331,"focus":332,"status":16,"thumbnail":17,"started":73,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":51,"quietWeeks":51,"stale":31,"active":21},"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":334,"num":335,"dir":336,"title":337,"focus":338,"status":339,"thumbnail":340,"started":341,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":93,"quietWeeks":51,"stale":31,"active":21},"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":343,"num":344,"dir":345,"title":346,"focus":347,"status":339,"thumbnail":348,"started":349,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":289,"quietWeeks":51,"stale":31,"active":21},"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":9,"projectLabel":10,"id":351,"num":352,"dir":353,"title":354,"focus":355,"status":39,"thumbnail":17,"started":356,"startedSource":19,"closed":357,"closedSource":19,"openWeeks":145,"quietWeeks":51,"stale":31,"active":21},"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",{"project":359,"projectLabel":360,"id":361,"num":158,"dir":362,"title":363,"focus":17,"status":16,"thumbnail":17,"started":364,"startedSource":82,"closed":17,"closedSource":17,"openWeeks":176,"quietWeeks":173,"stale":31,"active":21},"www","www.qpoint.io","c6","c6.combined-index","Combined Index Page","2026-05-27",{"project":359,"projectLabel":360,"id":98,"num":99,"dir":366,"title":367,"focus":17,"status":16,"thumbnail":17,"started":364,"startedSource":82,"closed":17,"closedSource":17,"openWeeks":176,"quietWeeks":173,"stale":31,"active":21},"c4.case-studies","AI Agent Incident Case Studies",{"project":359,"projectLabel":360,"id":276,"num":51,"dir":369,"title":370,"focus":17,"status":16,"thumbnail":17,"started":364,"startedSource":82,"closed":17,"closedSource":17,"openWeeks":176,"quietWeeks":173,"stale":31,"active":21},"c3.the-problem-page","The Problem Page + PocketOS Case Study",{"project":359,"projectLabel":360,"id":92,"num":93,"dir":372,"title":373,"focus":374,"status":16,"thumbnail":17,"started":375,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":161,"quietWeeks":173,"stale":31,"active":21},"c5.cookie-consent-audit","Cookie Consent Audit & Fix","Audit and fix cookie consent persistence so decisions survive deploys","2026-05-21",{"project":359,"projectLabel":360,"id":377,"num":42,"dir":378,"title":379,"focus":17,"status":16,"thumbnail":17,"started":380,"startedSource":82,"closed":17,"closedSource":17,"openWeeks":161,"quietWeeks":176,"stale":31,"active":21},"c2","c2.brochure-site-q2","Brochure Site Q2 Redesign","2026-05-20",{"project":359,"projectLabel":360,"id":281,"num":20,"dir":382,"title":383,"focus":384,"status":16,"thumbnail":17,"started":180,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":168,"quietWeeks":176,"stale":31,"active":21},"c1.q-nuxt-layer-integration","Q Nuxt Layer Integration","Complete q-nuxt-layer integration for www.qpoint.io and deploy",{"project":75,"projectLabel":76,"id":386,"num":387,"dir":388,"title":389,"focus":17,"status":16,"thumbnail":17,"started":390,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":136,"quietWeeks":168,"stale":31,"active":21},"c11",11,"c11.pixel-character-system","Pixel Character System","2026-04-23",{"project":9,"projectLabel":10,"id":392,"num":393,"dir":394,"title":395,"focus":396,"status":339,"thumbnail":17,"started":222,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":136,"quietWeeks":168,"stale":31,"active":21},"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":398,"num":399,"dir":400,"title":401,"focus":402,"status":339,"thumbnail":17,"started":237,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":78,"quietWeeks":168,"stale":31,"active":21},"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":404,"num":405,"dir":406,"title":407,"focus":408,"status":339,"thumbnail":409,"started":237,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":78,"quietWeeks":168,"stale":31,"active":21},"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":142,"projectLabel":143,"id":224,"num":225,"dir":411,"title":412,"focus":413,"status":16,"thumbnail":17,"started":414,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":232,"quietWeeks":247,"stale":31,"active":21},"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":62,"num":63,"dir":416,"title":417,"focus":17,"status":16,"thumbnail":17,"started":418,"startedSource":82,"closed":17,"closedSource":17,"openWeeks":217,"quietWeeks":232,"stale":31,"active":21},"c8.sharing-design-philosophy","Sharing Design Philosophy","2026-03-13",{"project":420,"projectLabel":421,"id":377,"num":42,"dir":422,"title":423,"focus":424,"status":16,"thumbnail":17,"started":425,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":198,"quietWeeks":232,"stale":31,"active":21},"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":420,"projectLabel":421,"id":281,"num":20,"dir":427,"title":428,"focus":429,"status":16,"thumbnail":17,"started":430,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":305,"quietWeeks":232,"stale":31,"active":21},"c1.documentation-cleanup","documentation-cleanup","Improve component documentation quality with better examples and human-AI collaborative workflow","2026-02-19",[],[433,480,548,672,793,857,895,933,996,1027,1141,1213,1267,1314,1353,1385,1465,1596,1620,1648,1703,1782,1844,1904,1960,2007,2060],{"project":9,"cycle":44,"dir":46,"title":47,"date":18,"lead":434,"long":31,"ast":435},"Inventory-card thread , Mark's manual three-card design — Compliance · SLA Findings · Inventory with a body-figure estate)",{"type":436,"children":437},"root",[438],{"type":439,"tag":440,"props":441,"children":442},"element","ul",{},[443],{"type":439,"tag":444,"props":445,"children":446},"li",{},[447,454,456,463,465,470,472,478],{"type":439,"tag":448,"props":449,"children":450},"strong",{},[451],{"type":452,"value":453},"text","Inventory-card thread (2026-08-27, Mark's manual three-card design — Compliance · SLA Findings · Inventory with a body-figure estate):",{"type":452,"value":455}," ",{"type":439,"tag":457,"props":458,"children":460},"code",{"className":459},[],[461],{"type":452,"value":462},"inventory-card-possibility-space.md",{"type":452,"value":464}," — the health seam answered (findings = adjudicated health per c79's condition model; the durable seam is register not topic: Inventory is the physical exam, Findings the diagnosis; the mock's \"Un-allowed Skill Detected\" is a condition and belongs to Findings, Inventory lights the body part and links). Exhaustive 15-category taxonomy of inventory-card content, every idea tagged with backing API fields and buildability tier (T1 live \u002F T2 derivable \u002F T3 needs-backend). Body-figure ruling: ",{"type":439,"tag":448,"props":466,"children":467},{},[468],{"type":452,"value":469},"color = visibility\u002Fvetting state, not posture",{"type":452,"value":471}," — torso\u002FMCP-arm\u002Flegs can light honestly today, head\u002Fhips ship calm until an ",{"type":439,"tag":457,"props":473,"children":475},{"className":474},[],[476],{"type":452,"value":477},"asset_vetting",{"type":452,"value":479}," registry exists (the named smallest backend ask). Ranked recommendation: estate register (weight) · coverage hero absolute (31\u002F39) · one unvetted-entry tone line · figure · coverage spark; cuts: denied\u002Fposture\u002Ffabricated sparks\u002Fcost\u002F\"Repos\" label. Decisions (Mark): doc first, mock later · content explored freely, figure as one treatment.",{"project":9,"cycle":44,"dir":46,"title":47,"date":18,"lead":481,"long":31,"ast":482},"Three-card-mock build",{"type":436,"children":483},[484],{"type":439,"tag":440,"props":485,"children":486},{},[487],{"type":439,"tag":444,"props":488,"children":489},{},[490,495,496,502,504,510,512,518,520,526,528,533,535,546],{"type":439,"tag":448,"props":491,"children":492},{},[493],{"type":452,"value":494},"Three-card-mock build (2026-08-27):",{"type":452,"value":455},{"type":439,"tag":457,"props":497,"children":499},{"className":498},[],[500],{"type":452,"value":501},"\u002Fpages\u002Findex-three-cards-v1",{"type":452,"value":503}," built and registered (overview group) — Mark's two-state manual design at Meridian numbers: derived Full\u002FPartial Visibility verdict (39\u002F39 vs 34\u002F39·87%, toggle flips only what visibility owns — Compliance and SLA read the same world in both states, the seam in action), placeholder ",{"type":439,"tag":457,"props":505,"children":507},{"className":506},[],[508],{"type":452,"value":509},"InventoryBodyFigure",{"type":452,"value":511}," component (per-part tone API, ",{"type":439,"tag":457,"props":513,"children":515},{"className":514},[],[516],{"type":452,"value":517},"data-part",{"type":452,"value":519}," swap contract for Mark's SVG), estate rows with authored 7d deltas (the one authored value, noted on-page), intake-language exceptions footer (5 shadow · unvetted pg-tools, straight from fixtures), derived compliance scores (83%, fixture's two frameworks replacing the design's five), and fully derived SLA deadlines (calendar-day math; nothing near breach in this world, so the design's deadline inks honestly don't fire). Captured both states (",{"type":439,"tag":457,"props":521,"children":523},{"className":522},[],[524],{"type":452,"value":525},"c68-three-cards-{partial,full}.png",{"type":452,"value":527},"). Smoke: 200, both states verified visually. ",{"type":439,"tag":448,"props":529,"children":530},{},[531],{"type":452,"value":532},"Round 2 (Mark's four changes):",{"type":452,"value":534}," Go ▶ on all three cards · SLA card made consistent with findings-regroup-v2 by ",{"type":439,"tag":448,"props":536,"children":537},{},[538,540],{"type":452,"value":539},"extracting ",{"type":439,"tag":457,"props":541,"children":543},{"className":542},[],[544],{"type":452,"value":545},"LifecycleFindingsDigest",{"type":452,"value":547}," (severity box + remediation-deadlines list) from regroup-v2's policy expansion — both surfaces now wear the same organ (regroup-v2 re-verified rendering identically post-extraction) · verdict font-exbold · Compliance % Inter black (mono dropped).",{"project":9,"cycle":23,"dir":25,"title":26,"date":18,"lead":549,"long":31,"ast":550},"Thread — the qdash port",{"type":436,"children":551},[552],{"type":439,"tag":440,"props":553,"children":554},{},[555],{"type":439,"tag":444,"props":556,"children":557},{},[558,563,565,571,573,579,581,586,588,593,595,601,603,609,611,617,619,638,640,646,648,654,656,662,664,670],{"type":439,"tag":448,"props":559,"children":560},{},[561],{"type":452,"value":562},"Thread — the qdash port (2026-08-27):",{"type":452,"value":564}," findings-regroup-v2 shipped into the live product — qcontrol's qdash ",{"type":439,"tag":457,"props":566,"children":568},{"className":567},[],[569],{"type":452,"value":570},"\u002Ffindings",{"type":452,"value":572}," rewritten in place on ",{"type":439,"tag":457,"props":574,"children":576},{"className":575},[],[577],{"type":452,"value":578},"feat\u002FSLA-findings",{"type":452,"value":580}," (qdash cycle ",{"type":439,"tag":448,"props":582,"children":583},{},[584],{"type":452,"value":585},"c14.finding-lifecycle-port",{"type":452,"value":587},"). Layer released as ",{"type":439,"tag":448,"props":589,"children":590},{},[591],{"type":452,"value":592},"v0.9.11",{"type":452,"value":594}," to carry AgentPill, SecuritySeverityTag, and the grape\u002Fquiet ExpandSection registers; all five consumer lockfiles refreshed. The two-axis model derives from the backend's single workflow row (",{"type":439,"tag":457,"props":596,"children":598},{"className":597},[],[599],{"type":452,"value":600},"lib\u002Ffindings-status.ts",{"type":452,"value":602},", id-and-label-tolerant); SLA is the Mark M rubric client-side (",{"type":439,"tag":457,"props":604,"children":606},{"className":605},[],[607],{"type":452,"value":608},"lib\u002Ffindings-sla.ts",{"type":452,"value":610},") until the backend writes ",{"type":439,"tag":457,"props":612,"children":614},{"className":613},[],[615],{"type":452,"value":616},"sla_due",{"type":452,"value":618},"; the adjudication card became the ",{"type":439,"tag":448,"props":620,"children":621},{},[622,624,630,632],{"type":452,"value":623},"first frontend consumer of ",{"type":439,"tag":457,"props":625,"children":627},{"className":626},[],[628],{"type":452,"value":629},"\u002Fapi\u002Ffinding-decision",{"type":452,"value":631}," \u002F ",{"type":439,"tag":457,"props":633,"children":635},{"className":634},[],[636],{"type":452,"value":637},"\u002Fapi\u002Ffinding-state",{"type":452,"value":639}," (Ignore rides finding-state as a ",{"type":439,"tag":457,"props":641,"children":643},{"className":642},[],[644],{"type":452,"value":645},"resolved",{"type":452,"value":647}," + ",{"type":439,"tag":457,"props":649,"children":651},{"className":650},[],[652],{"type":452,"value":653},"ignore",{"type":452,"value":655}," sentinel — no registry id yet). Honest degradations, each wearing a ProjMark: Evidence = first\u002Flast seen only, Audit = latest state only (no occurrence event log server-side). Divergence accepted for now: the backend's block decisions Resolve, so enforce renders terminal — c79's clock-neutral enforcement is a recorded backend follow-up. Simulated clock, composition notes, and fixtures stayed here; port verified on real seed data (screenshots in ",{"type":439,"tag":457,"props":657,"children":659},{"className":658},[],[660],{"type":452,"value":661},"public\u002Fcycles\u002Fc79\u002Fc79-qdash-port-*.png",{"type":452,"value":663},"), 37 lib tests, published-layer build clean. Full plan: ",{"type":439,"tag":457,"props":665,"children":667},{"className":666},[],[668],{"type":452,"value":669},"qcontrol-port-plan.md",{"type":452,"value":671},".",{"project":9,"cycle":23,"dir":25,"title":26,"date":673,"lead":674,"long":31,"ast":675},"2026-08-26","Thread — status-column bake-off",{"type":436,"children":676},[677],{"type":439,"tag":440,"props":678,"children":679},{},[680],{"type":439,"tag":444,"props":681,"children":682},{},[683,688,689,695,697,702,704,709,711,716,718,723,725,730,732,738,739,745,746,752,753,759,761,766,768,773,774,779,780,785,786,791],{"type":439,"tag":448,"props":684,"children":685},{},[686],{"type":452,"value":687},"Thread — status-column bake-off (2026-08-26):",{"type":452,"value":455},{"type":439,"tag":457,"props":690,"children":692},{"className":691},[],[693],{"type":452,"value":694},"\u002Fpages\u002Ffindings-status-column-v1",{"type":452,"value":696},", registered — from Mark's ask for a clearly visible (possibly dropdown) status in the findings worklist. Four treatments of the same world, each with its own event-log clone: ",{"type":439,"tag":448,"props":698,"children":699},{},[700],{"type":452,"value":701},"A",{"type":452,"value":703}," static chip · ",{"type":439,"tag":448,"props":705,"children":706},{},[707],{"type":452,"value":708},"B",{"type":452,"value":710}," dropdown-everywhere (the honest failure on display — half the menu permanently grey, since adjudication values need reasons and resolved is the system's) · ",{"type":439,"tag":448,"props":712,"children":713},{},[714],{"type":452,"value":715},"C",{"type":452,"value":717}," hybrid (handling dropdown while open, chip when terminal — recommended) · ",{"type":439,"tag":448,"props":719,"children":720},{},[721],{"type":452,"value":722},"C2",{"type":452,"value":724}," hybrid quiet-until-hover. All four share the slimmed ",{"type":439,"tag":448,"props":726,"children":727},{},[728],{"type":452,"value":729},"pure-clock SLA column",{"type":452,"value":731}," (",{"type":439,"tag":457,"props":733,"children":735},{"className":734},[],[736],{"type":452,"value":737},"11d\u002F30d · due 09-04",{"type":452,"value":631},{"type":439,"tag":457,"props":740,"children":742},{"className":741},[],[743],{"type":452,"value":744},"paused · exp",{"type":452,"value":631},{"type":439,"tag":457,"props":747,"children":749},{"className":748},[],[750],{"type":452,"value":751},"in 2d",{"type":452,"value":631},{"type":439,"tag":457,"props":754,"children":756},{"className":755},[],[757],{"type":452,"value":758},"—",{"type":452,"value":760},") so the status word lives in one column and the treatment is the only variable. Unacknowledged wears warning tone throughout. The axis rule decides selectability: clock-neutral handling verbs are one-click safe; adjudication stays behind the card. Verified: 4 live tables, isolated worlds, C's select acts, C2's quiet border transparent, zero console errors. ",{"type":439,"tag":448,"props":762,"children":763},{},[764],{"type":452,"value":765},"Verdict (Mark, 2026-08-26): C — status as a dropdown.",{"type":452,"value":767}," Graduated into findings-regroup-v2: 8-column inner table (Status between Agent and SLA — handling dropdown while open with click.stop so it doesn't toggle the expand row, terminal chip otherwise), SLA slimmed to pure clock (",{"type":439,"tag":457,"props":769,"children":771},{"className":770},[],[772],{"type":452,"value":737},{"type":452,"value":631},{"type":439,"tag":457,"props":775,"children":777},{"className":776},[],[778],{"type":452,"value":744},{"type":452,"value":631},{"type":439,"tag":457,"props":781,"children":783},{"className":782},[],[784],{"type":452,"value":751},{"type":452,"value":631},{"type":439,"tag":457,"props":787,"children":789},{"className":788},[],[790],{"type":452,"value":758},{"type":452,"value":792},"). Verified in browser: row-level escalate via the dropdown without expanding the row.",{"project":9,"cycle":23,"dir":25,"title":26,"date":673,"lead":794,"long":31,"ast":795},"Thread — StretchBox measurement bug",{"type":436,"children":796},[797],{"type":439,"tag":440,"props":798,"children":799},{},[800],{"type":439,"tag":444,"props":801,"children":802},{},[803,808,810,816,818,824,826,832,834,840,842,847,849,855],{"type":439,"tag":448,"props":804,"children":805},{},[806],{"type":452,"value":807},"Thread — StretchBox measurement bug (2026-08-26):",{"type":452,"value":809}," Mark spotted the top expand row animating open ~an inch short, then snapping after a beat. Root cause found by instrumented measurement: ",{"type":439,"tag":457,"props":811,"children":813},{"className":812},[],[814],{"type":452,"value":815},"UxStretchBox",{"type":452,"value":817}," measures a ",{"type":439,"tag":457,"props":819,"children":821},{"className":820},[],[822],{"type":452,"value":823},"cloneNode",{"type":452,"value":825}," appended to ",{"type":439,"tag":457,"props":827,"children":829},{"className":828},[],[830],{"type":452,"value":831},"document.body",{"type":452,"value":833}," (absolute, off-screen), where the clone lays out at body width (1440px) instead of the well's real width (1310px) — text wraps differently, so the clone measured 405px vs the real 464px; the box animates to the short height (300ms) and sits clipped until the ",{"type":439,"tag":457,"props":835,"children":837},{"className":836},[],[838],{"type":452,"value":839},"height:initial",{"type":452,"value":841}," override lands (~1200ms) and snaps. Only the first row showed it because only the approval card's content is width-sensitive (wrapping remediation line + full meta cluster). ",{"type":439,"tag":448,"props":843,"children":844},{},[845],{"type":452,"value":846},"Layer fix:",{"type":452,"value":848}," when ",{"type":439,"tag":457,"props":850,"children":852},{"className":851},[],[853],{"type":452,"value":854},"stretchWidth",{"type":452,"value":856}," is false (width externally determined — the ExpandRow case), the clone is pinned to the live content width before measuring; width-stretching consumers unchanged. Verified: mid-animation height now exactly matches content (464\u002F464), no snap.",{"project":9,"cycle":23,"dir":25,"title":26,"date":673,"lead":858,"long":31,"ast":859},"Thread — topline bake-off",{"type":436,"children":860},[861],{"type":439,"tag":440,"props":862,"children":863},{},[864],{"type":439,"tag":444,"props":865,"children":866},{},[867,872,873,879,881,886,888,893],{"type":439,"tag":448,"props":868,"children":869},{},[870],{"type":452,"value":871},"Thread — topline bake-off (2026-08-26):",{"type":452,"value":455},{"type":439,"tag":457,"props":874,"children":876},{"className":875},[],[877],{"type":452,"value":878},"\u002Fpages\u002Ffindings-topline-v1",{"type":452,"value":880},", registered — from Mark's read that the severity 4-up misses the opportunity (his seeds: handling-state counts, clocks running low). Analysis ranked the topline's job as triage: unseen (unack + oldest age — the adjudication-lag signal's only home) · about-to-breach (early warning beats breach count, per c78's card audit) · already late · severity mix (context) · throughput + within-SLA % (report tie) · expiring exceptions · worst control. Eight live-derived treatments: extended cards · handling funnel · ",{"type":439,"tag":448,"props":882,"children":883},{},[884],{"type":452,"value":885},"remediation runway",{"type":452,"value":887}," (findings as ticks on a 45d axis — time as position) · two-axis grid · verdict + worst lines (c78 idiom) · ",{"type":439,"tag":448,"props":889,"children":890},{},[891],{"type":452,"value":892},"Your move",{"type":452,"value":894}," (three action cards each naming their top item; severity demoted to a footer line) · scoreboard (throughput debt + worst control) · compact strip. Provisional verdict: 6 (Your move) — every element an action with a name; 8 as the minimal alternative; 3's runway the idea worth stealing into any winner. Verified: 8 sections, 6 runway ticks, your-move names the oldest unack (2d · Codex · ravi), zero console errors. Mark's pick pending.",{"project":9,"cycle":23,"dir":25,"title":26,"date":673,"lead":896,"long":31,"ast":897},"Thread — topline bake-off, iteration 2",{"type":436,"children":898},[899],{"type":439,"tag":440,"props":900,"children":901},{},[902],{"type":439,"tag":444,"props":903,"children":904},{},[905,910,911,917,919,924,926,931],{"type":439,"tag":448,"props":906,"children":907},{},[908],{"type":452,"value":909},"Thread — topline bake-off, iteration 2 (2026-08-26):",{"type":452,"value":455},{"type":439,"tag":457,"props":912,"children":914},{"className":913},[],[915],{"type":452,"value":916},"\u002Fpages\u002Ffindings-topline-v2",{"type":452,"value":918}," — Mark's critique of v1: anemic, wants meaning at a glance, punchy and clear. Iteration rule applied: ",{"type":439,"tag":448,"props":920,"children":921},{},[922],{"type":452,"value":923},"every element is a claim",{"type":452,"value":925}," — labels are sentences, top items are named, consequences stated (\"returns to the queue Sep 15\"), and zeros speak (\"Nothing is past SLA\" beats a mute 0). Six treatments (briefing lines · your-move-spoken cards · annotated runway with named tick list · claim cards · the paragraph · worded strip) + a ",{"type":439,"tag":448,"props":927,"children":928},{},[929],{"type":452,"value":930},"today\u002F+30d stress toggle",{"type":452,"value":932}," — a topline must communicate on both kinds of day (stressed world crosses sofia's deadline and surfaces marcus's lapsed exception automatically). Within-SLA % dropped from the topline: at 1-judged it's a dishonest hero number; it belongs on the report. v1's explainer variants (funnel, grid) dropped — they taught the model without triaging the day. Provisional read: 2 (your-move-spoken); 1 if vertical space is cheap; 3's named runway list under either. Verified in both worlds, zero console errors.",{"project":9,"cycle":23,"dir":25,"title":26,"date":673,"lead":934,"long":31,"ast":935},"Thread — AgentPill + finding-first column",{"type":436,"children":936},[937],{"type":439,"tag":440,"props":938,"children":939},{},[940],{"type":439,"tag":444,"props":941,"children":942},{},[943,948,950,956,957,963,965,971,973,979,981,987,989,994],{"type":439,"tag":448,"props":944,"children":945},{},[946],{"type":452,"value":947},"Thread — AgentPill + finding-first column (2026-08-26):",{"type":452,"value":949}," from Mark's design pair (inline and stacked pill mocks). New layer component ",{"type":439,"tag":457,"props":951,"children":953},{"className":952},[],[954],{"type":452,"value":955},"agent\u002FPill.vue",{"type":452,"value":731},{"type":439,"tag":457,"props":958,"children":960},{"className":959},[],[961],{"type":452,"value":962},"AgentPill",{"type":452,"value":964},"): pixel-pawn face in its own bordered cell + name \u002F user in grape; ",{"type":439,"tag":457,"props":966,"children":968},{"className":967},[],[969],{"type":452,"value":970},"stacked",{"type":452,"value":972}," for the two-line layout; art via ",{"type":439,"tag":457,"props":974,"children":976},{"className":975},[],[977],{"type":452,"value":978},"\u003Cimg>",{"type":452,"value":980}," per the pawn rule. Documented (registry + full demo). In findings-regroup-v2: the Finding column drops the redundant ",{"type":439,"tag":457,"props":982,"children":984},{"className":983},[],[985],{"type":452,"value":986},"agent: Claude Code · sofia",{"type":452,"value":988}," scope line — the ",{"type":439,"tag":448,"props":990,"children":991},{},[992],{"type":452,"value":993},"finding title leads",{"type":452,"value":995}," in the primary style, reason as the sub-line — and the Agent column's text chip becomes the AgentPill. Identity now lives in exactly one column, as a face. Verified: pill renders \"Claude Code \u002F sofia\" with the pawn loaded, no scope prefixes remain, zero console errors.",{"project":9,"cycle":23,"dir":25,"title":26,"date":673,"lead":997,"long":31,"ast":998},"Thread — policy header rework , Mark's design)",{"type":436,"children":999},[1000],{"type":439,"tag":440,"props":1001,"children":1002},{},[1003],{"type":439,"tag":444,"props":1004,"children":1005},{},[1006,1011,1013,1018,1020,1025],{"type":439,"tag":448,"props":1007,"children":1008},{},[1009],{"type":452,"value":1010},"Thread — policy header rework (2026-08-26, Mark's design):",{"type":452,"value":1012}," section 1 of the group expansion rebuilt: identity left (ribbon · 24px name · remediation as plain grey sub-text), ",{"type":439,"tag":448,"props":1014,"children":1015},{},[1016],{"type":452,"value":1017},"Findings severity box",{"type":452,"value":1019}," (big toned numerals in a bordered cell strip, only non-zero severities render), and ",{"type":439,"tag":448,"props":1021,"children":1022},{},[1023],{"type":452,"value":1024},"Upcoming Remediation Deadlines",{"type":452,"value":1026}," (soonest three open findings: bold day + month · \"N days from now\" toned by nearness — error ≤7d or overdue, warning ≤30d — · \"view\" linking to the finding's detail page). The old meta cluster (Policy: label, first\u002Flast seen, nearest-SLA, framework tag stack) removed — frameworks live on the collapsed row, recency on the finding rows. Verified calm (1 High 1 Med · 18\u002F87 days out) and stressed (+30d flips to \"days overdue\" in error ink), zero console errors.",{"project":9,"cycle":23,"dir":25,"title":26,"date":673,"lead":1028,"long":31,"ast":1029},"Thread — worklist polish sweep",{"type":436,"children":1030},[1031],{"type":439,"tag":440,"props":1032,"children":1033},{},[1034],{"type":439,"tag":444,"props":1035,"children":1036},{},[1037,1042,1044,1049,1051,1057,1059,1065,1067,1072,1074,1080,1082,1088,1090,1095,1097,1102,1104,1109,1111,1116,1118,1124,1126,1131,1133,1139],{"type":439,"tag":448,"props":1038,"children":1039},{},[1040],{"type":452,"value":1041},"Thread — worklist polish sweep (2026-08-26):",{"type":452,"value":1043}," batch of Mark-directed refinements on findings-regroup-v2. ",{"type":439,"tag":448,"props":1045,"children":1046},{},[1047],{"type":452,"value":1048},"AgentPill hardening:",{"type":452,"value":1050}," tighter padding + dot separator; then two real clipping bugs fixed in the layer — ",{"type":439,"tag":457,"props":1052,"children":1054},{"className":1053},[],[1055],{"type":452,"value":1056},"shrink-0",{"type":452,"value":1058}," (overflow-hidden zeroes a flex item's automatic min-width) and ",{"type":439,"tag":457,"props":1060,"children":1062},{"className":1061},[],[1063],{"type":452,"value":1064},"w-max",{"type":452,"value":1066}," (inline-flex width:auto is shrink-to-fit, so starved table cells compressed the pill) — a chip never compresses. ",{"type":439,"tag":448,"props":1068,"children":1069},{},[1070],{"type":452,"value":1071},"Column mechanics ruled:",{"type":452,"value":1073}," in table auto-layout, no-slack + inline pills + wrap-on-squeeze can't all hold; chose no-slack + inline via ",{"type":439,"tag":457,"props":1075,"children":1077},{"className":1076},[],[1078],{"type":452,"value":1079},"w-max flex-nowrap",{"type":452,"value":1081}," containers with the Policy column as the ",{"type":439,"tag":457,"props":1083,"children":1085},{"className":1084},[],[1086],{"type":452,"value":1087},"width:100%",{"type":452,"value":1089}," stretcher and 3-visible + \"+N\" caps on agents and frameworks (approval seeded with 5 frameworks to prove the cap). AgentPill adopted in the outer Agents column too (person when one finding, ×N when several). ",{"type":439,"tag":448,"props":1091,"children":1092},{},[1093],{"type":452,"value":1094},"Findings column",{"type":452,"value":1096}," now the severity-box pattern at row scale (toned per-severity numerals, divider cells, past-SLA fragment only when present), placed right of Policy + Conditions after trying left; clean groups render a ",{"type":439,"tag":448,"props":1098,"children":1099},{},[1100],{"type":452,"value":1101},"green 0 · Open",{"type":452,"value":1103}," — zeros follow the pattern. ",{"type":439,"tag":448,"props":1105,"children":1106},{},[1107],{"type":452,"value":1108},"Deadline \"view\" opens the finding's row below",{"type":452,"value":1110}," via the ExpandRow open() ref pattern instead of navigating away. ",{"type":439,"tag":448,"props":1112,"children":1113},{},[1114],{"type":452,"value":1115},"Adjudicate ↔ Close",{"type":452,"value":1117}," label flips CSS-driven off ",{"type":439,"tag":457,"props":1119,"children":1121},{"className":1120},[],[1122],{"type":452,"value":1123},"_open-row",{"type":452,"value":1125},", like the chevron. ",{"type":439,"tag":448,"props":1127,"children":1128},{},[1129],{"type":452,"value":1130},"Fonts:",{"type":452,"value":1132}," font-black was silently clamping to 700 (Google Fonts URL carried only 400–700); fixed, then Inter moved to its official home (",{"type":439,"tag":457,"props":1134,"children":1136},{"className":1135},[],[1137],{"type":452,"value":1138},"rsms.me\u002Finter\u002Finter.css",{"type":452,"value":1140},") — all weights + variable font; severity-box numerals font-black at both scales, Inter not mono. Every change browser-verified; gotchas saved to memory.",{"project":9,"cycle":23,"dir":25,"title":26,"date":29,"lead":1142,"long":31,"ast":1143},"Stage 1 — fixtures",{"type":436,"children":1144},[1145],{"type":439,"tag":440,"props":1146,"children":1147},{},[1148],{"type":439,"tag":444,"props":1149,"children":1150},{},[1151,1156,1157,1163,1165,1171,1173,1179,1181,1187,1189,1195,1197,1203,1205,1211],{"type":439,"tag":448,"props":1152,"children":1153},{},[1154],{"type":452,"value":1155},"Stage 1 — fixtures (2026-08-25):",{"type":452,"value":455},{"type":439,"tag":457,"props":1158,"children":1160},{"className":1159},[],[1161],{"type":452,"value":1162},"app\u002Fdata\u002Flifecycle-fixtures.ts",{"type":452,"value":1164}," — the rulings as code. ",{"type":439,"tag":457,"props":1166,"children":1168},{"className":1167},[],[1169],{"type":452,"value":1170},"FindingEvent",{"type":452,"value":1172}," (append-only, 9 verbs), ",{"type":439,"tag":457,"props":1174,"children":1176},{"className":1175},[],[1177],{"type":452,"value":1178},"RubricTarget",{"type":452,"value":1180}," with ",{"type":439,"tag":457,"props":1182,"children":1184},{"className":1183},[],[1185],{"type":452,"value":1186},"days: number|null",{"type":452,"value":1188}," (Mark M's 14\u002F30\u002F90\u002Fsoft), 19 findings as event logs (7 live c78 identities + 12 historical so quarters derive), pure ",{"type":439,"tag":457,"props":1190,"children":1192},{"className":1191},[],[1193],{"type":452,"value":1194},"deriveFinding",{"type":452,"value":1196}," (the state-machine fold: pause credit, mechanical expiry re-open, one due formula) and ",{"type":439,"tag":457,"props":1198,"children":1200},{"className":1199},[],[1201],{"type":452,"value":1202},"deriveWorld",{"type":452,"value":1204}," (open\u002Fbreaches\u002Fexcepted\u002Fignored, withinSlaPct with documented denominator, event-derived found\u002Fresolved\u002Fexcepted quarter rows, audit feed). Sanity-checked via tsx: 90% within-SLA (10 judged), F-0951 pause exemplar (79d paused → 16d clock, within 90), F-0918 late, +30d → F-1041 breaches and verdict drops to 82%, +60d → F-1022's lapsed exception mechanically re-opens. ",{"type":439,"tag":457,"props":1206,"children":1208},{"className":1207},[],[1209],{"type":452,"value":1210},"report-fixtures.ts",{"type":452,"value":1212}," untouched.",{"project":9,"cycle":23,"dir":25,"title":26,"date":29,"lead":1214,"long":31,"ast":1215},"Stage 2 — anatomy",{"type":436,"children":1216},[1217],{"type":439,"tag":440,"props":1218,"children":1219},{},[1220],{"type":439,"tag":444,"props":1221,"children":1222},{},[1223,1228,1229,1235,1236,1242,1244,1250,1252,1257,1259,1265],{"type":439,"tag":448,"props":1224,"children":1225},{},[1226],{"type":452,"value":1227},"Stage 2 — anatomy (2026-08-25):",{"type":452,"value":455},{"type":439,"tag":457,"props":1230,"children":1232},{"className":1231},[],[1233],{"type":452,"value":1234},"\u002Fpages\u002Ffindings-lifecycle-v1",{"type":452,"value":647},{"type":439,"tag":457,"props":1237,"children":1239},{"className":1238},[],[1240],{"type":452,"value":1241},"app\u002Fcomponents\u002Flifecycle\u002FAuditTrail.vue",{"type":452,"value":1243}," (the persisted audit record rendered — verb-toned rows, reused by every later page), registered in the ",{"type":439,"tag":457,"props":1245,"children":1247},{"className":1246},[],[1248],{"type":452,"value":1249},"reports",{"type":452,"value":1251}," group. The contract page: state diagram (open + three terminals, return paths incl. mechanical expiry), 9-verb table with clock effects and seam markers, the one clock formula with six numbered rules, ",{"type":439,"tag":457,"props":1253,"children":1255},{"className":1254},[],[1256],{"type":452,"value":1170},{"type":452,"value":1258}," in a code block, and two worked examples computed live from ",{"type":439,"tag":457,"props":1260,"children":1262},{"className":1261},[],[1263],{"type":452,"value":1264},"deriveFinding()",{"type":452,"value":1266}," (F-1027 register case; F-0951 pause exemplar) — the on-page proof rulings and code agree. Smoke-checked 200, derived values (paused 79d \u002F clock 16d \u002F within SLA) confirmed in SSR output, clean log.",{"project":9,"cycle":23,"dir":25,"title":26,"date":29,"lead":1268,"long":31,"ast":1269},"Stage 3 — disposition organ",{"type":436,"children":1270},[1271],{"type":439,"tag":440,"props":1272,"children":1273},{},[1274],{"type":439,"tag":444,"props":1275,"children":1276},{},[1277,1282,1283,1289,1290,1296,1298,1304,1306,1312],{"type":439,"tag":448,"props":1278,"children":1279},{},[1280],{"type":452,"value":1281},"Stage 3 — disposition organ (2026-08-25):",{"type":452,"value":455},{"type":439,"tag":457,"props":1284,"children":1286},{"className":1285},[],[1287],{"type":452,"value":1288},"app\u002Fcomponents\u002Flifecycle\u002FDispositionPanel.vue",{"type":452,"value":647},{"type":439,"tag":457,"props":1291,"children":1293},{"className":1292},[],[1294],{"type":452,"value":1295},"\u002Fpages\u002Ffinding-disposition-v1",{"type":452,"value":1297},", registered. The panel owns no state machine — renders a ",{"type":439,"tag":457,"props":1299,"children":1301},{"className":1300},[],[1302],{"type":452,"value":1303},"DerivedFinding",{"type":452,"value":1305},", emits ",{"type":439,"tag":457,"props":1307,"children":1309},{"className":1308},[],[1310],{"type":452,"value":1311},"act",{"type":452,"value":1313},"; the page appends and re-derives. Six scenarios on the house tab-picker (fresh \u002F acknowledged \u002F past-SLA \u002F near-expiry \u002F ignored \u002F escalated), each with its own live event log and reset. Verb availability by status; ignore\u002Freopen gate on reason, exception on reason + expiry (+30d default); escalate\u002Fenforce are one line + one stamped ref (\"would create tracker:SEC-… — finding stays open here · stub\"); resolve is the visually-apart green \"simulate: fix detected\" (evidence, not judgment). Smoke-checked 200 (needed the nuxt.config touch — new page files added under a running server, per the known gotcha).",{"project":9,"cycle":23,"dir":25,"title":26,"date":29,"lead":1315,"long":31,"ast":1316},"Stage 4 — rubric config",{"type":436,"children":1317},[1318],{"type":439,"tag":440,"props":1319,"children":1320},{},[1321],{"type":439,"tag":444,"props":1322,"children":1323},{},[1324,1329,1330,1336,1338,1344,1346,1351],{"type":439,"tag":448,"props":1325,"children":1326},{},[1327],{"type":452,"value":1328},"Stage 4 — rubric config (2026-08-25):",{"type":452,"value":455},{"type":439,"tag":457,"props":1331,"children":1333},{"className":1332},[],[1334],{"type":452,"value":1335},"\u002Fpages\u002Fsla-rubric-config-v1",{"type":452,"value":1337},", registered. Editable per-severity targets seeded with Mark M's real program; \"hard target\" checkbox makes advisory (",{"type":439,"tag":457,"props":1339,"children":1341},{"className":1340},[],[1342],{"type":452,"value":1343},"days: null",{"type":452,"value":1345},") a first-class value; three program presets (Mark M 14\u002F30\u002F90\u002Fadv, superseded c78 placeholder, the 48h-criticals program from the call) demonstrate that the same findings get three different judgments. Live consequence panel re-judges the open world as you type (",{"type":439,"tag":457,"props":1347,"children":1349},{"className":1348},[],[1350],{"type":452,"value":1202},{"type":452,"value":1352}," takes the rubric as an argument — the page is the function). Clock policy rendered as fixed rulings with a link to the anatomy page — deliberately not knobs. New open thread recorded: rubric changes after a quarterly export rewrite submitted history → rubric versioning is a product need. Smoke-checked 200, default verdict (90% · 10 judged) in SSR output.",{"project":9,"cycle":23,"dir":25,"title":26,"date":29,"lead":1354,"long":31,"ast":1355},"Stage 5 — centerpiece",{"type":436,"children":1356},[1357],{"type":439,"tag":440,"props":1358,"children":1359},{},[1360],{"type":439,"tag":444,"props":1361,"children":1362},{},[1363,1368,1369,1375,1377,1383],{"type":439,"tag":448,"props":1364,"children":1365},{},[1366],{"type":452,"value":1367},"Stage 5 — centerpiece (2026-08-25):",{"type":452,"value":455},{"type":439,"tag":457,"props":1370,"children":1372},{"className":1371},[],[1373],{"type":452,"value":1374},"\u002Fpages\u002Ffindings-to-sla-v1",{"type":452,"value":1376},", registered — the c78 open-thread answer. Two columns: worklist (open nearest-due-first, accepted-risk, recently closed) with rows expanding into the shared DispositionPanel; SLA rail (within-SLA verdict numeral, open\u002Fbreach\u002Fexcepted counts, event-derived found\u002Fresolved\u002Fexcepted quarter table, live audit feed). Reset + advance-clock chips (+1d\u002F+7d\u002F+30d); rubric fixed to Mark M's program (the knob lives on the config page). Verified headlessly with Playwright: escalate stamps ",{"type":439,"tag":457,"props":1378,"children":1380},{"className":1379},[],[1381],{"type":452,"value":1382},"tracker:SEC-1041",{"type":452,"value":1384}," into the feed, exception pauses F-1041's clock, +60d drops the verdict 90%→82% and mechanically re-opens F-1022's lapsed exception with the queue line \"re-entered queue mechanically\", reset restores 90%, zero console\u002Fpage errors. All four c79 pages smoke-checked 200 together.",{"project":9,"cycle":23,"dir":25,"title":26,"date":29,"lead":1386,"long":31,"ast":1387},"Thread — findings-regroup",{"type":436,"children":1388},[1389],{"type":439,"tag":440,"props":1390,"children":1391},{},[1392],{"type":439,"tag":444,"props":1393,"children":1394},{},[1395,1400,1402,1407,1409,1415,1417,1423,1425,1431,1433,1439,1441,1447,1449,1455,1457,1463],{"type":439,"tag":448,"props":1396,"children":1397},{},[1398],{"type":452,"value":1399},"Thread — findings-regroup (2026-08-25):",{"type":452,"value":1401}," revision of qdash ",{"type":439,"tag":457,"props":1403,"children":1405},{"className":1404},[],[1406],{"type":452,"value":570},{"type":452,"value":1408}," at condition grain, from Mark's 200-disallowed-tool-calls question (prompt\u002Fplan in ",{"type":439,"tag":457,"props":1410,"children":1412},{"className":1411},[],[1413],{"type":452,"value":1414},"findings-regroup-*.md",{"type":452,"value":1416},"). Additive ",{"type":439,"tag":457,"props":1418,"children":1420},{"className":1419},[],[1421],{"type":452,"value":1422},"occur",{"type":452,"value":1424}," verb in ",{"type":439,"tag":457,"props":1426,"children":1428},{"className":1427},[],[1429],{"type":452,"value":1430},"lifecycle-fixtures.ts",{"type":452,"value":1432}," (count\u002FlastSeen fold; occur-after-terminal = mechanical reopen with ",{"type":439,"tag":457,"props":1434,"children":1436},{"className":1435},[],[1437],{"type":452,"value":1438},"recurred",{"type":452,"value":1440}," flag; c79 base world regression-checked unchanged at 90% · 10 judged). New ",{"type":439,"tag":457,"props":1442,"children":1444},{"className":1443},[],[1445],{"type":452,"value":1446},"findings-page-fixtures.ts",{"type":452,"value":1448},": qdash control catalog subset with per-control occurrence nouns (the fix for qdash c5's hardcoded-units thread), 9 conditions as event logs including the ×200 case (199 generated tool-call occurs + reclassify medium→high on magnitude) and a resolved egress condition primed for recurrence. New ",{"type":439,"tag":457,"props":1450,"children":1452},{"className":1451},[],[1453],{"type":452,"value":1454},"\u002Fpages\u002Ffindings-regroup-v1",{"type":452,"value":1456}," (registry group ",{"type":439,"tag":457,"props":1458,"children":1460},{"className":1459},[],[1461],{"type":452,"value":1462},"security",{"type":452,"value":1464},"): control sections → condition rows (severity · scope · ×N unit + lastSeen · agents · SLA clock) → expanded DispositionPanel + evidence list + occur-free audit record + \"simulate: new occurrence\". Playwright-verified: exception moves stats 5→4 open \u002F 1→2 excepted; simulated occurrence on the resolved condition re-opens it at 35d\u002F30d — instantly past SLA (open 4→5, past target 0→1, verdict 100%→0%); reset restores. All six related pages (c79 four + regroup + report-sla) smoke-checked 200.",{"project":9,"cycle":23,"dir":25,"title":26,"date":29,"lead":1466,"long":31,"ast":1467},"Thread — findings-regroup v2, qdash-chassis rebuild",{"type":436,"children":1468},[1469],{"type":439,"tag":440,"props":1470,"children":1471},{},[1472],{"type":439,"tag":444,"props":1473,"children":1474},{},[1475,1480,1481,1487,1489,1494,1496,1502,1503,1509,1511,1517,1519,1525,1527,1533,1535,1541,1543,1549,1550,1556,1558,1564,1566,1571,1573,1578,1580,1586,1588,1594],{"type":439,"tag":448,"props":1476,"children":1477},{},[1478],{"type":452,"value":1479},"Thread — findings-regroup v2, qdash-chassis rebuild (2026-08-25):",{"type":452,"value":455},{"type":439,"tag":457,"props":1482,"children":1484},{"className":1483},[],[1485],{"type":452,"value":1486},"\u002Fpages\u002Ffindings-regroup-v2",{"type":452,"value":1488},", registered — the condition-grain revision rebuilt 1:1 on the real ",{"type":439,"tag":457,"props":1490,"children":1492},{"className":1491},[],[1493],{"type":452,"value":570},{"type":452,"value":1495}," components, all already in the layer: ",{"type":439,"tag":457,"props":1497,"children":1499},{"className":1498},[],[1500],{"type":452,"value":1501},"UxTableList",{"type":452,"value":647},{"type":439,"tag":457,"props":1504,"children":1506},{"className":1505},[],[1507],{"type":452,"value":1508},"Sorter",{"type":452,"value":1510},"\u002F",{"type":439,"tag":457,"props":1512,"children":1514},{"className":1513},[],[1515],{"type":452,"value":1516},"ColumnHeader",{"type":452,"value":1518}," (working Policy-column search + group sorts), ",{"type":439,"tag":457,"props":1520,"children":1522},{"className":1521},[],[1523],{"type":452,"value":1524},"UxTableListExpandRow",{"type":452,"value":1526}," purple-ruled expansion, ",{"type":439,"tag":457,"props":1528,"children":1530},{"className":1529},[],[1531],{"type":452,"value":1532},"SecurityPolicyRibbon",{"type":452,"value":1534}," (hot\u002Fwarm\u002Ftepid), ",{"type":439,"tag":457,"props":1536,"children":1538},{"className":1537},[],[1539],{"type":452,"value":1540},"ComplianceTag",{"type":452,"value":1542},", ",{"type":439,"tag":457,"props":1544,"children":1546},{"className":1545},[],[1547],{"type":452,"value":1548},"AgentAvatar",{"type":452,"value":1542},{"type":439,"tag":457,"props":1551,"children":1553},{"className":1552},[],[1554],{"type":452,"value":1555},"_shadow-box",{"type":452,"value":1557}," stat cards, filter-pill bar, ",{"type":439,"tag":457,"props":1559,"children":1561},{"className":1560},[],[1562],{"type":452,"value":1563},"_darken-me",{"type":452,"value":1565}," open-row brightening. Grain changes quoted against the original: members are conditions (scope + ×N unit + SLA clock + status) not signal rows; \"Manage\" → \"Disposition\" (the c79 verb panel + evidence + audit inset); group sub-line \"N conditions · N open · N past SLA\" replaces \"N violations\"; qdash's empty info stat card becomes ",{"type":439,"tag":448,"props":1567,"children":1568},{},[1569],{"type":452,"value":1570},"past SLA",{"type":452,"value":1572},"; expansion meta gains ",{"type":439,"tag":448,"props":1574,"children":1575},{},[1576],{"type":452,"value":1577},"Nearest SLA",{"type":452,"value":1579},". Same interactive world as v1 (shared fixtures, simulated clock). Playwright-verified through the real ExpandRow: expand → disposition → exception drops the high card 2→1, +60d puts 2 conditions past SLA, sorter works, reset restores, zero console errors. (Playwright gotcha logged: ",{"type":439,"tag":457,"props":1581,"children":1583},{"className":1582},[],[1584],{"type":452,"value":1585},"getByRole",{"type":452,"value":1587}," name-matches substrings by default — \"Disposition\" matched the \"Dispositioned\" filter pill; use ",{"type":439,"tag":457,"props":1589,"children":1591},{"className":1590},[],[1592],{"type":452,"value":1593},"exact: true",{"type":452,"value":1595},".)",{"project":9,"cycle":23,"dir":25,"title":26,"date":29,"lead":1597,"long":31,"ast":1598},"Thread — findings-regroup: Conditions column + two-agent case",{"type":436,"children":1599},[1600],{"type":439,"tag":440,"props":1601,"children":1602},{},[1603],{"type":439,"tag":444,"props":1604,"children":1605},{},[1606,1611,1613,1618],{"type":439,"tag":448,"props":1607,"children":1608},{},[1609],{"type":452,"value":1610},"Thread — findings-regroup: Conditions column + two-agent case (2026-08-25):",{"type":452,"value":1612}," from Mark's \"two unapproved tool uses by different agents\" question. New fixture C-2010 (Codex · ravi, ×14 tool calls, own detect\u002Fclock) — same rule as C-2001, different agent = a second condition under one control; both avatars on the group row, separate clocks and dispositions in the expansion. v2 gains a sortable ",{"type":439,"tag":448,"props":1614,"children":1615},{},[1616],{"type":452,"value":1617},"Conditions",{"type":452,"value":1619}," column (big-numeral, \"N open · N past SLA\" breakdown beneath, paired beside Total Occurrences — sorting by conditions ranks workload, by occurrences ranks noise); the old \"N violations\" sub-line removed so the count lives in one place (policy cell now shows the control category). Ruled in notes: scope choice stays per-rule — fleet-level remediation (qdash's egress) would legitimately collapse agents into one condition. Playwright-verified: approval row reads 2 \u002F 214 tool calls with both avatars, Conditions sort puts it first, both members (×200 high, ×14 medium) expand with independent clocks; zero console errors.",{"project":9,"cycle":23,"dir":25,"title":26,"date":29,"lead":1621,"long":31,"ast":1622},"Thread — findings-regroup: occurrences leave the summary; findings become a table",{"type":436,"children":1623},[1624],{"type":439,"tag":440,"props":1625,"children":1626},{},[1627],{"type":439,"tag":444,"props":1628,"children":1629},{},[1630,1635,1637,1646],{"type":439,"tag":448,"props":1631,"children":1632},{},[1633],{"type":452,"value":1634},"Thread — findings-regroup: occurrences leave the summary; findings become a table (2026-08-25):",{"type":452,"value":1636}," Mark's hierarchy call — occurrences are a sub-item of a finding, so the Total Occurrences column left the summary table (a 200+14 sum across agents is semantically weak; the control-level noise sort is an accepted loss). Rollup moved to the expansion's Findings header (\"· ×214 tool calls\"); the ×N stays on each finding row. Then the findings section converted from flex rows to ",{"type":439,"tag":448,"props":1638,"children":1639},{},[1640],{"type":439,"tag":457,"props":1641,"children":1643},{"className":1642},[],[1644],{"type":452,"value":1645},"UxTable variant=\"band\"",{"type":452,"value":1647}," — columns Severity · Finding (scope + reason\u002Ftitle sub-line) · Occurrences · Last Seen · Agent · SLA · Adjudicate, with the adjudication panel opening as a full-width colspan row. Verified in browser: band header renders, ×200 row reads columnar, colspan inset opens, acknowledge stamps the audit; zero console errors.",{"project":9,"cycle":23,"dir":25,"title":26,"date":29,"lead":1649,"long":31,"ast":1650},"Thread — findings-regroup: two-section expansion + terminology",{"type":436,"children":1651},[1652],{"type":439,"tag":440,"props":1653,"children":1654},{},[1655],{"type":439,"tag":444,"props":1656,"children":1657},{},[1658,1663,1665,1671,1673,1679,1681,1687,1689,1694,1696,1701],{"type":439,"tag":448,"props":1659,"children":1660},{},[1661],{"type":452,"value":1662},"Thread — findings-regroup: two-section expansion + terminology (2026-08-25):",{"type":452,"value":1664}," v2's group expansion split into two stacked ",{"type":439,"tag":457,"props":1666,"children":1668},{"className":1667},[],[1669],{"type":452,"value":1670},"UxTableListExpandSection",{"type":452,"value":1672}," cards via ExpandRow ",{"type":439,"tag":457,"props":1674,"children":1676},{"className":1675},[],[1677],{"type":452,"value":1678},"bare",{"type":452,"value":1680}," (the inventory-agent-expand-v2 pattern, well tint between): section 1 = the ",{"type":439,"tag":1682,"props":1683,"children":1684},"em",{},[1685],{"type":452,"value":1686},"policy",{"type":452,"value":1688}," (ribbon, name, remediation, meta incl. Nearest SLA; close-X wired), section 2 = the ",{"type":439,"tag":1682,"props":1690,"children":1691},{},[1692],{"type":452,"value":1693},"findings",{"type":452,"value":1695}," (its own \"Findings : N · open · past SLA\" header + the worklist) — context and work stop sharing one card. Terminology ruling applied (see Decisions): \"condition\" → ",{"type":439,"tag":448,"props":1697,"children":1698},{},[1699],{"type":452,"value":1700},"finding",{"type":452,"value":1702}," across both regroup pages' UI copy, column header now \"Findings\", ladder stated as Control → Finding → Occurrence. Both pages 200, sections + disposition verified in browser, zero console errors.",{"project":9,"cycle":23,"dir":25,"title":26,"date":29,"lead":1704,"long":31,"ast":1705},"Thread — SecuritySeverityTag",{"type":436,"children":1706},[1707],{"type":439,"tag":440,"props":1708,"children":1709},{},[1710],{"type":439,"tag":444,"props":1711,"children":1712},{},[1713,1718,1720,1726,1728,1733,1735,1741,1743,1749,1751,1756,1758,1764,1766,1772,1774,1780],{"type":439,"tag":448,"props":1714,"children":1715},{},[1716],{"type":452,"value":1717},"Thread — SecuritySeverityTag (2026-08-25):",{"type":452,"value":1719}," new layer component ",{"type":439,"tag":457,"props":1721,"children":1723},{"className":1722},[],[1724],{"type":452,"value":1725},"security\u002FSeverityTag.vue",{"type":452,"value":1727}," — severity pill on the ComplianceTag chassis, no icon. ",{"type":439,"tag":448,"props":1729,"children":1730},{},[1731],{"type":452,"value":1732},"Rules the layer's severity-ladder split",{"type":452,"value":1734}," (SecuritySeverity had high on warning; qdash findings had high on error): critical = the only solid error fill (rank by intensity, not a fifth hue) · high = error outline · medium = warning outline · low = muted grey (ComplianceTag's ",{"type":439,"tag":457,"props":1736,"children":1738},{"className":1737},[],[1739],{"type":452,"value":1740},"gap",{"type":452,"value":1742}," register). ",{"type":439,"tag":457,"props":1744,"children":1746},{"className":1745},[],[1747],{"type":452,"value":1748},"ink",{"type":452,"value":1750}," prop = the open-row ",{"type":439,"tag":457,"props":1752,"children":1754},{"className":1753},[],[1755],{"type":452,"value":1563},{"type":452,"value":1757}," register (content-token border\u002Ftext + 10% content fill — theme-safe, flips in dark mode), driven from ExpandRow's ",{"type":439,"tag":457,"props":1759,"children":1761},{"className":1760},[],[1762],{"type":452,"value":1763},"@detailsOpen\u002F@detailsClose",{"type":452,"value":1765},". Documented per house rule: registry entry + ",{"type":439,"tag":457,"props":1767,"children":1769},{"className":1768},[],[1770],{"type":452,"value":1771},"_demos\u002FSecuritySeverityTag.vue",{"type":452,"value":1773}," (full adminProps, ladder both sizes, slot override, overflow, ink-on-tint, in-context finding row). Swapped into findings-regroup-v2 (group rows with ink-on-open, inner table, expansion meta) and the shared DispositionPanel. Dev server now runs ",{"type":439,"tag":457,"props":1775,"children":1777},{"className":1776},[],[1778],{"type":452,"value":1779},"NUXT_LOCAL_LAYER=1",{"type":452,"value":1781}," (moved to port 3000); layer release needed before CI\u002Fprod consumes the component. Ink flip verified in browser: error\u002F60 border → content ink on open → reverts on close.",{"project":9,"cycle":23,"dir":25,"title":26,"date":29,"lead":1783,"long":31,"ast":1784},"Thread — finding-detail",{"type":436,"children":1785},[1786],{"type":439,"tag":440,"props":1787,"children":1788},{},[1789],{"type":439,"tag":444,"props":1790,"children":1791},{},[1792,1797,1798,1804,1806,1812,1814,1819,1821,1827,1829,1835,1837,1842],{"type":439,"tag":448,"props":1793,"children":1794},{},[1795],{"type":452,"value":1796},"Thread — finding-detail (2026-08-25):",{"type":452,"value":455},{"type":439,"tag":457,"props":1799,"children":1801},{"className":1800},[],[1802],{"type":452,"value":1803},"\u002Fpages\u002Ffinding-detail-v1",{"type":452,"value":1805}," (+ registry, ",{"type":439,"tag":457,"props":1807,"children":1809},{"className":1808},[],[1810],{"type":452,"value":1811},"?id=",{"type":452,"value":1813}," picks the finding, default the ×200 case) — the \"view all\" drill and demoted-flat-view home. Identity header (SeverityTag + ",{"type":439,"tag":448,"props":1815,"children":1816},{},[1817],{"type":452,"value":1818},"displayed-status chip",{"type":452,"value":1820}," + remediation clock + qdash-italic meta), adjudication panel, the full occurrence stream as a house table (Time · citable ID · Agent · Action chip · Detail(stretch) · Session) with text filter and simulate button, occur-free audit record. Fixture support (additive): ",{"type":439,"tag":457,"props":1822,"children":1824},{"className":1823},[],[1825],{"type":452,"value":1826},"action",{"type":452,"value":1828}," on occur events (observed\u002Fheld\u002Fblocked), ",{"type":439,"tag":457,"props":1830,"children":1832},{"className":1831},[],[1833],{"type":452,"value":1834},"displayStatus",{"type":452,"value":1836}," ladder in ",{"type":439,"tag":457,"props":1838,"children":1840},{"className":1839},[],[1841],{"type":452,"value":1194},{"type":452,"value":1843}," — c79 base world regression-clean (90% · 10). Worklist evidence headers now read \"last 5 of 200 · view all →\" linking through. Verified in browser: chip flips acknowledged → risk accepted on adjudication, deep link lands with the right id, 200 rows render, zero console errors.",{"project":9,"cycle":23,"dir":25,"title":26,"date":29,"lead":1845,"long":31,"ast":1846},"Thread — adjudication card, Mark's design",{"type":436,"children":1847},[1848],{"type":439,"tag":440,"props":1849,"children":1850},{},[1851],{"type":439,"tag":444,"props":1852,"children":1853},{},[1854,1859,1861,1866,1868,1874,1876,1881,1883,1888,1890,1895,1897,1902],{"type":439,"tag":448,"props":1855,"children":1856},{},[1857],{"type":452,"value":1858},"Thread — adjudication card, Mark's design (2026-08-25):",{"type":452,"value":1860}," built from Mark's manual mock. Layer: ",{"type":439,"tag":457,"props":1862,"children":1864},{"className":1863},[],[1865],{"type":452,"value":1670},{"type":452,"value":1867}," gains ",{"type":439,"tag":457,"props":1869,"children":1871},{"className":1870},[],[1872],{"type":452,"value":1873},"theme=\"grape\"",{"type":452,"value":1875}," — the CHILD register (grape-50 fill, grape-150 border, no shadow; dark grape-850\u002F30) for a card that belongs to a row of the section above; registry entry updated. v2: each finding row in the inner findings table is now itself a ",{"type":439,"tag":457,"props":1877,"children":1879},{"className":1878},[],[1880],{"type":452,"value":1524},{"type":452,"value":1882}," — whole-row click AND the Adjudicate button (handler-less, bubbles to the row) open the grape adjudication card as the row's own expansion. Card per the design: severity pill + 22px title · meta band (Agent avatar \u002F Machine·User from new seed fields \u002F ",{"type":439,"tag":448,"props":1884,"children":1885},{},[1886],{"type":452,"value":1887},"Remediation Clock as a progress bar",{"type":452,"value":1889}," — content fill on grape-150 track, error fill on breach) · ",{"type":439,"tag":448,"props":1891,"children":1892},{},[1893],{"type":452,"value":1894},"Ignore + Accept Risk",{"type":452,"value":1896}," as the only verb buttons (axis 1, capture-gated — the accept-risk label applied) · Evidence and Audit Record as two bold-header columns with 3px rules · ",{"type":439,"tag":448,"props":1898,"children":1899},{},[1900],{"type":452,"value":1901},"handling as the Status dropdown",{"type":452,"value":1903}," (UxSimpleSelect: Acknowledged\u002FEscalated\u002FEnforced — axis 2 as a status control, exactly the axis alignment ruling; selecting appends the clock-neutral event with its ref). DispositionPanel no longer used on v2 (remains the organ on the other three pages — convergence is an open thread). Verified: row click toggles, button opens, select\u002Fcapture don't close the row, audit updates live, zero console errors.",{"project":9,"cycle":23,"dir":25,"title":26,"date":29,"lead":1905,"long":31,"ast":1906},"Thread — quiet expand register",{"type":436,"children":1907},[1908],{"type":439,"tag":440,"props":1909,"children":1910},{},[1911],{"type":439,"tag":444,"props":1912,"children":1913},{},[1914,1919,1921,1937,1939,1944,1945,1951,1953,1958],{"type":439,"tag":448,"props":1915,"children":1916},{},[1917],{"type":452,"value":1918},"Thread — quiet expand register (2026-08-25):",{"type":452,"value":1920}," Mark's ruling: the row and its parent row stay white; only the grape card is tinted. Evaluated (CSS override spike vs prop vs style-props vs new component) and ruled: ",{"type":439,"tag":448,"props":1922,"children":1923},{},[1924,1930,1932],{"type":439,"tag":457,"props":1925,"children":1927},{"className":1926},[],[1928],{"type":452,"value":1929},"quiet",{"type":452,"value":1931}," boolean prop on ",{"type":439,"tag":457,"props":1933,"children":1935},{"className":1934},[],[1936],{"type":452,"value":1524},{"type":452,"value":1938}," — open row and details well stay surface, no purple rules\u002Ftint\u002Fbordered well\u002Fflash; everything else unchanged; default false so existing consumers untouched. ",{"type":439,"tag":457,"props":1940,"children":1942},{"className":1941},[],[1943],{"type":452,"value":1929},{"type":452,"value":647},{"type":439,"tag":457,"props":1946,"children":1948},{"className":1947},[],[1949],{"type":452,"value":1950},"ExpandSection theme=\"grape\"",{"type":452,"value":1952}," together form the ",{"type":439,"tag":448,"props":1954,"children":1955},{},[1956],{"type":452,"value":1957},"child-register vocabulary",{"type":452,"value":1959},": quiet row + grape card = \"this content belongs to the row above.\" Applied and then refined per Mark: the OUTER control rows keep the loud register (qdash's own open treatment — purple rules + grape tint); only the nested finding rows are quiet, with the grape card as their tinted surface. CSS spike reverted; registry updated. Measured: outer open row grape\u002F10 tint with its 2 purple rules, inner open row rgb(255,255,255), card exactly grape-50 (#F9F7FF).",{"project":9,"cycle":34,"dir":36,"title":37,"date":4,"lead":1961,"long":31,"ast":1962},"Thread — card-minidocs",{"type":436,"children":1963},[1964],{"type":439,"tag":440,"props":1965,"children":1966},{},[1967],{"type":439,"tag":444,"props":1968,"children":1969},{},[1970,1975,1977,1983,1985,1990,1992,1998,1999,2005],{"type":439,"tag":448,"props":1971,"children":1972},{},[1973],{"type":452,"value":1974},"Thread — card-minidocs (2026-08-24):",{"type":452,"value":1976}," Mark's pick against the stage-4 lean: expand the mini-document, don't shelve it. ",{"type":439,"tag":457,"props":1978,"children":1980},{"className":1979},[],[1981],{"type":452,"value":1982},"\u002Fpages\u002Freport-card-minidocs",{"type":452,"value":1984}," built and registered — seven versions where ",{"type":439,"tag":448,"props":1986,"children":1987},{},[1988],{"type":452,"value":1989},"typographic hierarchy (weight, size) is the instrument",{"type":452,"value":1991},", each promoting a different derived fact to the top of the type scale: headline (score), lede (worst item as a real sentence), stamp (verdict as a rotated audit mark), contents (derived mini-TOC locating the trouble section), marginalia (page opened to the highlighted finding), cover (identity, the stage-4 control condition), ticker (delta + embedded spark figure). Mid-thread ruling: no \"Qpoint\" masthead — each card leads with its own title (cover uses the audience line). On-paper ink is fixed palette, never themed (white page in both themes); one device per card holds, including exactly one lit TOC row. Provisional verdict on-page: headline spine + lede sentence is the natural merge; stamp is alert-world dressing only; contents\u002Fmarginalia belong on drill\u002Fexport surfaces; final pick Mark's. Thread files: ",{"type":439,"tag":457,"props":1993,"children":1995},{"className":1994},[],[1996],{"type":452,"value":1997},"card-minidocs-prompt.md",{"type":452,"value":1542},{"type":439,"tag":457,"props":2000,"children":2002},{"className":2001},[],[2003],{"type":452,"value":2004},"card-minidocs-plan.md",{"type":452,"value":2006},". Smoke-checked 200.",{"project":9,"cycle":34,"dir":36,"title":37,"date":4,"lead":2008,"long":31,"ast":2009},"Thread — card-minidocs, iteration 3",{"type":436,"children":2010},[2011],{"type":439,"tag":440,"props":2012,"children":2013},{},[2014],{"type":439,"tag":444,"props":2015,"children":2016},{},[2017,2022,2024,2030,2032,2037,2039,2044,2046,2051,2053,2058],{"type":439,"tag":448,"props":2018,"children":2019},{},[2020],{"type":452,"value":2021},"Thread — card-minidocs, iteration 3 (2026-08-24):",{"type":452,"value":2023}," Mark's ruling: no greek lines — every piece of the mini report must communicate. ",{"type":439,"tag":457,"props":2025,"children":2027},{"className":2026},[],[2028],{"type":452,"value":2029},"\u002Fpages\u002Freport-card-minidocs-v2",{"type":452,"value":2031}," built and registered: a ",{"type":439,"tag":448,"props":2033,"children":2034},{},[2035],{"type":452,"value":2036},"content audit",{"type":452,"value":2038}," per report (one card-altitude question each; a slot survives only if it serves it — the board headline lost its slot for restating its three source rows) followed by two compositions of the audited content: ",{"type":439,"tag":1682,"props":2040,"children":2041},{},[2042],{"type":452,"value":2043},"briefing",{"type":452,"value":2045}," (hero score + spark, toned alarm lines with owners, quiet register) and ",{"type":439,"tag":1682,"props":2047,"children":2048},{},[2049],{"type":452,"value":2050},"ledger",{"type":452,"value":2052}," (same content as a uniform table, the no-hero control). New slots surfaced by the audit: SLA nearest-to-target finding and Q3 found-vs-resolved throughput debt; inventory personal-account shadow split and newest-shadow named; compliance evidence volume. New emphasis rule: ",{"type":439,"tag":448,"props":2054,"children":2055},{},[2056],{"type":452,"value":2057},"weight marks most-informative, color remains the single genuine-tone device",{"type":452,"value":2059}," — importance and urgency on separate channels. Cards widened 168 → 200px. Provisional verdict: briefing (hero numeral keeps four-up triage scannable); ledger belongs one level down (hover \u002F snapshot shelf). Smoke-checked 200, derived figures verified in rendered output.",{"project":9,"cycle":34,"dir":36,"title":37,"date":4,"lead":2061,"long":31,"ast":2062},"Thread — card-minidocs, iteration 4",{"type":436,"children":2063},[2064],{"type":439,"tag":440,"props":2065,"children":2066},{},[2067],{"type":439,"tag":444,"props":2068,"children":2069},{},[2070,2075,2077,2083,2085,2090,2092,2098,2100,2106,2108,2114,2116,2122],{"type":439,"tag":448,"props":2071,"children":2072},{},[2073],{"type":452,"value":2074},"Thread — card-minidocs, iteration 4 (2026-08-24):",{"type":452,"value":2076}," attention-device bake-off on the v2 cards. ",{"type":439,"tag":457,"props":2078,"children":2080},{"className":2079},[],[2081],{"type":452,"value":2082},"\u002Fpages\u002Freport-card-minidocs-v3",{"type":452,"value":2084}," built and registered — ten devices for calling out areas of concern, in four families: line-level (ink control, highlighter), object-level (border, spine, pink-slip tint), boundary-breakers (merit-badge seal with count, flag tab, dog-ear, notification chip), and the stamp as labeler (the only device that names the problem class, and the only one with a positive state). Discipline held: one tone carrier per card — under any card-level device the text goes neutral and keeps weight; SLA's clean card is the absence test in every section. Transfer check re-shows the two leaders (badge, highlighter) on the ledger. ",{"type":439,"tag":448,"props":2086,"children":2087},{},[2088],{"type":452,"value":2089},"Real bug found and fixed:",{"type":452,"value":2091}," the layer's Tailwind config sets ",{"type":439,"tag":457,"props":2093,"children":2095},{"className":2094},[],[2096],{"type":452,"value":2097},"red: '#FF0033'",{"type":452,"value":2099}," flat, which clobbers the default ",{"type":439,"tag":457,"props":2101,"children":2103},{"className":2102},[],[2104],{"type":452,"value":2105},"red-*",{"type":452,"value":2107}," scale — every ",{"type":439,"tag":457,"props":2109,"children":2111},{"className":2110},[],[2112],{"type":452,"value":2113},"red-600",{"type":452,"value":2115},"-style class on iterations 2–3 silently generated no CSS (alert ink rendered neutral); all three mini-doc pages switched to ",{"type":439,"tag":457,"props":2117,"children":2119},{"className":2118},[],[2120],{"type":452,"value":2121},"rose-*",{"type":452,"value":2123},", gotcha saved to memory. Provisional verdict: merit badge (silhouette + magnitude + absence-is-calm), highlighter as line-level runner-up, and a new thought recorded — devices may be escalation rungs (ink → badge → pink-slip), not rivals. Smoke-checked 200 across all three pages, rose classes verified in generated CSS.",[2125,2277,2281,2286,2309],{"id":9,"label":10,"commits":2126},[2127,2130,2133,2136,2139,2142,2145,2148,2151,2154,2157,2160,2163,2166,2169,2172,2175,2178,2181,2184,2187,2190,2193,2196,2199,2202,2205,2208,2211,2214,2217,2220,2223,2226,2229,2232,2235,2238,2241,2244,2247,2250,2253,2256,2259,2262,2265,2268,2271,2274],{"repo":9,"sha":2128,"date":18,"subject":2129,"pr":17},"7d8edf2b6b","c68 three-card-mock: house compliance shield (layer asset via \u003Cimg>, the ComplianceTag pattern) replaces hand-drawn paths on hero + framework rows",{"repo":9,"sha":2131,"date":18,"subject":2132,"pr":17},"7a09ce9d62","c68 three-card-mock: round 2 — Go on all cards, LifecycleFindingsDigest extracted from findings-regroup-v2 (shared by card + findings page), verdict font-exbold, compliance % Inter black",{"repo":9,"sha":2134,"date":18,"subject":2135,"pr":17},"b6e5ca885e","c79: qdash port thread — findings-regroup-v2 shipped to qcontrol (qdash c14), layer v0.9.11, port-verification captures + prompt\u002Fplan record",{"repo":9,"sha":2137,"date":18,"subject":2138,"pr":17},"177bd36fa4","c68 three-card-mock: thread docs, CYCLE.md entries, both-state captures",{"repo":9,"sha":2140,"date":18,"subject":2141,"pr":17},"d703a28df2","c68 inventory-card: possibility-space doc — health seam (register not topic), 15-category taxonomy with per-actor applicability matrix, body-figure tint ruling (visibility not posture), ranked recommendation",{"repo":9,"sha":2143,"date":18,"subject":2144,"pr":17},"9c857b04cf","c68 three-card-mock: index-three-cards-v1 — Mark's manual design at Meridian numbers, derived visibility verdict, placeholder body figure with per-part tone API",{"repo":9,"sha":2146,"date":18,"subject":2147,"pr":17},"a9639fbf82","layer v0.9.11 — AgentPill, SecuritySeverityTag, grape ExpandSection (c79 components)",{"repo":9,"sha":2149,"date":673,"subject":2150,"pr":17},"dd596940bd","c79: history sweep — polish-sweep thread recorded, Occurrences-header ruling added, CYCLES.md entry refreshed to actual scope",{"repo":9,"sha":2152,"date":673,"subject":2153,"pr":17},"a5bd96f4dc","c79: Adjudicate button reads Close while its row is open — CSS-driven off _open-row like the chevron",{"repo":9,"sha":2155,"date":673,"subject":2156,"pr":17},"4213b5aeb0","c79: row-scale findings numerals go font-black too — one weight voice for the severity box at both scales",{"repo":9,"sha":2158,"date":673,"subject":2159,"pr":17},"0f08266623","c79: Inter from rsms.me\u002Finter instead of Google Fonts — official distribution, all weights 100-900 + variable font",{"repo":9,"sha":2161,"date":673,"subject":2162,"pr":17},"0069da9bee","c79: load Inter 800\u002F900 — font-black was clamping to 700 (Google Fonts URL only carried 400-700); header findings numerals now weight 900",{"repo":9,"sha":2164,"date":673,"subject":2165,"pr":17},"06f75fa84a","c79: severity-box numerals in Inter; clean groups render a green 0 · Open following the same cell pattern",{"repo":9,"sha":2167,"date":673,"subject":2168,"pr":17},"63329d8f04","c79: Findings column to the right of Policy + Conditions",{"repo":9,"sha":2170,"date":673,"subject":2171,"pr":17},"fcc01ca3fc","c79: Findings column moved beside Severity — the two severity readings sit together, policy pushes right",{"repo":9,"sha":2173,"date":673,"subject":2174,"pr":17},"4b7f129bd6","c79: Findings column matches the severity-box style — toned per-severity numerals with divider cells at row scale; past-SLA fragment only when present",{"repo":9,"sha":2176,"date":673,"subject":2177,"pr":17},"e6f4dc8a5c","c79: deadline 'view' opens the finding's expand row below — programmatic open() via row refs instead of navigating away",{"repo":9,"sha":2179,"date":673,"subject":2180,"pr":17},"7f6cc1cfc2","c79: agents + frameworks inline at content width — nowrap max-content containers (min-content = full pill set), policy column absorbs slack, frameworks cap at 3 + N",{"repo":9,"sha":2182,"date":673,"subject":2183,"pr":17},"e65b7c0591","c79: policy header reworked — identity + Findings severity box + Upcoming Remediation Deadlines with view links",{"repo":9,"sha":2185,"date":673,"subject":2186,"pr":17},"6fb65a58e9","c79: Agents pills inline until the table runs out of room — drop the 260px cap, Agents column width auto (Sorter's 1% default clamped it to one-pill min-content)",{"repo":9,"sha":2188,"date":673,"subject":2189,"pr":17},"2336e35c03","c79: AgentPill in the outer Agents column too — inline, wrapping on overflow; person when one finding, ×N when several",{"repo":9,"sha":2191,"date":673,"subject":2192,"pr":17},"9e3b368702","c79: AgentPill in the Agent column, finding title leads the Finding column — identity lives in one place",{"repo":9,"sha":2194,"date":673,"subject":2195,"pr":17},"4923b60cc8","c79 topline iteration 2 — every element a claim: sentences, names, consequences, speaking zeros; today\u002F+30d stress toggle",{"repo":9,"sha":2197,"date":673,"subject":2198,"pr":17},"994ca4858a","c79 topline bake-off — eight live-derived top-section treatments ranked by triage value; provisional verdict: Your move cards",{"repo":9,"sha":2200,"date":673,"subject":2201,"pr":17},"16f77650d2","c79: record StretchBox clone-width measurement bug + layer fix",{"repo":9,"sha":2203,"date":673,"subject":2204,"pr":17},"9c8a53e430","c79: bake-off verdict C graduated — Status dropdown column in regroup-v2's findings table, SLA slimmed to pure clock",{"repo":9,"sha":2206,"date":673,"subject":2207,"pr":17},"5d4ff12150","c79 status-column bake-off — four treatments (chip \u002F dropdown-everywhere \u002F hybrid \u002F quiet-hover) on isolated worlds, slimmed pure-clock SLA",{"repo":9,"sha":2209,"date":29,"subject":2210,"pr":17},"d977b2010f","c79 adjudication card: Ignore\u002FAccept Risk wrap into the Remediation Clock cell, left-aligned to its edge",{"repo":9,"sha":2212,"date":29,"subject":2213,"pr":17},"c3b6b80801","c79 adjudication card polish: evidence\u002Faudit headers level (min-h-9, rules align) + card greys darkened subtle→muted",{"repo":9,"sha":2215,"date":29,"subject":2216,"pr":17},"510b11221b","c79: outer rows back to the loud register — quiet+grape is the inner findings table's child treatment only",{"repo":9,"sha":2218,"date":29,"subject":2219,"pr":17},"ac07f73101","c79: quiet expand register on v2 — both row levels white, grape card is the only tinted surface; CSS spike reverted",{"repo":9,"sha":2221,"date":29,"subject":2222,"pr":17},"532ef7149b","c79: adjudication card from Mark's design — grape child section as the finding row's own expansion (row click + button), clock bar, Ignore\u002FAccept Risk, handling as Status dropdown",{"repo":9,"sha":2224,"date":29,"subject":2225,"pr":17},"9a805279e6","c79 finding-detail: the view-all drill — full occurrence stream with envelope columns, displayed-status ladder, citable ids; decisions batch captured in CYCLE.md",{"repo":9,"sha":2227,"date":29,"subject":2228,"pr":17},"1021bff91f","c79: adopt SecuritySeverityTag — regroup-v2 rows (ink on open), inner table, meta, shared panel; registry entry + demo per document-components",{"repo":9,"sha":2230,"date":29,"subject":2231,"pr":17},"090315abb7","c79 findings-regroup: adjudication hierarchy + real buttons — house pill-scale verbs with Adjudication label, evidence\u002Faudit as subordinate two-column tier",{"repo":9,"sha":2233,"date":29,"subject":2234,"pr":17},"9fb1e388cf","c79 findings-regroup: Finding is the stretchy column — width 100% + max-w-0 truncation, Adjudicate shrinks to content",{"repo":9,"sha":2236,"date":29,"subject":2237,"pr":17},"4b6d6d3a87","c79 findings-regroup: inner findings table uses house header — UxTableList + disabled ColumnHeaders + 3px rule, matching the outer chrome",{"repo":9,"sha":2239,"date":29,"subject":2240,"pr":17},"8fb81d1ad0","c79 findings-regroup: findings section becomes UxTable band rows — columnar finding attributes, adjudication as colspan inset",{"repo":9,"sha":2242,"date":29,"subject":2243,"pr":17},"7d982f05a4","c79 findings-regroup: Total Occurrences leaves the summary table — occurrences are finding evidence; rollup moves to the expansion's Findings header",{"repo":9,"sha":2245,"date":29,"subject":2246,"pr":17},"7368ae75e7","c79 findings-regroup: Adjudicate is the door verb — two-register vocabulary (adjudicate\u002Fdisposition), Open\u002FClosed\u002FAll tabs with excepted visible under Open",{"repo":9,"sha":2248,"date":29,"subject":2249,"pr":17},"0fb9555adc","c79 findings-regroup: two-section expansion (policy \u002F findings) + terminology ruling — condition becomes finding, ladder is Control → Finding → Occurrence",{"repo":9,"sha":2251,"date":29,"subject":2252,"pr":17},"d1a04d79aa","c79 findings-regroup: sortable Conditions column + two-agent case (C-2010) — count lives in one place, workload vs noise sorts",{"repo":9,"sha":2254,"date":29,"subject":2255,"pr":17},"5cf959c9b1","c79 findings-regroup v2: condition grain rebuilt on the real qdash \u002Ffindings chassis — TableList groups, ribbon expansion, Disposition replaces Manage",{"repo":9,"sha":2257,"date":29,"subject":2258,"pr":17},"d1ea6f8228","c79 findings-regroup: qdash \u002Ffindings at condition grain — occur verb, condition world with the ×200 case, regroup page; Playwright-verified recurrence",{"repo":9,"sha":2260,"date":29,"subject":2261,"pr":17},"1c871da1a5","c79 stage 5: findings-to-sla centerpiece — interactive worklist + derived SLA rail, simulated clock, Playwright-verified",{"repo":9,"sha":2263,"date":29,"subject":2264,"pr":17},"43c92d2bb5","c79 stage 4: rubric config — editable targets, program presets, live consequence panel; clock policy fixed by design",{"repo":9,"sha":2266,"date":29,"subject":2267,"pr":17},"1b3bb3692e","c79 stage 3: disposition organ — DispositionPanel + six-scenario page, working verbs, seam stubs, live audit trail",{"repo":9,"sha":2269,"date":29,"subject":2270,"pr":17},"06ea11726b","c79 stage 2: finding-lifecycle anatomy — state diagram, verb table, clock rules, live worked examples; AuditTrail organ",{"repo":9,"sha":2272,"date":29,"subject":2273,"pr":17},"3b72132f7f","c79 stage 1: lifecycle fixtures — event-sourced findings, Mark M rubric, pure derive functions; derivations sanity-checked",{"repo":9,"sha":2275,"date":29,"subject":2276,"pr":17},"def6068316","c79 stage 0: cycle scaffolding — finding-lifecycle kick-off, plan, CYCLES.md entry",{"id":75,"label":76,"commits":2278},[2279],{"repo":75,"sha":2280,"date":18,"subject":2147,"pr":17},"eb9640d",{"id":420,"label":421,"commits":2282},[2283],{"repo":420,"sha":2284,"date":18,"subject":2285,"pr":17},"3f71dc9","layer v0.9.11 (from 0.9.3) — spec normalized to latest per consumer convention",{"id":2287,"label":2287,"commits":2288},"qcontrol",[2289,2293,2297,2301,2305],{"repo":2287,"sha":2290,"date":18,"subject":2291,"pr":2292},"86325517c","Fix Mac install leaving root-owned user data dir (#668)",668,{"repo":2287,"sha":2294,"date":18,"subject":2295,"pr":2296},"84ec5118e","Officially sign and notorize macOS binary and installer (#666)",666,{"repo":2287,"sha":2298,"date":673,"subject":2299,"pr":2300},"f41562013","Remove lifetime enroll credential cap (#665)",665,{"repo":2287,"sha":2302,"date":29,"subject":2303,"pr":2304},"70f5fb782","Add qinject enrollment into qmcp exec tools (#662)",662,{"repo":2287,"sha":2306,"date":4,"subject":2307,"pr":2308},"a9d66c65d","Stop snapshot storms without dropping late-join inventory (#663)",663,{"id":2310,"label":2311,"commits":2312},"layer","q-nuxt-layer",[2313,2316,2319,2322,2325,2328,2331,2334,2337,2340,2343,2346,2349,2352,2355,2358],{"repo":2310,"sha":2314,"date":18,"subject":2315,"pr":17},"8f1b6df","v0.9.11: AgentPill, SecuritySeverityTag, ExpandSection grape theme + quiet register, StretchBox width fix — the c79 finding-lifecycle components",{"repo":2310,"sha":2317,"date":18,"subject":2318,"pr":17},"2f40d46","ExpandSection grape theme: border-2 grape-400 — heavier frame lifts the adjudication card off the quiet well",{"repo":2310,"sha":2320,"date":673,"subject":2321,"pr":17},"23dcd75","AgentPill: w-max — inline-flex shrink-to-fit let starved table cells compress the pill; max-content sizing makes columns accommodate it",{"repo":2310,"sha":2323,"date":673,"subject":2324,"pr":17},"cfe22cf","AgentPill: shrink-0 — overflow-hidden zeroes flex-item min-width, letting the pill crush and clip its text; chips never compress",{"repo":2310,"sha":2326,"date":673,"subject":2327,"pr":17},"643ce98","AgentPill: tighter padding, dot separator instead of slash",{"repo":2310,"sha":2329,"date":673,"subject":2330,"pr":17},"351d362","AgentPill — pixel-pawn identity pill: pawn cell + name \u002F user in grape, inline and stacked layouts",{"repo":2310,"sha":2332,"date":673,"subject":2333,"pr":17},"d028756","StretchBox: pin measurement clone to live width when stretchWidth is false — fixes expand rows animating short then snapping open (clone measured at body width, where text wraps differently)",{"repo":2310,"sha":2335,"date":29,"subject":2336,"pr":17},"e9afb73","quiet register back to bg-surface — the grey-50 experiment reverted; shadowed grape card carries the depth",{"repo":2310,"sha":2338,"date":29,"subject":2339,"pr":17},"567d5f5","ExpandSection grape theme: grape-200 border",{"repo":2310,"sha":2341,"date":29,"subject":2342,"pr":17},"9e7a720","ExpandSection grape theme: shadow-lg — child card lifts off the well like its siblings",{"repo":2310,"sha":2344,"date":29,"subject":2345,"pr":17},"a0e911c","quiet well keeps the table's stroke verticals — border-x continues the frame, top\u002Fbottom stay open",{"repo":2310,"sha":2347,"date":29,"subject":2348,"pr":17},"384d4d2","UxTableListExpandRow: quiet register uses grey-50 (dark: grey-800) instead of surface — a whisper of separation for the open row and well",{"repo":2310,"sha":2350,"date":29,"subject":2351,"pr":17},"1e92889","UxTableListExpandRow: quiet prop — surface-white open register for nested\u002Fchild rows; pairs with ExpandSection theme=grape",{"repo":2310,"sha":2353,"date":29,"subject":2354,"pr":17},"ed48b69","UxTableListExpandSection: theme prop — 'grape' child register (grape-50 fill, grape-150 border, no shadow) for row-owned cards",{"repo":2310,"sha":2356,"date":29,"subject":2357,"pr":17},"4426b44","SecuritySeverityTag: 1s color transition — palette swaps glide on the _darken-me open-row clock",{"repo":2310,"sha":2359,"date":29,"subject":2360,"pr":17},"023830e","SecuritySeverityTag — severity pill on the ComplianceTag chassis: canonical tag-scale ladder (critical solid, high error-outline, medium warning, low grey) + ink open-row variant",[2362],{"tag":592,"date":18,"subject":2315},[],[2365,2369,2372,2376,2379],{"project":9,"cycle":44,"src":2366,"route":501,"caption":17,"capturedAt":2367,"subject":2368,"evolution":17,"seq":17,"thread":17,"variant":17,"newThing":17,"moments":20,"subjectSince":18},"\u002Fcycles\u002Fdesign\u002Fc68-three-cards-full.png","2026-08-27T20:22:38.703Z","page\u002Findex-three-cards",{"project":9,"cycle":44,"src":2370,"route":501,"caption":17,"capturedAt":2371,"subject":2368,"evolution":17,"seq":17,"thread":17,"variant":17,"newThing":17,"moments":20,"subjectSince":18},"\u002Fcycles\u002Fdesign\u002Fc68-three-cards-partial.png","2026-08-27T20:22:23.298Z",{"project":9,"cycle":23,"src":28,"route":570,"caption":2373,"capturedAt":2374,"subject":17,"evolution":17,"seq":42,"thread":17,"variant":17,"newThing":2375,"moments":30,"subjectSince":17},"Accept Risk capture band — reason + expiry gate the exception","2026-08-27T20:01:47.059Z","The c79 findings-regroup-v2 design live in qdash on real backend data",{"project":9,"cycle":23,"src":2377,"route":570,"caption":2378,"capturedAt":2374,"subject":17,"evolution":17,"seq":20,"thread":17,"variant":17,"newThing":2375,"moments":30,"subjectSince":17},"\u002Fcycles\u002Fdesign\u002Fc79-qdash-port-adjudicate.png","Adjudicate opens the grape card — meta band, verbs, Evidence | Audit Record",{"project":9,"cycle":23,"src":2380,"route":570,"caption":2381,"capturedAt":2374,"subject":17,"evolution":17,"seq":30,"thread":17,"variant":17,"newThing":2375,"moments":30,"subjectSince":17},"\u002Fcycles\u002Fdesign\u002Fc79-qdash-port-expanded.png","Control row expanded — policy header with severity box and deadlines over the findings worklist",[2383,2386],{"key":2384,"project":9,"cycle":23,"title":26,"count":51,"entries":247,"rep":2385,"newThing":2375},"design:c79",{"project":9,"cycle":23,"src":2380,"route":570,"caption":2381,"capturedAt":2374,"subject":17,"evolution":17,"seq":30,"thread":17,"variant":17,"newThing":2375,"moments":30,"subjectSince":17},{"key":2387,"project":9,"cycle":44,"title":47,"count":42,"entries":42,"rep":2388,"newThing":17},"design:c68",{"project":9,"cycle":44,"src":2366,"route":501,"caption":17,"capturedAt":2367,"subject":2368,"evolution":17,"seq":17,"thread":17,"variant":17,"newThing":17,"moments":20,"subjectSince":18},[2390],{"id":2368,"kind":2391,"label":2392,"note":17,"cycles":2393,"count":42,"latest":2366,"moments":20,"since":18,"isNew":31,"evolution":2395},"page","Index three cards",[2394],{"project":9,"id":44},"\u002Fcycles\u002Fevolution\u002Fpage\u002Findex-three-cards",[2397],"Deploys come from this checkout's deploy-branch reflog, which starts 2026-10-16.","2026-08-17","2026-08-31",1794599490402]