[{"data":1,"prerenderedAt":228},["ShallowReactive",2],{"$fM7dLJXAaGteUFK8k5g70yvJWHXhuCu43mD6dggDUa3c":3},{"newThing":4,"project":5,"cycle":9,"sections":23,"threads":184,"otherDocs":185,"documents":186,"images":187,"archiveItems":225,"links":226},"Single-dataflow detail with per-actor context toggling",{"id":6,"label":7,"liveBase":8},"qmap","Qmap",null,{"id":10,"num":11,"dir":12,"name":13,"title":14,"focus":15,"status":16,"statusNote":8,"created":17,"completed":8,"mode":8,"report":8,"recordless":18,"thumbnail":19,"imageCount":20,"artifactCount":21,"lastActivity":22,"hasPickup":18,"hasInitialPrompt":18},"c17",17,"c17.dataflow-detail","dataflow-detail","Dataflow Detail","Single dataflow detail view with per-actor context toggling","unlisted","2026-03-23",false,"\u002Fcycles\u002Fqmap\u002Fc17-checkout-stripe.png",9,0,"2026-08-15",[24,38,48,159],{"key":25,"title":26,"empty":18,"ast":27},"why","Why",{"type":28,"children":29},"root",[30],{"type":31,"tag":32,"props":33,"children":34},"element","p",{},[35],{"type":36,"value":37},"text","The app needs a focused view for individual dataflow detail pages — exactly two actors (source → destination) connected by a single flow line, sitting at the top of a \"Dataflow\" detail page. Unlike the full map, this view lets users toggle context per actor: revealing boundary rugs (Security Zone, Team, Region) that show where each actor sits in the broader system, without the noise of the full network map.",{"key":39,"title":40,"empty":18,"ast":41},"objective","Objective",{"type":28,"children":42},[43],{"type":31,"tag":32,"props":44,"children":45},{},[46],{"type":36,"value":47},"Build a view state for showing a single dataflow with larger actors, and allow toggling contexts independently for the source and the destination actor.",{"key":49,"title":50,"empty":18,"ast":51},"key-changes","Key Changes",{"type":28,"children":52},[53],{"type":31,"tag":54,"props":55,"children":56},"ul",{},[57],{"type":31,"tag":58,"props":59,"children":60},"li",{},[61,63,70,72],{"type":36,"value":62},"2026-03-23 — Landed in the ",{"type":31,"tag":64,"props":65,"children":67},"code",{"className":66},[],[68],{"type":36,"value":69},"qmap c14+ release",{"type":36,"value":71}," commit alongside the broader visualization engine:\n",{"type":31,"tag":54,"props":73,"children":74},{},[75,96,133,146],{"type":31,"tag":58,"props":76,"children":77},{},[78,80,86,88,94],{"type":36,"value":79},"New ",{"type":31,"tag":64,"props":81,"children":83},{"className":82},[],[84],{"type":36,"value":85},"QMapDataflow",{"type":36,"value":87}," wrapper component promoted to ",{"type":31,"tag":64,"props":89,"children":91},{"className":90},[],[92],{"type":36,"value":93},"src\u002Fcomponents\u002F",{"type":36,"value":95}," and exported from the library",{"type":31,"tag":58,"props":97,"children":98},{},[99,101,107,109,115,117,123,125,131],{"type":36,"value":100},"Per-actor context toggling via ",{"type":31,"tag":64,"props":102,"children":104},{"className":103},[],[105],{"type":36,"value":106},"sourceContexts",{"type":36,"value":108}," \u002F ",{"type":31,"tag":64,"props":110,"children":112},{"className":111},[],[113],{"type":36,"value":114},"destinationContexts",{"type":36,"value":116}," props; dynamic ",{"type":31,"tag":64,"props":118,"children":120},{"className":119},[],[121],{"type":36,"value":122},"visibleActors",{"type":36,"value":124}," (focal actors + context siblings sharing tag values) and ",{"type":31,"tag":64,"props":126,"children":128},{"className":127},[],[129],{"type":36,"value":130},"groupBy",{"type":36,"value":132}," computed from active context keys",{"type":31,"tag":58,"props":134,"children":135},{},[136,138,144],{"type":36,"value":137},"Reused ",{"type":31,"tag":64,"props":139,"children":141},{"className":140},[],[142],{"type":36,"value":143},"useHighlightedDataflows",{"type":36,"value":145}," for focal actor scaling and non-focal dimming",{"type":31,"tag":58,"props":147,"children":148},{},[149,151,157],{"type":36,"value":150},"Experiment harness at ",{"type":31,"tag":64,"props":152,"children":154},{"className":153},[],[155],{"type":36,"value":156},"dev\u002Fexperiments\u002Fc17.dataflow-detail\u002F",{"type":36,"value":158}," with a focal-dataflow picker and per-actor context toggle buttons; test data of 10 actors across 3 security zones and 3 teams, 10 dataflows, 5 curated focal selections",{"key":160,"title":161,"empty":18,"ast":162},"outcome","Outcome",{"type":28,"children":163},[164],{"type":31,"tag":32,"props":165,"children":166},{},[167,169,174,176,182],{"type":36,"value":168},"Initial scaffold worked: the ",{"type":31,"tag":64,"props":170,"children":172},{"className":171},[],[173],{"type":36,"value":85},{"type":36,"value":175}," wrapper shipped in the library and the experiment demonstrated per-actor context toggling over curated focal dataflows. Visual tuning and camera framing for 2-actor scenes were left open. c19 rebuilt this wrapper on the c18 config schema system (config-driven props, ",{"type":31,"tag":64,"props":177,"children":179},{"className":178},[],[180],{"type":36,"value":181},"DATAFLOW_DEFAULTS",{"type":36,"value":183},"), which replaced the hardcoded props from this cycle.",[],[],[],[188,194,198,202,206,210,214,218,221],{"src":19,"kind":189,"order":190,"caption":191,"capturedAt":192,"route":193},"hero",10,"Checkout → Stripe, no context","2026-08-15T23:43:05.086Z","\u002Fexperiments\u002Fc17.dataflow-detail\u002F",{"src":195,"kind":189,"order":196,"caption":197,"capturedAt":192,"route":193},"\u002Fcycles\u002Fqmap\u002Fc17-zones.png",11,"Security zones toggled on both ends — the cross-zone story",{"src":199,"kind":189,"order":200,"caption":201,"capturedAt":192,"route":193},"\u002Fcycles\u002Fqmap\u002Fc17-zones-teams.png",12,"Zones + team context — rugs stack",{"src":203,"kind":189,"order":204,"caption":205,"capturedAt":192,"route":193},"\u002Fcycles\u002Fqmap\u002Fc17-full-context.png",13,"Every context on — maximum situational grounding",{"src":207,"kind":189,"order":208,"caption":209,"capturedAt":192,"route":193},"\u002Fcycles\u002Fqmap\u002Fc17-gateway-checkout.png",14,"API Gateway → Checkout — internal routing",{"src":211,"kind":189,"order":212,"caption":213,"capturedAt":192,"route":193},"\u002Fcycles\u002Fqmap\u002Fc17-notifications-sendgrid.png",15,"Notifications → SendGrid — external email egress",{"src":215,"kind":189,"order":216,"caption":217,"capturedAt":192,"route":193},"\u002Fcycles\u002Fqmap\u002Fc17-orders-db.png",16,"Checkout → Orders DB — the database write",{"src":219,"kind":189,"order":11,"caption":220,"capturedAt":192,"route":193},"\u002Fcycles\u002Fqmap\u002Fc17-datadog.png","User Service → Datadog — observability flow",{"src":222,"kind":189,"order":223,"capturedAt":224,"route":193},"\u002Fcycles\u002Fqmap\u002Fc17-dataflow-detail.png",4999,"2026-08-15T16:38:17.067Z",[],[227],{"route":193,"href":8},1794599434314]