[{"data":1,"prerenderedAt":651},["ShallowReactive",2],{"cycle-doc-design-c129-PICKUP.md":3},{"cycle":4,"project":7,"path":10,"title":11,"toc":12,"ast":17},{"id":5,"title":6},"c129","Deploy Build Time",{"id":8,"label":9},"design","Design","PICKUP.md","c129 Pickup Note",[13,14,15,16],"Where every thread stands","The decision queue","Suggested first hour at pickup","Quick orientation",{"type":18,"children":19},"root",[20,34,40,265,270,306,311,475,480,646],{"type":21,"tag":22,"props":23,"children":24},"element","p",{},[25,32],{"type":21,"tag":26,"props":27,"children":28},"strong",{},[29],{"type":30,"value":31},"text","Parked:",{"type":30,"value":33}," 2026-11-03, on purpose, right after the first fix. The deploy build is at about 4.4 minutes, which is fine for now. Pick this up when deploys feel slow again, or before the lab grows another round of mocks.",{"type":21,"tag":35,"props":36,"children":38},"h2",{"id":37},"where-every-thread-stands",[39],{"type":30,"value":13},{"type":21,"tag":41,"props":42,"children":43},"table",{},[44,63],{"type":21,"tag":45,"props":46,"children":47},"thead",{},[48],{"type":21,"tag":49,"props":50,"children":51},"tr",{},[52,58],{"type":21,"tag":53,"props":54,"children":55},"th",{},[56],{"type":30,"value":57},"Thread",{"type":21,"tag":53,"props":59,"children":60},{},[61],{"type":30,"value":62},"State",{"type":21,"tag":64,"props":65,"children":66},"tbody",{},[67,114,143,161,188,201,214,226,239,252],{"type":21,"tag":49,"props":68,"children":69},{},[70,76],{"type":21,"tag":71,"props":72,"children":73},"td",{},[74],{"type":30,"value":75},"Skip query-string links in the deploy crawl",{"type":21,"tag":71,"props":77,"children":78},{},[79,81,88,90,96,98,104,106,112],{"type":30,"value":80},"✅ on ",{"type":21,"tag":82,"props":83,"children":85},"code",{"className":84},[],[86],{"type":30,"value":87},"c123\u002Fowasp-agentic-tour",{"type":30,"value":89}," as ",{"type":21,"tag":82,"props":91,"children":93},{"className":92},[],[94],{"type":30,"value":95},"8aff64e71d",{"type":30,"value":97}," (cherry-pick of ",{"type":21,"tag":82,"props":99,"children":101},{"className":100},[],[102],{"type":30,"value":103},"a7323795df",{"type":30,"value":105}," from ",{"type":21,"tag":82,"props":107,"children":109},{"className":108},[],[110],{"type":30,"value":111},"claude\u002Fjovial-dubinsky-36e37e",{"type":30,"value":113},", which is now redundant)",{"type":21,"tag":49,"props":115,"children":116},{},[117,122],{"type":21,"tag":71,"props":118,"children":119},{},[120],{"type":30,"value":121},"Deployed with the fix",{"type":21,"tag":71,"props":123,"children":124},{},[125,127,133,135,141],{"type":30,"value":126},"✅ 2026-11-03, ",{"type":21,"tag":82,"props":128,"children":130},{"className":129},[],[131],{"type":30,"value":132},"deploy",{"type":30,"value":134}," ",{"type":21,"tag":82,"props":136,"children":138},{"className":137},[],[139],{"type":30,"value":140},"bd48264c3e",{"type":30,"value":142},": build ~4 min, but deploy.sh 15.5 min total",{"type":21,"tag":49,"props":144,"children":145},{},[146,151],{"type":21,"tag":71,"props":147,"children":148},{},[149],{"type":30,"value":150},"Commit + push of the output (option 0)",{"type":21,"tag":71,"props":152,"children":153},{},[154,156],{"type":30,"value":155},"⏳ not started — ~11 of the 15.5 min; ",{"type":21,"tag":26,"props":157,"children":158},{},[159],{"type":30,"value":160},"now the recommended next step",{"type":21,"tag":49,"props":162,"children":163},{},[164,183],{"type":21,"tag":71,"props":165,"children":166},{},[167,173,175,181],{"type":21,"tag":82,"props":168,"children":170},{"className":169},[],[171],{"type":30,"value":172},"DataTimeline",{"type":30,"value":174}," demo ",{"type":21,"tag":82,"props":176,"children":178},{"className":177},[],[179],{"type":30,"value":180},"reading 'labels'",{"type":30,"value":182}," error",{"type":21,"tag":71,"props":184,"children":185},{},[186],{"type":30,"value":187},"✅ same commit",{"type":21,"tag":49,"props":189,"children":190},{},[191,196],{"type":21,"tag":71,"props":192,"children":193},{},[194],{"type":30,"value":195},"Measurement (before\u002Fafter, where time goes)",{"type":21,"tag":71,"props":197,"children":198},{},[199],{"type":30,"value":200},"✅ CYCLE.md Key Changes",{"type":21,"tag":49,"props":202,"children":203},{},[204,209],{"type":21,"tag":71,"props":205,"children":206},{},[207],{"type":30,"value":208},"Cache cycle data during prerender (option 1)",{"type":21,"tag":71,"props":210,"children":211},{},[212],{"type":30,"value":213},"⏳ not started",{"type":21,"tag":49,"props":215,"children":216},{},[217,222],{"type":21,"tag":71,"props":218,"children":219},{},[220],{"type":30,"value":221},"Data-swarm pages, ~284 s each (option 2)",{"type":21,"tag":71,"props":223,"children":224},{},[225],{"type":30,"value":213},{"type":21,"tag":49,"props":227,"children":228},{},[229,234],{"type":21,"tag":71,"props":230,"children":231},{},[232],{"type":30,"value":233},"Client-render the lab on deploy (option 3)",{"type":21,"tag":71,"props":235,"children":236},{},[237],{"type":30,"value":238},"⏳ needs Mark's call",{"type":21,"tag":49,"props":240,"children":241},{},[242,247],{"type":21,"tag":71,"props":243,"children":244},{},[245],{"type":30,"value":246},"Prune \u002F incremental deploys (options 4–5)",{"type":21,"tag":71,"props":248,"children":249},{},[250],{"type":30,"value":251},"⏳ later",{"type":21,"tag":49,"props":253,"children":254},{},[255,260],{"type":21,"tag":71,"props":256,"children":257},{},[258],{"type":30,"value":259},"Folder links in cycle records (prerender errors)",{"type":21,"tag":71,"props":261,"children":262},{},[263],{"type":30,"value":264},"📖 listed in CYCLE.md; content fixes per record",{"type":21,"tag":35,"props":266,"children":268},{"id":267},"the-decision-queue",[269],{"type":30,"value":14},{"type":21,"tag":271,"props":272,"children":273},"ol",{},[274,286,296],{"type":21,"tag":275,"props":276,"children":277},"li",{},[278,284],{"type":21,"tag":279,"props":280,"children":281},"del",{},[282],{"type":30,"value":283},"Land the fix.",{"type":30,"value":285}," Done 2026-11-03 and deployed.",{"type":21,"tag":275,"props":287,"children":288},{},[289,294],{"type":21,"tag":26,"props":290,"children":291},{},[292],{"type":30,"value":293},"Client-render the lab on deploy?",{"type":30,"value":295}," Lab mocks would ship as JS-rendered shells instead of static HTML. Only matters if someone reads them without JS, or wants them searchable.",{"type":21,"tag":275,"props":297,"children":298},{},[299,304],{"type":21,"tag":26,"props":300,"children":301},{},[302],{"type":30,"value":303},"What can be retired?",{"type":30,"value":305}," Old phase-0 mocks and old cycles' doc pages are content decisions.",{"type":21,"tag":35,"props":307,"children":309},{"id":308},"suggested-first-hour-at-pickup",[310],{"type":30,"value":15},{"type":21,"tag":271,"props":312,"children":313},{},[314,327,389,402,470],{"type":21,"tag":275,"props":315,"children":316},{},[317,319,325],{"type":30,"value":318},"Check the fix is in the deploy branch: ",{"type":21,"tag":82,"props":320,"children":322},{"className":321},[],[323],{"type":30,"value":324},"grep -n skipQueryLink nuxt.config.ts",{"type":30,"value":326},".",{"type":21,"tag":275,"props":328,"children":329},{},[330,332,337,339,345,347,360,364,366,372,374,380,382,388],{"type":30,"value":331},"Take a fresh baseline: in the checkout Mark deploys from, run the generate step on its own (it keeps the output, and doesn't touch the ",{"type":21,"tag":82,"props":333,"children":335},{"className":334},[],[336],{"type":30,"value":132},{"type":30,"value":338}," ref the way ",{"type":21,"tag":82,"props":340,"children":342},{"className":341},[],[343],{"type":30,"value":344},"deploy.sh --no-push",{"type":30,"value":346}," does):",{"type":21,"tag":348,"props":349,"children":355},"pre",{"className":350,"code":351,"language":352,"meta":353,"style":354},"language-bash","DESIGN_DEPLOY_OUT=$PWD\u002F..\u002F.design-deploy-out.noindex NODE_OPTIONS=--max-old-space-size=4096 npx nuxt generate > \u002Ftmp\u002Fgen.log 2>&1\n","bash","","undefined",[356],{"type":21,"tag":82,"props":357,"children":358},{"__ignoreMap":353},[359],{"type":30,"value":351},{"type":21,"tag":361,"props":362,"children":363},"br",{},[],{"type":30,"value":365},"Then count pages (",{"type":21,"tag":82,"props":367,"children":369},{"className":368},[],[370],{"type":30,"value":371},"find ..\u002F.design-deploy-out.noindex\u002Fpublic -name index.html | wc -l",{"type":30,"value":373},") and pull per-route timings from the log (",{"type":21,"tag":82,"props":375,"children":377},{"className":376},[],[378],{"type":30,"value":379},"LC_ALL=C grep -oE \"\u002F[^ ]* \\([0-9]+ms\\)\"",{"type":30,"value":381},").\nDon't run it while another deploy is building in the same checkout: they share ",{"type":21,"tag":82,"props":383,"children":385},{"className":384},[],[386],{"type":30,"value":387},".nuxt-deploy",{"type":30,"value":326},{"type":21,"tag":275,"props":390,"children":391},{},[392,394,400],{"type":30,"value":393},"Do option 0: add timestamps to ",{"type":21,"tag":82,"props":395,"children":397},{"className":396},[],[398],{"type":30,"value":399},"deploy.sh",{"type":30,"value":401}," steps 3–4, deploy once, and see where the ~11 min after the build goes.",{"type":21,"tag":275,"props":403,"children":404},{},[405,407,413,415,421,422,428,430,436,438,444,446,452,454,460,462,468],{"type":30,"value":406},"Do option 1: memoise ",{"type":21,"tag":82,"props":408,"children":410},{"className":409},[],[411],{"type":30,"value":412},"listProjectCycles",{"type":30,"value":414},", ",{"type":21,"tag":82,"props":416,"children":418},{"className":417},[],[419],{"type":30,"value":420},"statusIndex",{"type":30,"value":414},{"type":21,"tag":82,"props":423,"children":425},{"className":424},[],[426],{"type":30,"value":427},"imageIndex",{"type":30,"value":429}," and the git calls in ",{"type":21,"tag":82,"props":431,"children":433},{"className":432},[],[434],{"type":30,"value":435},"window.ts",{"type":30,"value":437}," \u002F ",{"type":21,"tag":82,"props":439,"children":441},{"className":440},[],[442],{"type":30,"value":443},"timeline.ts",{"type":30,"value":445}," when ",{"type":21,"tag":82,"props":447,"children":449},{"className":448},[],[450],{"type":30,"value":451},"import.meta.prerender",{"type":30,"value":453}," is true. Rebuild, compare time and the page list (",{"type":21,"tag":82,"props":455,"children":457},{"className":456},[],[458],{"type":30,"value":459},"comm",{"type":30,"value":461}," of sorted ",{"type":21,"tag":82,"props":463,"children":465},{"className":464},[],[466],{"type":30,"value":467},"index.html",{"type":30,"value":469}," lists).",{"type":21,"tag":275,"props":471,"children":472},{},[473],{"type":30,"value":474},"Look at the three data-swarm pages (option 2).",{"type":21,"tag":35,"props":476,"children":478},{"id":477},"quick-orientation",[479],{"type":30,"value":16},{"type":21,"tag":481,"props":482,"children":483},"ul",{},[484,530,562,595,629],{"type":21,"tag":275,"props":485,"children":486},{},[487,492,493,499,501,507,508,514,515,521,523,529],{"type":21,"tag":26,"props":488,"children":489},{},[490],{"type":30,"value":491},"Config:",{"type":30,"value":134},{"type":21,"tag":82,"props":494,"children":496},{"className":495},[],[497],{"type":30,"value":498},"nuxt.config.ts",{"type":30,"value":500}," — ",{"type":21,"tag":82,"props":502,"children":504},{"className":503},[],[505],{"type":30,"value":506},"deployOut",{"type":30,"value":414},{"type":21,"tag":82,"props":509,"children":511},{"className":510},[],[512],{"type":30,"value":513},"skipQueryLink",{"type":30,"value":414},{"type":21,"tag":82,"props":516,"children":518},{"className":517},[],[519],{"type":30,"value":520},"prerenderQueue",{"type":30,"value":522},"; everything is gated on ",{"type":21,"tag":82,"props":524,"children":526},{"className":525},[],[527],{"type":30,"value":528},"DESIGN_DEPLOY_OUT",{"type":30,"value":326},{"type":21,"tag":275,"props":531,"children":532},{},[533,538,539,545,547,553,555,560],{"type":21,"tag":26,"props":534,"children":535},{},[536],{"type":30,"value":537},"Deploy script:",{"type":30,"value":134},{"type":21,"tag":82,"props":540,"children":542},{"className":541},[],[543],{"type":30,"value":544},"scripts\u002Fdeploy.sh",{"type":30,"value":546},". Note ",{"type":21,"tag":82,"props":548,"children":550},{"className":549},[],[551],{"type":30,"value":552},"--no-push",{"type":30,"value":554}," still rewrites the local ",{"type":21,"tag":82,"props":556,"children":558},{"className":557},[],[559],{"type":30,"value":132},{"type":30,"value":561}," ref and deletes the output folder.",{"type":21,"tag":275,"props":563,"children":564},{},[565,570,571,577,579,585,587,593],{"type":21,"tag":26,"props":566,"children":567},{},[568],{"type":30,"value":569},"Nitro internals worth knowing (nitropack 2.13):",{"type":30,"value":134},{"type":21,"tag":82,"props":572,"children":574},{"className":573},[],[575],{"type":30,"value":576},"canPrerender",{"type":30,"value":578}," runs ",{"type":21,"tag":82,"props":580,"children":582},{"className":581},[],[583],{"type":30,"value":584},"prerender.ignore",{"type":30,"value":586}," on every extracted link, as pathname + query; ",{"type":21,"tag":82,"props":588,"children":590},{"className":589},[],[591],{"type":30,"value":592},"generateRoute",{"type":30,"value":594}," re-checks it and silently skips already-generated routes, so re-queuing a path is harmless.",{"type":21,"tag":275,"props":596,"children":597},{},[598,603,605,611,613,619,621,627],{"type":21,"tag":26,"props":599,"children":600},{},[601],{"type":30,"value":602},"Measuring in isolation:",{"type":30,"value":604}," the 2026-11-03 numbers came from a scratch git worktree (the ",{"type":21,"tag":82,"props":606,"children":608},{"className":607},[],[609],{"type":30,"value":610},"c123",{"type":30,"value":612}," tip plus the main checkout's uncommitted files, ",{"type":21,"tag":82,"props":614,"children":616},{"className":615},[],[617],{"type":30,"value":618},"node_modules",{"type":30,"value":620}," cloned with ",{"type":21,"tag":82,"props":622,"children":624},{"className":623},[],[625],{"type":30,"value":626},"cp -cR",{"type":30,"value":628},", sibling repos symlinked beside it so the cycles pages find them). It has been removed.",{"type":21,"tag":275,"props":630,"children":631},{},[632,637,638,644],{"type":21,"tag":26,"props":633,"children":634},{},[635],{"type":30,"value":636},"Shared notes:",{"type":30,"value":134},{"type":21,"tag":82,"props":639,"children":641},{"className":640},[],[642],{"type":30,"value":643},"~\u002FLibrary\u002FApplication Support\u002FClaude\u002Fside-session-notes\u002Flocal_ab33652d-…\u002Fdeploy-prerender-trim-options.md",{"type":30,"value":645}," has the same numbers.",{"type":21,"tag":647,"props":648,"children":649},"style",{},[650],{"type":30,"value":353},1794599466391]