[{"data":1,"prerenderedAt":836},["ShallowReactive",2],{"$f74WfkVaCoEUslztJr1QoNskGya1fmcT7S5K2fUAPzMc":3},{"from":4,"to":5,"cycles":6,"entries":204,"repos":647,"releases":829,"deploys":830,"captures":831,"clusters":832,"subjects":833,"notes":834,"week":4,"prev":103,"next":59,"current":22},"2026-03-30","2026-04-05",{"started":7,"open":95,"closed":200},[8,23,35,45,53,60,67,73,80,88],{"project":9,"projectLabel":10,"id":11,"num":12,"dir":13,"title":14,"focus":15,"status":16,"thumbnail":17,"started":18,"startedSource":19,"closed":20,"closedSource":19,"openWeeks":21,"quietWeeks":21,"stale":22,"active":22},"design","Design","c33",33,"c33.ai-ecosystem-visualizations","ai-ecosystem-visualizations","Visual experiments expressing the AI agent monitoring dataset for security teams","archived",null,"2026-04-03","record","2026-08-15",1,false,{"project":24,"projectLabel":25,"id":26,"num":27,"dir":28,"title":29,"focus":30,"status":16,"thumbnail":31,"started":18,"startedSource":19,"closed":20,"closedSource":32,"openWeeks":21,"quietWeeks":33,"stale":22,"active":34},"qflow","Qflow","c11",11,"c11.ai-ecosystem","AI Ecosystem","PixiJS experiments expressing the AI agent monitoring dataset for security teams","\u002Fcycles\u002Fqflow\u002Fc11-ai-ecosystem.png","git",0,true,{"project":36,"projectLabel":37,"id":38,"num":39,"dir":40,"title":41,"focus":42,"status":43,"thumbnail":44,"started":18,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":21,"quietWeeks":33,"stale":22,"active":34},"qmap","Qmap","c21",21,"c21.ai-session-map","ai-session-map","Visualize a single AI agent session as a qmap entity-type topology","active","\u002Fcycles\u002Fqmap\u002Fc21-ai-session-map.png",{"project":46,"projectLabel":47,"id":48,"num":49,"dir":50,"title":51,"focus":17,"status":16,"thumbnail":17,"started":52,"startedSource":19,"closed":52,"closedSource":19,"openWeeks":21,"quietWeeks":33,"stale":22,"active":34},"bob-wire","Bob-Wire","c7",7,"c7.github-pages-deploy","GitHub Pages Deploy","2026-04-02",{"project":46,"projectLabel":47,"id":54,"num":55,"dir":56,"title":57,"focus":17,"status":16,"thumbnail":58,"started":52,"startedSource":19,"closed":59,"closedSource":19,"openWeeks":21,"quietWeeks":33,"stale":22,"active":34},"c6",6,"c6.dashboard-prototype","Dashboard Prototype","\u002Fcycles\u002Fbob-wire\u002Fc6-apikey-detail.png","2026-04-06",{"project":46,"projectLabel":47,"id":61,"num":62,"dir":63,"title":64,"focus":17,"status":16,"thumbnail":65,"started":66,"startedSource":32,"closed":52,"closedSource":19,"openWeeks":21,"quietWeeks":33,"stale":22,"active":34},"c5",5,"c5.dashboard-reframing-ai","Dashboard Reframing: AI Agent Visibility","\u002Fcycles\u002Fbob-wire\u002Fc5-index.png","2026-04-01",{"project":46,"projectLabel":47,"id":68,"num":69,"dir":70,"title":71,"focus":17,"status":43,"thumbnail":72,"started":66,"startedSource":32,"closed":17,"closedSource":17,"openWeeks":21,"quietWeeks":33,"stale":22,"active":34},"c4",4,"c4.aii-agents-entity","AI Agents Entity","\u002Fcycles\u002Fbob-wire\u002Fc4-agent-sessions.png",{"project":46,"projectLabel":47,"id":74,"num":75,"dir":76,"title":77,"focus":17,"status":78,"thumbnail":79,"started":66,"startedSource":32,"closed":66,"closedSource":32,"openWeeks":21,"quietWeeks":33,"stale":22,"active":34},"c2",2,"c2.dataflows-v0","dataflows v0","recordless","\u002Fcycles\u002Fbob-wire\u002Fc2-index.png",{"project":36,"projectLabel":37,"id":81,"num":82,"dir":83,"title":84,"focus":85,"status":86,"thumbnail":87,"started":4,"startedSource":19,"closed":20,"closedSource":32,"openWeeks":21,"quietWeeks":21,"stale":22,"active":22},"c20",20,"c20.dataflow-arrows","Dataflow Arrows","Directional arrow indicators on dataflow lines","unlisted","\u002Fcycles\u002Fqmap\u002Fc20-arrows-distributed.png",{"project":36,"projectLabel":37,"id":89,"num":90,"dir":91,"title":92,"focus":93,"status":86,"thumbnail":94,"started":4,"startedSource":19,"closed":20,"closedSource":32,"openWeeks":21,"quietWeeks":21,"stale":22,"active":22},"c19",19,"c19.data-flow","Data Flow","QMapDataflow wrapper with config-driven props and tag-based context grouping","\u002Fcycles\u002Fqmap\u002Fc19-data-flow.png",[96,104,110,116,122,129,135,142,150,157,163,171,176,181,185,188,195],{"project":36,"projectLabel":37,"id":97,"num":98,"dir":99,"title":100,"focus":101,"status":86,"thumbnail":102,"started":103,"startedSource":19,"closed":20,"closedSource":32,"openWeeks":75,"quietWeeks":21,"stale":22,"active":22},"c17",17,"c17.dataflow-detail","Dataflow Detail","Single dataflow detail view with per-actor context toggling","\u002Fcycles\u002Fqmap\u002Fc17-checkout-stripe.png","2026-03-23",{"project":24,"projectLabel":25,"id":105,"num":106,"dir":107,"title":108,"focus":17,"status":43,"thumbnail":109,"started":103,"startedSource":32,"closed":17,"closedSource":17,"openWeeks":75,"quietWeeks":21,"stale":22,"active":22},"c10",10,"c10.real-data","Real Data","\u002Fcycles\u002Fqflow\u002Fc10-devtools-iso.png",{"project":24,"projectLabel":25,"id":111,"num":112,"dir":113,"title":114,"focus":17,"status":43,"thumbnail":115,"started":103,"startedSource":32,"closed":17,"closedSource":17,"openWeeks":75,"quietWeeks":21,"stale":22,"active":22},"c8",8,"c8.label-controls","label controls","\u002Fcycles\u002Fqflow\u002Fc8-bottom-warm.png",{"project":46,"projectLabel":47,"id":117,"num":118,"dir":119,"title":120,"focus":17,"status":43,"thumbnail":121,"started":103,"startedSource":32,"closed":17,"closedSource":17,"openWeeks":75,"quietWeeks":21,"stale":22,"active":22},"c3",3,"c3.dataflows","Dataflows","\u002Fcycles\u002Fbob-wire\u002Fc3-dataflows-overview.png",{"project":9,"projectLabel":10,"id":123,"num":124,"dir":125,"title":126,"focus":127,"status":16,"thumbnail":17,"started":128,"startedSource":19,"closed":20,"closedSource":19,"openWeeks":118,"quietWeeks":21,"stale":22,"active":22},"c27",27,"c27.publishing","Publishing","Publish four internal projects to Cloudflare Pages","2026-03-16",{"project":24,"projectLabel":25,"id":130,"num":131,"dir":132,"title":133,"focus":134,"status":43,"thumbnail":17,"started":128,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":118,"quietWeeks":21,"stale":22,"active":22},"c9",9,"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.",{"project":46,"projectLabel":47,"id":136,"num":21,"dir":137,"title":138,"focus":139,"status":43,"thumbnail":140,"started":141,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":62,"quietWeeks":21,"stale":22,"active":22},"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":36,"projectLabel":37,"id":143,"num":144,"dir":145,"title":146,"focus":147,"status":86,"thumbnail":148,"started":149,"startedSource":19,"closed":20,"closedSource":32,"openWeeks":75,"quietWeeks":75,"stale":22,"active":22},"c18",18,"c18.control-components","Control Components","Schema-driven configurator for runtime property control","\u002Fcycles\u002Fqmap\u002Fc18-airy-stage.png","2026-03-24",{"project":9,"projectLabel":10,"id":151,"num":152,"dir":153,"title":154,"focus":17,"status":16,"thumbnail":155,"started":156,"startedSource":19,"closed":20,"closedSource":19,"openWeeks":118,"quietWeeks":75,"stale":22,"active":22},"c32",32,"c32.security-policy-pages","Security Policy Pages","\u002Fcycles\u002Fdesign\u002Fc32-policy-detail.png","2026-03-19",{"project":9,"projectLabel":10,"id":158,"num":159,"dir":160,"title":161,"focus":17,"status":16,"thumbnail":162,"started":156,"startedSource":19,"closed":20,"closedSource":19,"openWeeks":118,"quietWeeks":75,"stale":22,"active":22},"c31",31,"c31.page-mocks","Page Mocks","\u002Fcycles\u002Fdesign\u002Fc31-security-overview.png",{"project":164,"projectLabel":165,"id":48,"num":49,"dir":166,"title":167,"focus":168,"status":169,"thumbnail":17,"started":170,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":55,"quietWeeks":75,"stale":22,"active":22},"market-analyst","Market Analyst","c7.avoma-notes","avoma-notes","Explore and integrate Avoma notes data into extraction pipeline and dashboard visualizations.","parked","2026-02-25",{"project":164,"projectLabel":165,"id":68,"num":69,"dir":172,"title":173,"focus":174,"status":169,"thumbnail":17,"started":175,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":55,"quietWeeks":62,"stale":22,"active":22},"c4.refinement","refinement","Refine how extracted data is displayed in the dashboard and improve extraction quality where gaps exist.","2026-02-24",{"project":164,"projectLabel":165,"id":117,"num":118,"dir":177,"title":178,"focus":179,"status":169,"thumbnail":17,"started":180,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":49,"quietWeeks":62,"stale":22,"active":22},"c3.oauth","oauth","Add Google OAuth to restrict dashboard access to @qpoint.io team members.","2026-02-20",{"project":9,"projectLabel":10,"id":97,"num":98,"dir":182,"title":183,"focus":17,"status":16,"thumbnail":17,"started":184,"startedSource":32,"closed":20,"closedSource":19,"openWeeks":69,"quietWeeks":118,"stale":34,"active":22},"c17.design-cleanup","Applying Design to the Design Site","2026-03-13",{"project":9,"projectLabel":10,"id":111,"num":112,"dir":186,"title":187,"focus":17,"status":43,"thumbnail":17,"started":184,"startedSource":32,"closed":17,"closedSource":17,"openWeeks":69,"quietWeeks":118,"stale":34,"active":22},"c8.sharing-design-philosophy","Sharing Design Philosophy",{"project":189,"projectLabel":190,"id":74,"num":75,"dir":191,"title":192,"focus":193,"status":43,"thumbnail":17,"started":194,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":62,"quietWeeks":118,"stale":34,"active":22},"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":189,"projectLabel":190,"id":136,"num":21,"dir":196,"title":197,"focus":198,"status":43,"thumbnail":17,"started":199,"startedSource":19,"closed":17,"closedSource":17,"openWeeks":49,"quietWeeks":118,"stale":34,"active":22},"c1.documentation-cleanup","documentation-cleanup","Improve component documentation quality with better examples and human-AI collaborative workflow","2026-02-19",[201,202,203],{"project":46,"projectLabel":47,"id":48,"num":49,"dir":50,"title":51,"focus":17,"status":16,"thumbnail":17,"started":52,"startedSource":19,"closed":52,"closedSource":19,"openWeeks":21,"quietWeeks":33,"stale":22,"active":34},{"project":46,"projectLabel":47,"id":61,"num":62,"dir":63,"title":64,"focus":17,"status":16,"thumbnail":65,"started":66,"startedSource":32,"closed":52,"closedSource":19,"openWeeks":21,"quietWeeks":33,"stale":22,"active":34},{"project":46,"projectLabel":47,"id":74,"num":75,"dir":76,"title":77,"focus":17,"status":78,"thumbnail":79,"started":66,"startedSource":32,"closed":66,"closedSource":32,"openWeeks":21,"quietWeeks":33,"stale":22,"active":34},[205,217,289,312,334,364,393,422,452,474,482,516,549,574,621],{"project":24,"cycle":26,"dir":28,"title":29,"date":18,"lead":17,"long":22,"ast":206},{"type":207,"children":208},"root",[209],{"type":210,"tag":211,"props":212,"children":213},"element","p",{},[214],{"type":215,"value":216},"text","The experiment directory was never committed, so there are no git landings; dates below come from file timestamps. All work landed on 2026-04-03.",{"project":24,"cycle":26,"dir":28,"title":29,"date":18,"lead":17,"long":22,"ast":218},{"type":207,"children":219},[220],{"type":210,"tag":221,"props":222,"children":223},"ul",{},[224],{"type":210,"tag":225,"props":226,"children":227},"li",{},[228,233,235,242,244,250,251,257,258,264,265,271,273,279,281,287],{"type":210,"tag":229,"props":230,"children":231},"strong",{},[232],{"type":215,"value":18},{"type":215,"value":234}," — Baseline copied from c10.real-data (",{"type":210,"tag":236,"props":237,"children":239},"code",{"className":238},[],[240],{"type":215,"value":241},"main.js",{"type":215,"value":243},", ",{"type":210,"tag":236,"props":245,"children":247},{"className":246},[],[248],{"type":215,"value":249},"NodeRegistry.js",{"type":215,"value":243},{"type":210,"tag":236,"props":252,"children":254},{"className":253},[],[255],{"type":215,"value":256},"LiveFeed.js",{"type":215,"value":243},{"type":210,"tag":236,"props":259,"children":261},{"className":260},[],[262],{"type":215,"value":263},"TrailPulse.js",{"type":215,"value":243},{"type":210,"tag":236,"props":266,"children":268},{"className":267},[],[269],{"type":215,"value":270},"trail-texture.js",{"type":215,"value":272},"); ",{"type":210,"tag":236,"props":274,"children":276},{"className":275},[],[277],{"type":215,"value":278},"cycle-creation.md",{"type":215,"value":280}," and ",{"type":210,"tag":236,"props":282,"children":284},{"className":283},[],[285],{"type":215,"value":286},"data\u002Fai-session.js",{"type":215,"value":288}," added — a single mock session extracted from bob-wire dashboard-v1 wireframes, extended with an unexpected secondary call (paste.ee) as a risk-signal demo",{"project":24,"cycle":26,"dir":28,"title":29,"date":18,"lead":17,"long":22,"ast":290},{"type":207,"children":291},[292],{"type":210,"tag":221,"props":293,"children":294},{},[295],{"type":210,"tag":225,"props":296,"children":297},{},[298,302,304,310],{"type":210,"tag":229,"props":299,"children":300},{},[301],{"type":215,"value":18},{"type":215,"value":303}," — ",{"type":210,"tag":236,"props":305,"children":307},{"className":306},[],[308],{"type":215,"value":309},"ExpSessionGraph.r1.vue",{"type":215,"value":311}," — zone layout: linear left-to-right Actors → Infrastructure → Files → External Hosts, directed edges weighted by access count, risk signals (sensitive files red, unexpected hosts orange, pulse rings)",{"project":24,"cycle":26,"dir":28,"title":29,"date":18,"lead":17,"long":22,"ast":313},{"type":207,"children":314},[315],{"type":210,"tag":221,"props":316,"children":317},{},[318],{"type":210,"tag":225,"props":319,"children":320},{},[321,325,326,332],{"type":210,"tag":229,"props":322,"children":323},{},[324],{"type":215,"value":18},{"type":215,"value":303},{"type":210,"tag":236,"props":327,"children":329},{"className":328},[],[330],{"type":215,"value":331},"ExpSessionGraph.r2.vue",{"type":215,"value":333}," — radial layout: agent at center, four arc sectors (User, Infrastructure, Files, External Hosts) with donut-slice backgrounds, spoke weight by access count",{"project":24,"cycle":26,"dir":28,"title":29,"date":18,"lead":17,"long":22,"ast":335},{"type":207,"children":336},[337],{"type":210,"tag":221,"props":338,"children":339},{},[340],{"type":210,"tag":225,"props":341,"children":342},{},[343,347,348,354,356,362],{"type":210,"tag":229,"props":344,"children":345},{},[346],{"type":215,"value":18},{"type":215,"value":303},{"type":210,"tag":236,"props":349,"children":351},{"className":350},[],[352],{"type":215,"value":353},"ExpInfraMap.r1.vue",{"type":215,"value":355}," + ",{"type":210,"tag":236,"props":357,"children":359},{"className":358},[],[360],{"type":215,"value":361},"data\u002Forg-wide.js",{"type":215,"value":363}," — org-wide map: endpoints (grouped dev\u002FCI\u002Fcloud) connect to models via animated traveling dots, edge color = API key used; concentration risk and credential outliers emerge spatially",{"project":24,"cycle":26,"dir":28,"title":29,"date":18,"lead":17,"long":22,"ast":365},{"type":207,"children":366},[367],{"type":210,"tag":221,"props":368,"children":369},{},[370],{"type":210,"tag":225,"props":371,"children":372},{},[373,377,378,384,385,391],{"type":210,"tag":229,"props":374,"children":375},{},[376],{"type":215,"value":18},{"type":215,"value":303},{"type":210,"tag":236,"props":379,"children":381},{"className":380},[],[382],{"type":215,"value":383},"ExpCapSurface.r1.vue",{"type":215,"value":355},{"type":210,"tag":236,"props":386,"children":388},{"className":387},[],[389],{"type":215,"value":390},"data\u002Fcapabilities.js",{"type":215,"value":392}," — capability surface: four MCP server clusters with tool nodes sized by call volume and colored by error rate; never-called tools dimmed as latent capability",{"project":24,"cycle":26,"dir":28,"title":29,"date":18,"lead":17,"long":22,"ast":394},{"type":207,"children":395},[396],{"type":210,"tag":221,"props":397,"children":398},{},[399],{"type":210,"tag":225,"props":400,"children":401},{},[402,406,407,413,414,420],{"type":210,"tag":229,"props":403,"children":404},{},[405],{"type":215,"value":18},{"type":215,"value":303},{"type":210,"tag":236,"props":408,"children":410},{"className":409},[],[411],{"type":215,"value":412},"ExpSessionGraph.r3.vue",{"type":215,"value":355},{"type":210,"tag":236,"props":415,"children":417},{"className":416},[],[418],{"type":215,"value":419},"data\u002Fai-session-timeline.js",{"type":215,"value":421}," — playback iteration: session replayed over a timeline with a session-info overlay",{"project":24,"cycle":26,"dir":28,"title":29,"date":18,"lead":17,"long":22,"ast":423},{"type":207,"children":424},[425],{"type":210,"tag":221,"props":426,"children":427},{},[428],{"type":210,"tag":225,"props":429,"children":430},{},[431,435,436,442,444,450],{"type":210,"tag":229,"props":432,"children":433},{},[434],{"type":215,"value":18},{"type":215,"value":303},{"type":210,"tag":236,"props":437,"children":439},{"className":438},[],[440],{"type":215,"value":441},"ExpInventoryView.r1.vue",{"type":215,"value":443}," \u002F ",{"type":210,"tag":236,"props":445,"children":447},{"className":446},[],[448],{"type":215,"value":449},".r2.vue",{"type":215,"value":451}," — inventory views: grouped entity sidebar with per-item graph view (r1) and profile view (r2)",{"project":24,"cycle":26,"dir":28,"title":29,"date":18,"lead":17,"long":22,"ast":453},{"type":207,"children":454},[455],{"type":210,"tag":221,"props":456,"children":457},{},[458],{"type":210,"tag":225,"props":459,"children":460},{},[461,465,466,472],{"type":210,"tag":229,"props":462,"children":463},{},[464],{"type":215,"value":18},{"type":215,"value":303},{"type":210,"tag":236,"props":467,"children":469},{"className":468},[],[470],{"type":215,"value":471},"App.vue",{"type":215,"value":473}," shell finalized with seven switchable tabs",{"project":36,"cycle":38,"dir":40,"title":41,"date":18,"lead":17,"long":22,"ast":475},{"type":207,"children":476},[477],{"type":210,"tag":211,"props":478,"children":479},{},[480],{"type":215,"value":481},"Architectural refactor: flow objects now own their visual config.",{"project":36,"cycle":38,"dir":40,"title":41,"date":18,"lead":483,"long":22,"ast":484},"`src\u002Fflows\u002FLineFlow.js`",{"type":207,"children":485},[486],{"type":210,"tag":211,"props":487,"children":488},{},[489,498,500,506,508,514],{"type":210,"tag":229,"props":490,"children":491},{},[492],{"type":210,"tag":236,"props":493,"children":495},{"className":494},[],[496],{"type":215,"value":497},"src\u002Fflows\u002FLineFlow.js",{"type":215,"value":499}," — Added ",{"type":210,"tag":236,"props":501,"children":503},{"className":502},[],[504],{"type":215,"value":505},"applyConfig(config)",{"type":215,"value":507},". Accepts flat visual config, reconciles line properties via existing setters, and dynamically adds\u002Fremoves ArrowIndicator\u002FPulseIndicator (always dispose + recreate). Re-applies current flow state after indicator recreation so colors stay consistent. Removed indicator creation from constructor — ",{"type":210,"tag":236,"props":509,"children":511},{"className":510},[],[512],{"type":215,"value":513},"applyConfig",{"type":215,"value":515}," is now the only path.",{"project":36,"cycle":38,"dir":40,"title":41,"date":18,"lead":517,"long":22,"ast":518},"`src\u002Fflows\u002Findex.js`",{"type":207,"children":519},[520],{"type":210,"tag":211,"props":521,"children":522},{},[523,532,534,540,542,547],{"type":210,"tag":229,"props":524,"children":525},{},[526],{"type":210,"tag":236,"props":527,"children":529},{"className":528},[],[530],{"type":215,"value":531},"src\u002Fflows\u002Findex.js",{"type":215,"value":533}," — Removed arrows\u002Fpulse from ",{"type":210,"tag":236,"props":535,"children":537},{"className":536},[],[538],{"type":215,"value":539},"createFlow",{"type":215,"value":541},"; indicators come exclusively through ",{"type":210,"tag":236,"props":543,"children":545},{"className":544},[],[546],{"type":215,"value":513},{"type":215,"value":548},".",{"project":36,"cycle":38,"dir":40,"title":41,"date":18,"lead":550,"long":22,"ast":551},"`src\u002Fcomponents\u002FQMap.vue`",{"type":207,"children":552},[553],{"type":210,"tag":211,"props":554,"children":555},{},[556,565,566,572],{"type":210,"tag":229,"props":557,"children":558},{},[559],{"type":210,"tag":236,"props":560,"children":562},{"className":561},[],[563],{"type":215,"value":564},"src\u002Fcomponents\u002FQMap.vue",{"type":215,"value":499},{"type":210,"tag":236,"props":567,"children":569},{"className":568},[],[570],{"type":215,"value":571},"flowConfig",{"type":215,"value":573}," computed as single source of truth for all flow visual config. Replaced individual prop getters and ~40 lines of per-property flow watchers. QMap now has no knowledge of how flows render.",{"project":36,"cycle":38,"dir":40,"title":41,"date":18,"lead":575,"long":22,"ast":576},"`useActorSelection` + `useHighlightedDataflows`",{"type":207,"children":577},[578],{"type":210,"tag":211,"props":579,"children":580},{},[581,597,599,604,606,611,613,619],{"type":210,"tag":229,"props":582,"children":583},{},[584,590,591],{"type":210,"tag":236,"props":585,"children":587},{"className":586},[],[588],{"type":215,"value":589},"useActorSelection",{"type":215,"value":355},{"type":210,"tag":236,"props":592,"children":594},{"className":593},[],[595],{"type":215,"value":596},"useHighlightedDataflows",{"type":215,"value":598}," — Accept ",{"type":210,"tag":236,"props":600,"children":602},{"className":601},[],[603],{"type":215,"value":571},{"type":215,"value":605}," ref. On flow creation: immediate ",{"type":210,"tag":236,"props":607,"children":609},{"className":608},[],[610],{"type":215,"value":513},{"type":215,"value":612}," call + ",{"type":210,"tag":236,"props":614,"children":616},{"className":615},[],[617],{"type":215,"value":618},"watch(flowConfig, config => flow.applyConfig(config))",{"type":215,"value":620},". Stop functions managed alongside flow disposal.",{"project":36,"cycle":38,"dir":40,"title":41,"date":18,"lead":622,"long":22,"ast":623},"`src\u002Fflows\u002FArrowIndicator.js`",{"type":207,"children":624},[625],{"type":210,"tag":211,"props":626,"children":627},{},[628,637,639,645],{"type":210,"tag":229,"props":629,"children":630},{},[631],{"type":210,"tag":236,"props":632,"children":634},{"className":633},[],[635],{"type":215,"value":636},"src\u002Fflows\u002FArrowIndicator.js",{"type":215,"value":638}," — Direction-aware cone orientation: tangent negated when ",{"type":210,"tag":236,"props":640,"children":642},{"className":641},[],[643],{"type":215,"value":644},"_flowDirection \u003C 0",{"type":215,"value":646}," so tip always points in the direction of travel. Sliding mode trail offset also flips direction so the trail always sits behind the lead cone.",[648,653,709],{"id":9,"label":10,"commits":649},[650],{"repo":9,"sha":651,"date":52,"subject":652,"pr":17},"bb2490ecce","update project history pages + dep cleanup",{"id":46,"label":47,"commits":654},[655,658,661,664,667,670,673,676,679,682,685,688,691,694,697,700,703,706],{"repo":46,"sha":656,"date":52,"subject":657,"pr":17},"2beed75","updates to new wireframe",{"repo":46,"sha":659,"date":52,"subject":660,"pr":17},"6136847","c7: expand history entry with deploy workflow, key decisions, and Cloudflare migration note",{"repo":46,"sha":662,"date":52,"subject":663,"pr":17},"67bbc68","deploy fix",{"repo":46,"sha":665,"date":52,"subject":666,"pr":17},"b0e65e5","github deploy",{"repo":46,"sha":668,"date":52,"subject":669,"pr":17},"801d2ac","close c7: github pages deploy",{"repo":46,"sha":671,"date":52,"subject":672,"pr":17},"47a606c","c5: finalize data models, brief, and history entry",{"repo":46,"sha":674,"date":52,"subject":675,"pr":17},"a98c1f3","c6: full dashboard prototype — 25 wireframe pages across all inventory entity types",{"repo":46,"sha":677,"date":52,"subject":678,"pr":17},"d4a2ebc","cleaned up verbiage",{"repo":46,"sha":680,"date":66,"subject":681,"pr":17},"09900d8","added skills",{"repo":46,"sha":683,"date":66,"subject":684,"pr":17},"e51b36a","clarity edits",{"repo":46,"sha":686,"date":66,"subject":687,"pr":17},"3aa266d","removed network nonsense",{"repo":46,"sha":689,"date":66,"subject":690,"pr":17},"f537fb0","simpler text",{"repo":46,"sha":692,"date":66,"subject":693,"pr":17},"d414e79","typo",{"repo":46,"sha":695,"date":66,"subject":696,"pr":17},"67edf2e","udpated intro",{"repo":46,"sha":698,"date":66,"subject":699,"pr":17},"a28004c","updated title",{"repo":46,"sha":701,"date":66,"subject":702,"pr":17},"9a5962a","c5: add ai-agents-reframe brief",{"repo":46,"sha":704,"date":66,"subject":705,"pr":17},"f1f9bfe","c5: dashboard reframing — cycle setup, research, and data models",{"repo":46,"sha":707,"date":66,"subject":708,"pr":17},"fc69ebc","c4: AI agents entity wireframes, c5 dashboard reframing cycle, c2 dataflows restructure",{"id":710,"label":710,"commits":711},"qcontrol",[712,716,719,722,725,728,731,734,737,740,743,746,749,752,756,760,763,766,769,773,776,779,782,785,788,792,796,801,805,809,813,817,821,825],{"repo":710,"sha":713,"date":18,"subject":714,"pr":715},"3b43f36b9","Merge pull request #90 from qpoint-io\u002Ffeat\u002Fselective-mitm-simplified",90,{"repo":710,"sha":717,"date":18,"subject":718,"pr":17},"328c3a942","Tighten selective MITM edge cases",{"repo":710,"sha":720,"date":18,"subject":721,"pr":17},"1594372ea","Wire up learned exceptions",{"repo":710,"sha":723,"date":18,"subject":724,"pr":17},"d2ccf6d4e","Add proxy mitm exceptions",{"repo":710,"sha":726,"date":18,"subject":727,"pr":17},"3c1885aaf","Cleanup the MITM context foundation",{"repo":710,"sha":729,"date":18,"subject":730,"pr":17},"2fbbe17c6","Discover proxy client attribution",{"repo":710,"sha":732,"date":18,"subject":733,"pr":17},"eca469a6e","Simply proxy-no-proxy selection in wrap command directly",{"repo":710,"sha":735,"date":52,"subject":736,"pr":17},"84ae056bc","Harden policy defaults and TLS exclusion learning",{"repo":710,"sha":738,"date":52,"subject":739,"pr":17},"4d92c7f04","Add has_http_plugins to all test RuntimeDriver impls",{"repo":710,"sha":741,"date":52,"subject":742,"pr":17},"45ea4d0ce","Add selective MITM design doc",{"repo":710,"sha":744,"date":52,"subject":745,"pr":17},"a3ed15664","Fix transient handshake poisoning, collapse prefer_* actions",{"repo":710,"sha":747,"date":52,"subject":748,"pr":17},"6443eb7c7","Fix test compilation, add conflicts_with, seed default policy.toml",{"repo":710,"sha":750,"date":52,"subject":751,"pr":17},"0a8804965","Implement selective MITM with auto-mode, learned exclusions, and policy.toml",{"repo":710,"sha":753,"date":52,"subject":754,"pr":755},"0a791c5b8","Merge pull request #87 from qpoint-io\u002Fcodex\u002Freadme-quickstart-note",87,{"repo":710,"sha":757,"date":52,"subject":758,"pr":759},"3b83d3e80","Merge pull request #86 from qpoint-io\u002Fcodex\u002Fwarn-wrap-init",86,{"repo":710,"sha":761,"date":52,"subject":762,"pr":17},"b5ecb566f","Clarify the trust status and add docs for clarity",{"repo":710,"sha":764,"date":52,"subject":765,"pr":17},"9b5fc5110","Tighten macOS wrap trust warning",{"repo":710,"sha":767,"date":52,"subject":768,"pr":17},"7dc5587c7","Warn about macOS wrap trust setup",{"repo":710,"sha":770,"date":52,"subject":771,"pr":772},"37463d2a0","Merge pull request #85 from qpoint-io\u002Fcodex\u002Ffix-child-ca-bundle-roots",85,{"repo":710,"sha":774,"date":52,"subject":775,"pr":17},"86f246f4f","Don't clobber custom CA; create final merge",{"repo":710,"sha":777,"date":52,"subject":778,"pr":17},"e0c22583e","Remove installation notes from README",{"repo":710,"sha":780,"date":52,"subject":781,"pr":17},"6692b9592","Clarify README trust-store note",{"repo":710,"sha":783,"date":52,"subject":784,"pr":17},"ab1496d7a","Add README quick start note",{"repo":710,"sha":786,"date":52,"subject":787,"pr":17},"0420dfb16","Fix child CA bundle roots",{"repo":710,"sha":789,"date":66,"subject":790,"pr":791},"e3a4f62fc","use --version flag with git info (#84)",84,{"repo":710,"sha":793,"date":66,"subject":794,"pr":795},"19d657aae","fix: default to http\u002F1.1 upstream when client sends empty ALPN (#83)",83,{"repo":710,"sha":797,"date":798,"subject":799,"pr":800},"5c0c8e84d","2026-03-31","docs: add install instructions to README (#75)",75,{"repo":710,"sha":802,"date":798,"subject":803,"pr":804},"2aedbf0e5","Disable MITM explicitly with flag (#82)",82,{"repo":710,"sha":806,"date":798,"subject":807,"pr":808},"4208b598d","Replace manual pump loops with TeeIo + copy_bidirectional (#81)",81,{"repo":710,"sha":810,"date":798,"subject":811,"pr":812},"4da101739","add debug log on proxy setup err (#80)",80,{"repo":710,"sha":814,"date":4,"subject":815,"pr":816},"21da1eb39","adds version subcommand (git tag or short hash, embedded at build time) (#77)",77,{"repo":710,"sha":818,"date":4,"subject":819,"pr":820},"e8354906a","Add proxy debugging (#76)",76,{"repo":710,"sha":822,"date":4,"subject":823,"pr":824},"c21329e05","adds TCP keepalive on upstream proxy connections (60s idle\u002Finterval) (#73)",73,{"repo":710,"sha":826,"date":4,"subject":827,"pr":828},"155cf4171","Proxy cleanup and stability (#74)",74,[],[],[],[],[],[835],"Deploys come from this checkout's deploy-branch reflog, which starts 2026-10-16.",1794686605470]