← Design · c129

PICKUP.md

c129 Pickup Note

Parked: 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.

Where every thread stands

ThreadState
Skip query-string links in the deploy crawl✅ on c123/owasp-agentic-tour as 8aff64e71d (cherry-pick of a7323795df from claude/jovial-dubinsky-36e37e, which is now redundant)
Deployed with the fix✅ 2026-11-03, deploy bd48264c3e: build ~4 min, but deploy.sh 15.5 min total
Commit + push of the output (option 0)⏳ not started — ~11 of the 15.5 min; now the recommended next step
DataTimeline demo reading 'labels' error✅ same commit
Measurement (before/after, where time goes)✅ CYCLE.md Key Changes
Cache cycle data during prerender (option 1)⏳ not started
Data-swarm pages, ~284 s each (option 2)⏳ not started
Client-render the lab on deploy (option 3)⏳ needs Mark's call
Prune / incremental deploys (options 4–5)⏳ later
Folder links in cycle records (prerender errors)📖 listed in CYCLE.md; content fixes per record

The decision queue

  1. Land the fix. Done 2026-11-03 and deployed.
  2. Client-render the lab on deploy? Lab mocks would ship as JS-rendered shells instead of static HTML. Only matters if someone reads them without JS, or wants them searchable.
  3. What can be retired? Old phase-0 mocks and old cycles' doc pages are content decisions.

Suggested first hour at pickup

  1. Check the fix is in the deploy branch: grep -n skipQueryLink nuxt.config.ts.
  2. 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 deploy ref the way deploy.sh --no-push does):
    DESIGN_DEPLOY_OUT=$PWD/../.design-deploy-out.noindex NODE_OPTIONS=--max-old-space-size=4096 npx nuxt generate > /tmp/gen.log 2>&1
    

    Then count pages (find ../.design-deploy-out.noindex/public -name index.html | wc -l) and pull per-route timings from the log (LC_ALL=C grep -oE "/[^ ]* \([0-9]+ms\)"). Don't run it while another deploy is building in the same checkout: they share .nuxt-deploy.
  3. Do option 0: add timestamps to deploy.sh steps 3–4, deploy once, and see where the ~11 min after the build goes.
  4. Do option 1: memoise listProjectCycles, statusIndex, imageIndex and the git calls in window.ts / timeline.ts when import.meta.prerender is true. Rebuild, compare time and the page list (comm of sorted index.html lists).
  5. Look at the three data-swarm pages (option 2).

Quick orientation

  • Config: nuxt.config.ts — deployOut, skipQueryLink, prerenderQueue; everything is gated on DESIGN_DEPLOY_OUT.
  • Deploy script: scripts/deploy.sh. Note --no-push still rewrites the local deploy ref and deletes the output folder.
  • Nitro internals worth knowing (nitropack 2.13): canPrerender runs prerender.ignore on every extracted link, as pathname + query; generateRoute re-checks it and silently skips already-generated routes, so re-queuing a path is harmless.
  • Measuring in isolation: the 2026-11-03 numbers came from a scratch git worktree (the c123 tip plus the main checkout's uncommitted files, node_modules cloned with cp -cR, sibling repos symlinked beside it so the cycles pages find them). It has been removed.
  • Shared notes: ~/Library/Application Support/Claude/side-session-notes/local_ab33652d-…/deploy-prerender-trim-options.md has the same numbers.

Qpoint Brand Style Guide