[{"data":1,"prerenderedAt":1046},["ShallowReactive",2],{"cycle-doc-design-c140-findings.md":3},{"cycle":4,"project":7,"path":10,"title":11,"toc":12,"ast":17},{"id":5,"title":6},"c140","Surface Evaluation",{"id":8,"label":9},"design","Design","findings.md","c140 findings: the QGUIkit surface, scored",[13,14,15,16],"The verdict","The scores","How cumbersome are two surfaces? The honest answer","What to do",{"type":18,"children":19},"root",[20,90,96,101,136,141,146,151,156,739,744,805,810,820,894,899,904,912,1003,1021],{"type":21,"tag":22,"props":23,"children":24},"element","p",{},[25,32,34,41,43,48,50,57,59,65,67,73,74,80,82,88],{"type":21,"tag":26,"props":27,"children":28},"strong",{},[29],{"type":30,"value":31},"text","2026-11-12.",{"type":30,"value":33}," Read at qnative ",{"type":21,"tag":35,"props":36,"children":38},"code",{"className":37},[],[39],{"type":30,"value":40},"main",{"type":30,"value":42}," e609f42, design ",{"type":21,"tag":35,"props":44,"children":46},{"className":45},[],[47],{"type":30,"value":40},{"type":30,"value":49}," 4453a8c085 (5e12709e36 by the last reader, after the c139 merge), the layer at e7e1454. The rubric is in ",{"type":21,"tag":51,"props":52,"children":54},"a",{"href":53},"plan",[55],{"type":30,"value":56},"the plan",{"type":30,"value":58},", written before the evidence. The full evidence, file by file, is on the report pages: ",{"type":21,"tag":51,"props":60,"children":62},{"href":61},"\u002Fcycles\u002Fdesign\u002Fc140\u002Fscorecard",[63],{"type":30,"value":64},"Two Surfaces, Scored",{"type":30,"value":66}," · ",{"type":21,"tag":51,"props":68,"children":70},{"href":69},"\u002Fcycles\u002Fdesign\u002Fc140\u002Fparity",[71],{"type":30,"value":72},"The Cost of Two Surfaces",{"type":30,"value":66},{"type":21,"tag":51,"props":75,"children":77},{"href":76},"\u002Fcycles\u002Fdesign\u002Fc140\u002Ftools",[78],{"type":30,"value":79},"Skills and Tools",{"type":30,"value":81},". Their data is ",{"type":21,"tag":35,"props":83,"children":85},{"className":84},[],[86],{"type":30,"value":87},"app\u002Fdata\u002Fc140-evaluation.ts",{"type":30,"value":89},".",{"type":21,"tag":91,"props":92,"children":94},"h2",{"id":93},"the-verdict",[95],{"type":30,"value":13},{"type":21,"tag":22,"props":97,"children":98},{},[99],{"type":30,"value":100},"A fast, faithful port with honest data boundaries, held together by attention. Where a machine holds the work, it is sound: the crate graph, the generated types, the worlds' contract test, the stream vectors, the budget. Where a person was meant to remember, it is soft:",{"type":21,"tag":102,"props":103,"children":104},"ul",{},[105,111,116,121,126,131],{"type":21,"tag":106,"props":107,"children":108},"li",{},[109],{"type":30,"value":110},"type set by 433 literals;",{"type":21,"tag":106,"props":112,"children":113},{},[114],{"type":30,"value":115},"one slot kind of three;",{"type":21,"tag":106,"props":117,"children":118},{},[119],{"type":30,"value":120},"keyboard access in one component;",{"type":21,"tag":106,"props":122,"children":123},{},[124],{"type":30,"value":125},"half the names changed;",{"type":21,"tag":106,"props":127,"children":128},{},[129],{"type":30,"value":130},"a scorecard stale within a day;",{"type":21,"tag":106,"props":132,"children":133},{},[134],{"type":30,"value":135},"public docs that do not know the second surface exists.",{"type":21,"tag":22,"props":137,"children":138},{},[139],{"type":30,"value":140},"The correction is not a rewrite. It is to move the eye-held half to machines, and to start writing down where the surfaces differ on purpose.",{"type":21,"tag":22,"props":142,"children":143},{},[144],{"type":30,"value":145},"No row scores 5, three score 4, eleven score 3, six score 2.",{"type":21,"tag":91,"props":147,"children":149},{"id":148},"the-scores",[150],{"type":30,"value":14},{"type":21,"tag":22,"props":152,"children":153},{},[154],{"type":30,"value":155},"Scale: 5 by construction · 4 in practice · 3 mostly, with named exceptions · 2 only where someone was careful · 1 does not hold. Trend is the QGUIkit surface against the Vue surface on the same principle.",{"type":21,"tag":157,"props":158,"children":159},"table",{},[160,194],{"type":21,"tag":161,"props":162,"children":163},"thead",{},[164],{"type":21,"tag":165,"props":166,"children":167},"tr",{},[168,174,179,184,189],{"type":21,"tag":169,"props":170,"children":171},"th",{},[172],{"type":30,"value":173},"#",{"type":21,"tag":169,"props":175,"children":176},{},[177],{"type":30,"value":178},"Principle",{"type":21,"tag":169,"props":180,"children":181},{},[182],{"type":30,"value":183},"Score",{"type":21,"tag":169,"props":185,"children":186},{},[187],{"type":30,"value":188},"Trend",{"type":21,"tag":169,"props":190,"children":191},{},[192],{"type":30,"value":193},"In a line",{"type":21,"tag":195,"props":196,"children":197},"tbody",{},[198,227,258,284,309,335,361,387,414,440,473,499,525,551,580,606,632,658,684,710],{"type":21,"tag":165,"props":199,"children":200},{},[201,207,212,217,222],{"type":21,"tag":202,"props":203,"children":204},"td",{},[205],{"type":30,"value":206},"1",{"type":21,"tag":202,"props":208,"children":209},{},[210],{"type":30,"value":211},"Modularity",{"type":21,"tag":202,"props":213,"children":214},{},[215],{"type":30,"value":216},"3",{"type":21,"tag":202,"props":218,"children":219},{},[220],{"type":30,"value":221},"same",{"type":21,"tag":202,"props":223,"children":224},{},[225],{"type":30,"value":226},"Real units and a clean crate boundary. Four of the biggest files are several components and an engine each.",{"type":21,"tag":165,"props":228,"children":229},{},[230,235,240,248,253],{"type":21,"tag":202,"props":231,"children":232},{},[233],{"type":30,"value":234},"2",{"type":21,"tag":202,"props":236,"children":237},{},[238],{"type":30,"value":239},"Clean data boundaries",{"type":21,"tag":202,"props":241,"children":242},{},[243],{"type":21,"tag":26,"props":244,"children":245},{},[246],{"type":30,"value":247},"4",{"type":21,"tag":202,"props":249,"children":250},{},[251],{"type":30,"value":252},"better",{"type":21,"tag":202,"props":254,"children":255},{},[256],{"type":30,"value":257},"The layer cannot see a source (5). The pages go page → repository → nozzle, with four named leaks (3).",{"type":21,"tag":165,"props":259,"children":260},{},[261,265,270,274,279],{"type":21,"tag":202,"props":262,"children":263},{},[264],{"type":30,"value":216},{"type":21,"tag":202,"props":266,"children":267},{},[268],{"type":30,"value":269},"Composition over configuration",{"type":21,"tag":202,"props":271,"children":272},{},[273],{"type":30,"value":216},{"type":21,"tag":202,"props":275,"children":276},{},[277],{"type":30,"value":278},"worse",{"type":21,"tag":202,"props":280,"children":281},{},[282],{"type":30,"value":283},"DataMachine kept its six slots. Elsewhere the builder pattern pulled toward flags, typed children and pre-built cells.",{"type":21,"tag":165,"props":285,"children":286},{},[287,291,296,300,304],{"type":21,"tag":202,"props":288,"children":289},{},[290],{"type":30,"value":247},{"type":21,"tag":202,"props":292,"children":293},{},[294],{"type":30,"value":295},"View complexity contained",{"type":21,"tag":202,"props":297,"children":298},{},[299],{"type":30,"value":216},{"type":21,"tag":202,"props":301,"children":302},{},[303],{"type":30,"value":278},{"type":21,"tag":202,"props":305,"children":306},{},[307],{"type":30,"value":308},"The table owns its hard internals. The page wires back sort, filter, columns and the sticky band.",{"type":21,"tag":165,"props":310,"children":311},{},[312,317,322,326,330],{"type":21,"tag":202,"props":313,"children":314},{},[315],{"type":30,"value":316},"5",{"type":21,"tag":202,"props":318,"children":319},{},[320],{"type":30,"value":321},"Low knowledge of context",{"type":21,"tag":202,"props":323,"children":324},{},[325],{"type":30,"value":216},{"type":21,"tag":202,"props":327,"children":328},{},[329],{"type":30,"value":221},{"type":21,"tag":202,"props":331,"children":332},{},[333],{"type":30,"value":334},"No component knows the rail or the window. Several know the page's margins and the viewport.",{"type":21,"tag":165,"props":336,"children":337},{},[338,343,348,352,356],{"type":21,"tag":202,"props":339,"children":340},{},[341],{"type":30,"value":342},"6",{"type":21,"tag":202,"props":344,"children":345},{},[346],{"type":30,"value":347},"Slots",{"type":21,"tag":202,"props":349,"children":350},{},[351],{"type":30,"value":216},{"type":21,"tag":202,"props":353,"children":354},{},[355],{"type":30,"value":278},{"type":21,"tag":202,"props":357,"children":358},{},[359],{"type":30,"value":360},"GPUI has all three kinds. We use named slots (4); the default (1) and scoped slots (1) are not used.",{"type":21,"tag":165,"props":362,"children":363},{},[364,369,374,378,382],{"type":21,"tag":202,"props":365,"children":366},{},[367],{"type":30,"value":368},"7",{"type":21,"tag":202,"props":370,"children":371},{},[372],{"type":30,"value":373},"Brand tokens",{"type":21,"tag":202,"props":375,"children":376},{},[377],{"type":30,"value":234},{"type":21,"tag":202,"props":379,"children":380},{},[381],{"type":30,"value":278},{"type":21,"tag":202,"props":383,"children":384},{},[385],{"type":30,"value":386},"Colour travels and matches today (4). Type, radius and spacing do not travel (1). Nothing notices drift.",{"type":21,"tag":165,"props":388,"children":389},{},[390,395,400,404,409],{"type":21,"tag":202,"props":391,"children":392},{},[393],{"type":30,"value":394},"8",{"type":21,"tag":202,"props":396,"children":397},{},[398],{"type":30,"value":399},"Two surfaces",{"type":21,"tag":202,"props":401,"children":402},{},[403],{"type":30,"value":234},{"type":21,"tag":202,"props":405,"children":406},{},[407],{"type":30,"value":408},"n\u002Fa",{"type":21,"tag":202,"props":410,"children":411},{},[412],{"type":30,"value":413},"Data contracts are machine-held (4). Components and pages are held by hand and eye (2). Divergences are not written down (1).",{"type":21,"tag":165,"props":415,"children":416},{},[417,422,427,431,435],{"type":21,"tag":202,"props":418,"children":419},{},[420],{"type":30,"value":421},"9",{"type":21,"tag":202,"props":423,"children":424},{},[425],{"type":30,"value":426},"Functional; colour is semantic",{"type":21,"tag":202,"props":428,"children":429},{},[430],{"type":30,"value":216},{"type":21,"tag":202,"props":432,"children":433},{},[434],{"type":30,"value":221},{"type":21,"tag":202,"props":436,"children":437},{},[438],{"type":30,"value":439},"Variants, not colours. The variant sets are too small, so pages paint their own.",{"type":21,"tag":165,"props":441,"children":442},{},[443,448,453,457,461],{"type":21,"tag":202,"props":444,"children":445},{},[446],{"type":30,"value":447},"10",{"type":21,"tag":202,"props":449,"children":450},{},[451],{"type":30,"value":452},"Native to the medium",{"type":21,"tag":202,"props":454,"children":455},{},[456],{"type":30,"value":216},{"type":21,"tag":202,"props":458,"children":459},{},[460],{"type":30,"value":221},{"type":21,"tag":202,"props":462,"children":463},{},[464,466,472],{"type":30,"value":465},"Reads as GPUI, but five private traits reimplement ",{"type":21,"tag":35,"props":467,"children":469},{"className":468},[],[470],{"type":30,"value":471},".when()",{"type":30,"value":89},{"type":21,"tag":165,"props":474,"children":475},{},[476,481,486,490,494],{"type":21,"tag":202,"props":477,"children":478},{},[479],{"type":30,"value":480},"11",{"type":21,"tag":202,"props":482,"children":483},{},[484],{"type":30,"value":485},"Progressive enhancement",{"type":21,"tag":202,"props":487,"children":488},{},[489],{"type":30,"value":216},{"type":21,"tag":202,"props":491,"children":492},{},[493],{"type":30,"value":221},{"type":21,"tag":202,"props":495,"children":496},{},[497],{"type":30,"value":498},"The bases are simple. Missing small primitives get redrawn per page.",{"type":21,"tag":165,"props":500,"children":501},{},[502,507,512,516,520],{"type":21,"tag":202,"props":503,"children":504},{},[505],{"type":30,"value":506},"12",{"type":21,"tag":202,"props":508,"children":509},{},[510],{"type":30,"value":511},"Accessibility by default",{"type":21,"tag":202,"props":513,"children":514},{},[515],{"type":30,"value":234},{"type":21,"tag":202,"props":517,"children":518},{},[519],{"type":30,"value":278},{"type":21,"tag":202,"props":521,"children":522},{},[523],{"type":30,"value":524},"The table is accessible; nothing else is. GPUI gives nothing for free.",{"type":21,"tag":165,"props":526,"children":527},{},[528,533,538,542,546],{"type":21,"tag":202,"props":529,"children":530},{},[531],{"type":30,"value":532},"13",{"type":21,"tag":202,"props":534,"children":535},{},[536],{"type":30,"value":537},"States are explicit",{"type":21,"tag":202,"props":539,"children":540},{},[541],{"type":30,"value":234},{"type":21,"tag":202,"props":543,"children":544},{},[545],{"type":30,"value":278},{"type":21,"tag":202,"props":547,"children":548},{},[549],{"type":30,"value":550},"Hover only (2). The data states have one shape but are drawn per page and never tested (3).",{"type":21,"tag":165,"props":552,"children":553},{},[554,559,564,571,575],{"type":21,"tag":202,"props":555,"children":556},{},[557],{"type":30,"value":558},"14",{"type":21,"tag":202,"props":560,"children":561},{},[562],{"type":30,"value":563},"Replicate first",{"type":21,"tag":202,"props":565,"children":566},{},[567],{"type":21,"tag":26,"props":568,"children":569},{},[570],{"type":30,"value":247},{"type":21,"tag":202,"props":572,"children":573},{},[574],{"type":30,"value":221},{"type":21,"tag":202,"props":576,"children":577},{},[578],{"type":30,"value":579},"Every page was measured before it was drawn, and every oddity was decided. The record was nearly lost.",{"type":21,"tag":165,"props":581,"children":582},{},[583,588,593,597,601],{"type":21,"tag":202,"props":584,"children":585},{},[586],{"type":30,"value":587},"15",{"type":21,"tag":202,"props":589,"children":590},{},[591],{"type":30,"value":592},"The demo is the test",{"type":21,"tag":202,"props":594,"children":595},{},[596],{"type":30,"value":216},{"type":21,"tag":202,"props":598,"children":599},{},[600],{"type":30,"value":221},{"type":21,"tag":202,"props":602,"children":603},{},[604],{"type":30,"value":605},"Every state is drawn. Only the newest pages are real tests.",{"type":21,"tag":165,"props":607,"children":608},{},[609,614,619,623,627],{"type":21,"tag":202,"props":610,"children":611},{},[612],{"type":30,"value":613},"16",{"type":21,"tag":202,"props":615,"children":616},{},[617],{"type":30,"value":618},"Size and motion",{"type":21,"tag":202,"props":620,"children":621},{},[622],{"type":30,"value":216},{"type":21,"tag":202,"props":624,"children":625},{},[626],{"type":30,"value":221},{"type":21,"tag":202,"props":628,"children":629},{},[630],{"type":30,"value":631},"Named size steps. Neither surface has motion tokens, and the written rule is out of date on both.",{"type":21,"tag":165,"props":633,"children":634},{},[635,640,645,649,653],{"type":21,"tag":202,"props":636,"children":637},{},[638],{"type":30,"value":639},"17",{"type":21,"tag":202,"props":641,"children":642},{},[643],{"type":30,"value":644},"The unified pantry",{"type":21,"tag":202,"props":646,"children":647},{},[648],{"type":30,"value":216},{"type":21,"tag":202,"props":650,"children":651},{},[652],{"type":30,"value":221},{"type":21,"tag":202,"props":654,"children":655},{},[656],{"type":30,"value":657},"The vocabulary is in the layer. Small pantry pieces sit in the pages, and domain data sits in the layer.",{"type":21,"tag":165,"props":659,"children":660},{},[661,666,671,675,679],{"type":21,"tag":202,"props":662,"children":663},{},[664],{"type":30,"value":665},"18",{"type":21,"tag":202,"props":667,"children":668},{},[669],{"type":30,"value":670},"Documentation architecture",{"type":21,"tag":202,"props":672,"children":673},{},[674],{"type":30,"value":234},{"type":21,"tag":202,"props":676,"children":677},{},[678],{"type":30,"value":278},{"type":21,"tag":202,"props":680,"children":681},{},[682],{"type":30,"value":683},"Good native docs, in the wrong place: inside the library and inside developer mode.",{"type":21,"tag":165,"props":685,"children":686},{},[687,692,697,701,705],{"type":21,"tag":202,"props":688,"children":689},{},[690],{"type":30,"value":691},"19",{"type":21,"tag":202,"props":693,"children":694},{},[695],{"type":30,"value":696},"Naming",{"type":21,"tag":202,"props":698,"children":699},{},[700],{"type":30,"value":234},{"type":21,"tag":202,"props":702,"children":703},{},[704],{"type":30,"value":278},{"type":21,"tag":202,"props":706,"children":707},{},[708],{"type":30,"value":709},"The crate promises the web's names and keeps about half.",{"type":21,"tag":165,"props":711,"children":712},{},[713,718,723,730,734],{"type":21,"tag":202,"props":714,"children":715},{},[716],{"type":30,"value":717},"20",{"type":21,"tag":202,"props":719,"children":720},{},[721],{"type":30,"value":722},"The budget",{"type":21,"tag":202,"props":724,"children":725},{},[726],{"type":21,"tag":26,"props":727,"children":728},{},[729],{"type":30,"value":247},{"type":21,"tag":202,"props":731,"children":732},{},[733],{"type":30,"value":252},{"type":21,"tag":202,"props":735,"children":736},{},[737],{"type":30,"value":738},"A principle the web never wrote down, kept best of all.",{"type":21,"tag":22,"props":740,"children":741},{},[742],{"type":30,"value":743},"Rows 9–20 are the ones the prompt asked us to find in our docs:",{"type":21,"tag":102,"props":745,"children":746},{},[747,765,775,785,795],{"type":21,"tag":106,"props":748,"children":749},{},[750,755,757,763],{"type":21,"tag":26,"props":751,"children":752},{},[753],{"type":30,"value":754},"12, 13, 16:",{"type":30,"value":756}," ",{"type":21,"tag":35,"props":758,"children":760},{"className":759},[],[761],{"type":30,"value":762},"component_philosophy.md",{"type":30,"value":764}," principles 5 and 6, and its design guidelines.",{"type":21,"tag":106,"props":766,"children":767},{},[768,773],{"type":21,"tag":26,"props":769,"children":770},{},[771],{"type":30,"value":772},"11, 14, 15:",{"type":30,"value":774}," principles 4, 7 and 8.",{"type":21,"tag":106,"props":776,"children":777},{},[778,783],{"type":21,"tag":26,"props":779,"children":780},{},[781],{"type":30,"value":782},"17, 18, 19:",{"type":30,"value":784}," its scope, documentation and naming sections.",{"type":21,"tag":106,"props":786,"children":787},{},[788,793],{"type":21,"tag":26,"props":789,"children":790},{},[791],{"type":30,"value":792},"10:",{"type":30,"value":794}," Tailwind-native, read for GPUI.",{"type":21,"tag":106,"props":796,"children":797},{},[798,803],{"type":21,"tag":26,"props":799,"children":800},{},[801],{"type":30,"value":802},"20:",{"type":30,"value":804}," new, from the medium.",{"type":21,"tag":91,"props":806,"children":808},{"id":807},"how-cumbersome-are-two-surfaces-the-honest-answer",[809],{"type":30,"value":15},{"type":21,"tag":22,"props":811,"children":812},{},[813,818],{"type":21,"tag":26,"props":814,"children":815},{},[816],{"type":30,"value":817},"Not drift hell, not yet.",{"type":30,"value":819}," The surfaces are two days apart, the data contracts are generated, and porting is fast: 11 to 23 minutes per Inventory listing once the layer existed. The cost is in maintenance, and it grows with every web change:",{"type":21,"tag":102,"props":821,"children":822},{},[823,833,843,874,884],{"type":21,"tag":106,"props":824,"children":825},{},[826,831],{"type":21,"tag":26,"props":827,"children":828},{},[829],{"type":30,"value":830},"A change lands in many places.",{"type":30,"value":832}," A component's look lands in 9–10 places across three repos, a new column in 9–11, a sentence of copy in 2–4.",{"type":21,"tag":106,"props":834,"children":835},{},[836,841],{"type":21,"tag":26,"props":837,"children":838},{},[839],{"type":30,"value":840},"Nothing tells the twin.",{"type":30,"value":842}," No machine notices when a Vue component changes and its Rust twin does not.",{"type":21,"tag":106,"props":844,"children":845},{},[846,851],{"type":21,"tag":26,"props":847,"children":848},{},[849],{"type":30,"value":850},"Four drifts in three days:",{"type":21,"tag":102,"props":852,"children":853},{},[854,859,864,869],{"type":21,"tag":106,"props":855,"children":856},{},[857],{"type":30,"value":858},"the rail grew its own look;",{"type":21,"tag":106,"props":860,"children":861},{},[862],{"type":30,"value":863},"the bridge fixture forked;",{"type":21,"tag":106,"props":865,"children":866},{},[867],{"type":30,"value":868},"the Tools widths differ with no record;",{"type":21,"tag":106,"props":870,"children":871},{},[872],{"type":30,"value":873},"the layer's in-flight restyles have no path to their twins.",{"type":21,"tag":106,"props":875,"children":876},{},[877,882],{"type":21,"tag":26,"props":878,"children":879},{},[880],{"type":30,"value":881},"Logic is held by hand three times:",{"type":30,"value":883}," the formatters, the rollups (a Rust port re-ported to TypeScript) and the request key.",{"type":21,"tag":106,"props":885,"children":886},{},[887,892],{"type":21,"tag":26,"props":888,"children":889},{},[890],{"type":30,"value":891},"Fixes travel one way.",{"type":30,"value":893}," The port fixed web bugs and none went back.",{"type":21,"tag":22,"props":895,"children":896},{},[897],{"type":30,"value":898},"The danger is silent drift, not effort. The fix is a parity register both surfaces read, and vectors for the shared logic.",{"type":21,"tag":91,"props":900,"children":902},{"id":901},"what-to-do",[903],{"type":30,"value":16},{"type":21,"tag":22,"props":905,"children":906},{},[907],{"type":21,"tag":26,"props":908,"children":909},{},[910],{"type":30,"value":911},"Now (small):",{"type":21,"tag":913,"props":914,"children":915},"ol",{},[916,937,949,998],{"type":21,"tag":106,"props":917,"children":918},{},[919,921,927,929,935],{"type":30,"value":920},"Keep the ten port specs. They were stranded in a session scratchpad under ",{"type":21,"tag":35,"props":922,"children":924},{"className":923},[],[925],{"type":30,"value":926},"\u002Fprivate\u002Ftmp",{"type":30,"value":928},"; copied to ",{"type":21,"tag":35,"props":930,"children":932},{"className":931},[],[933],{"type":30,"value":934},"rescued-specs\u002F",{"type":30,"value":936}," on 2026-11-12, uncommitted. Their home is qnative c2.",{"type":21,"tag":106,"props":938,"children":939},{},[940,942,948],{"type":30,"value":941},"Sync the bridge fixture before anyone runs ",{"type":21,"tag":35,"props":943,"children":945},{"className":944},[],[946],{"type":30,"value":947},"sync-bridge.sh",{"type":30,"value":89},{"type":21,"tag":106,"props":950,"children":951},{},[952,954],{"type":30,"value":953},"Fix six small flaws:\n",{"type":21,"tag":102,"props":955,"children":956},{},[957,978,983,988,993],{"type":21,"tag":106,"props":958,"children":959},{},[960,962,968,970,976],{"type":30,"value":961},"the copied ",{"type":21,"tag":35,"props":963,"children":965},{"className":964},[],[966],{"type":30,"value":967},".qp()",{"type":30,"value":969}," in ",{"type":21,"tag":35,"props":971,"children":973},{"className":972},[],[974],{"type":30,"value":975},"harness.rs:280",{"type":30,"value":977},";",{"type":21,"tag":106,"props":979,"children":980},{},[981],{"type":30,"value":982},"two dark-mode colours;",{"type":21,"tag":106,"props":984,"children":985},{},[986],{"type":30,"value":987},"the inbox's error drawn as empty;",{"type":21,"tag":106,"props":989,"children":990},{},[991],{"type":30,"value":992},"cycle ids in the Sensor page's copy;",{"type":21,"tag":106,"props":994,"children":995},{},[996],{"type":30,"value":997},"two stale scorecard rows.",{"type":21,"tag":106,"props":999,"children":1000},{},[1001],{"type":30,"value":1002},"Add a token drift check to qnative's CI.",{"type":21,"tag":22,"props":1004,"children":1005},{},[1006,1011,1013,1019],{"type":21,"tag":26,"props":1007,"children":1008},{},[1009],{"type":30,"value":1010},"To rule:",{"type":30,"value":1012}," items 5–13 in ",{"type":21,"tag":51,"props":1014,"children":1016},{"href":1015},"review-1",[1017],{"type":30,"value":1018},"review stop 1",{"type":30,"value":1020},". The largest are the parity register with dual-surface docs (the Surface glossary entry's ask), tokens for type, radius and motion with a lint, the three slot equivalents, and the keyboard pass.",{"type":21,"tag":22,"props":1022,"children":1023},{},[1024,1029,1031,1036,1038,1044],{"type":21,"tag":26,"props":1025,"children":1026},{},[1027],{"type":30,"value":1028},"Skills and tools:",{"type":30,"value":1030}," ten candidates on ",{"type":21,"tag":51,"props":1032,"children":1033},{"href":76},[1034],{"type":30,"value":1035},"the tools page",{"type":30,"value":1037},". First come a ",{"type":21,"tag":35,"props":1039,"children":1041},{"className":1040},[],[1042],{"type":30,"value":1043},"\u002Fnative-port",{"type":30,"value":1045}," skill that carries the whole loop, a spec measurer that writes the spec as data, and the parity register as a check.",1794599291857]