[{"data":1,"prerenderedAt":802},["ShallowReactive",2],{"$flsDw5tN9LFKjVTjbcEjp-LGI1i3HpGSHjr3M143VJFM":3},{"newThing":4,"project":5,"cycle":8,"sections":24,"threads":783,"otherDocs":784,"documents":785,"images":799,"archiveItems":800,"links":801},null,{"id":6,"label":7,"liveBase":4},"design","Design",{"id":9,"num":10,"dir":11,"name":12,"title":13,"focus":14,"status":15,"statusNote":16,"created":17,"completed":4,"mode":18,"report":4,"recordless":19,"thumbnail":4,"imageCount":20,"artifactCount":21,"lastActivity":22,"hasPickup":19,"hasInitialPrompt":23},"c113",113,"c113.qdash-baked-demo","qdash-baked-demo","qdash Baked Demo","Serve the qdash demo as pre-computed worlds (sizes, scenarios, First run stages) from files, switchable instantly, baked daily, with no containers at serve time","active","cut over 2026-10-07 — eleven worlds live on demo.qpoint.io, containers deleted; the scheduled baker and the close next","2026-10-06","evolution of c112: the generator and the Worker's routing stay; what changes is when the answers are computed (once per bake) and where they live (R2)",false,0,7,"2026-10-07",true,[25,44,100,181,676,686],{"key":26,"title":27,"empty":19,"ast":28},"why","Why",{"type":29,"children":30},"root",[31,39],{"type":32,"tag":33,"props":34,"children":35},"element","p",{},[36],{"type":37,"value":38},"text","c112 built a demo whose world rolls forward every few minutes, and it works. But on Cloudflare's fractional vCPU each page load recomputes qdash's answers from raw tables, and after every tick the page is cold: about 15 calls queue on half a core, the slowest pass the UI's 8-second abort, and the retries keep the queue full. Mark saw \"Can't reach qdash\" on the default world on 2026-10-06. Making the running design comfortable would take 2–4 vCPU per size ($70–100 a week) and pages would still go cold after every tick.",{"type":32,"tag":33,"props":40,"children":41},{},[42],{"type":37,"value":43},"Stepping back: the demo's purpose is to show the site populated with real data and how situations appear in it (company sizes, First run, specific exception scenarios), not live updates. Each situation is a fixed world with a fixed set of answers. Those can be computed once and served as files.",{"key":45,"title":46,"empty":19,"ast":47},"objective","Objective",{"type":29,"children":48},[49,95],{"type":32,"tag":50,"props":51,"children":52},"ol",{},[53,59,64,69,81],{"type":32,"tag":54,"props":55,"children":56},"li",{},[57],{"type":37,"value":58},"A baker that turns a world spec (size, scenarios, First run stage) into every API answer the UI can request, as files with a manifest.",{"type":32,"tag":54,"props":60,"children":61},{},[62],{"type":37,"value":63},"The Worker serving the UI and those files from R2, keyed by a world cookie, with the panel as a picker and writes refused honestly.",{"type":32,"tag":54,"props":65,"children":66},{},[67],{"type":37,"value":68},"A daily bake, unattended, that replaces the worlds without a visible gap.",{"type":32,"tag":54,"props":70,"children":71},{},[72,79],{"type":32,"tag":73,"props":74,"children":76},"code",{"className":75},[],[77],{"type":37,"value":78},"demo.qpoint.io",{"type":37,"value":80}," cut over, the container applications deleted, and the live path kept deployable from the same tree.",{"type":32,"tag":54,"props":82,"children":83},{},[84,86,93],{"type":37,"value":85},"The checks in ",{"type":32,"tag":87,"props":88,"children":90},"a",{"href":89},"\u002Fcycles\u002Fdesign\u002Fc113\u002Fdoc\u002Fplan#checks",[91],{"type":37,"value":92},"plan.md",{"type":37,"value":94}," passed.",{"type":32,"tag":33,"props":96,"children":97},{},[98],{"type":37,"value":99},"Done = any page of any world loads cold in under a second on the hostname, switching worlds is instant, every scenario shows its story, the bake has run on its own at least once, and c112 is closed with its outcome.",{"key":101,"title":102,"empty":19,"ast":103},"scope","Scope",{"type":29,"children":104},[105],{"type":32,"tag":106,"props":107,"children":108},"ul",{},[109,154,166,171],{"type":32,"tag":54,"props":110,"children":111},{},[112,114,120,122,128,130,136,138,144,146,152],{"type":37,"value":113},"qcontrol, branch ",{"type":32,"tag":73,"props":115,"children":117},{"className":116},[],[118],{"type":37,"value":119},"c113\u002Fbaked-demo",{"type":37,"value":121}," off ",{"type":32,"tag":73,"props":123,"children":125},{"className":124},[],[126],{"type":37,"value":127},"c112\u002Fdemo-container",{"type":37,"value":129},": ",{"type":32,"tag":73,"props":131,"children":133},{"className":132},[],[134],{"type":37,"value":135},"deploy\u002Fqdash-demo\u002Fbake.py",{"type":37,"value":137},", ",{"type":32,"tag":73,"props":139,"children":141},{"className":140},[],[142],{"type":37,"value":143},"bake.sh",{"type":37,"value":145},", the Worker's baked backend and picker, ",{"type":32,"tag":73,"props":147,"children":149},{"className":148},[],[150],{"type":37,"value":151},"wrangler.baked.jsonc",{"type":37,"value":153},", a daily CI workflow.",{"type":32,"tag":54,"props":155,"children":156},{},[157,159,164],{"type":37,"value":158},"Cloudflare: an R2 bucket for worlds, the Worker on ",{"type":32,"tag":73,"props":160,"children":162},{"className":161},[],[163],{"type":37,"value":78},{"type":37,"value":165},", the four container applications deleted at cutover.",{"type":32,"tag":54,"props":167,"children":168},{},[169],{"type":37,"value":170},"Design: this record, the S5 spike report, captures of the picker and each scenario world.",{"type":32,"tag":54,"props":172,"children":173},{},[174,176],{"type":37,"value":175},"Plan: ",{"type":32,"tag":87,"props":177,"children":179},{"href":178},"\u002Fcycles\u002Fdesign\u002Fc113\u002Fdoc\u002Fplan",[180],{"type":37,"value":92},{"key":182,"title":183,"empty":19,"ast":184},"key-changes","Key Changes",{"type":29,"children":185},[186,229,270,380,536],{"type":32,"tag":33,"props":187,"children":188},{},[189,195,197,203,205,211,213,219,221,227],{"type":32,"tag":190,"props":191,"children":192},"strong",{},[193],{"type":37,"value":194},"kick-off (2026-10-06):",{"type":37,"value":196}," the thread that found the c112 overload became this cycle (",{"type":32,"tag":87,"props":198,"children":200},{"href":199},"\u002Fcycles\u002Fdesign\u002Fc113\u002Fdoc\u002Finitial-prompt",[201],{"type":37,"value":202},"initial-prompt.md",{"type":37,"value":204},"). Grounding read: the UI is a static SPA with a committed ",{"type":32,"tag":73,"props":206,"children":208},{"className":207},[],[209],{"type":37,"value":210},"dist\u002F",{"type":37,"value":212},"; 31 API routes whose server-side parameters are ",{"type":32,"tag":73,"props":214,"children":216},{"className":215},[],[217],{"type":37,"value":218},"period",{"type":37,"value":220}," plus entity selectors, with the global filter's operators applied on the client, so the crawl space is bounded; the Worker's ",{"type":32,"tag":73,"props":222,"children":224},{"className":223},[],[225],{"type":37,"value":226},"Deps.container(size)",{"type":37,"value":228}," is the seam for a baked backend. Plan written with five phases and eight checks; S5 (crawl coverage) running first because it's the one risk.",{"type":32,"tag":33,"props":230,"children":231},{},[232,237,239,245,247,253,255,261,263,268],{"type":32,"tag":190,"props":233,"children":234},{},[235],{"type":37,"value":236},"S5 passed; Phases 1 and 2 started (2026-10-06):",{"type":37,"value":238}," (",{"type":32,"tag":87,"props":240,"children":242},{"href":241},"\u002Fcycles\u002Fdesign\u002Fc113\u002Fdoc\u002Fs5-crawl-coverage",[243],{"type":37,"value":244},"s5-crawl-coverage.md",{"type":37,"value":246},") the server's query grammar plus ids harvested from answers enumerated every URL a 388-visit walk of the UI made (312 normalised URLs, 0 misses after one added rule: the agent filter on six listings). Served from files, a cold Teams page reached its last answer in 247 ms against 1,263 ms live; the index page 310 ms against 2,132 ms. The cost: a complete Mid bake is ~141,000 answers, ~430 MB and ~1.5 h on the laptop, five-sixths of it that one agent-filter affordance over 4,891 agent instances. Consequences in the plan: one pack and one index per route instead of a file per answer (R2 charges per write), and tier 2 by alias (agents with no runs in a period share one answer). Gotchas for the build: APFS case-folding silently overwrote 817 answers during the spike; answers aren't byte-stable (float sums, request-time windows), so equality tests compare parsed JSON. Phase 1 (",{"type":32,"tag":73,"props":248,"children":250},{"className":249},[],[251],{"type":37,"value":252},"bake.py",{"type":37,"value":254},") and Phase 2 (the Worker's baked backend, static-asset UI, picker) running in parallel in the ",{"type":32,"tag":73,"props":256,"children":258},{"className":257},[],[259],{"type":37,"value":260},"qcontrol-c113",{"type":37,"value":262}," worktree. Open for Mark in Phase 3: bake cadence and where the baker runs (",{"type":32,"tag":87,"props":264,"children":266},{"href":265},"\u002Fcycles\u002Fdesign\u002Fc113\u002Fdoc\u002Fplan#phase-3-the-daily-bake",[267],{"type":37,"value":92},{"type":37,"value":269},").",{"type":32,"tag":33,"props":271,"children":272},{},[273,278,280,285,286,292,294,300,302,308,310,316,318,324,326,332,334,340,342,348,350,356,358,364,366,371,372,378],{"type":32,"tag":190,"props":274,"children":275},{},[276],{"type":37,"value":277},"Phases 1 and 2 done (2026-10-06):",{"type":37,"value":279}," ",{"type":32,"tag":73,"props":281,"children":283},{"className":282},[],[284],{"type":37,"value":252},{"type":37,"value":238},{"type":32,"tag":87,"props":287,"children":289},{"href":288},"\u002Fcycles\u002Fdesign\u002Fc113\u002Fdoc\u002Fphase1-bake",[290],{"type":37,"value":291},"phase1-bake.md",{"type":37,"value":293},") bakes a world spec into per-route packs: Mid-sized in 28.5 min, 141,369 answers, 191 MB (S5 projected 1.5 h and 430 MB); Small in under a minute; a scenario world and a First run stage proved the spec paths. The task's tier-2 alias rule was wrong and the live check caught it: the listings' ",{"type":32,"tag":73,"props":295,"children":297},{"className":296},[],[298],{"type":37,"value":299},"?agent=",{"type":37,"value":301}," filter scopes by the agent's ",{"type":32,"tag":303,"props":304,"children":305},"em",{},[306],{"type":37,"value":307},"identity",{"type":37,"value":309}," (system, email), not by runs, so the rule now groups entities by identity and fetches one representative per identity (verified live on every world, 0 differences). Answers differ between qdash processes beyond float digits (minted ids, request-time stamps, HashMap order), so comparisons skip a cited list of unstable fields. The Worker's baked backend (",{"type":32,"tag":87,"props":311,"children":313},{"href":312},"\u002Fcycles\u002Fdesign\u002Fc113\u002Fdoc\u002Fphase2-worker",[314],{"type":37,"value":315},"phase2-worker.md",{"type":37,"value":317},"): UI from Static Assets, ",{"type":32,"tag":73,"props":319,"children":321},{"className":320},[],[322],{"type":37,"value":323},"\u002Fapi",{"type":37,"value":325}," from R2 by a world cookie with ",{"type":32,"tag":73,"props":327,"children":329},{"className":328},[],[330],{"type":37,"value":331},"?world=",{"type":37,"value":333}," and the ",{"type":32,"tag":73,"props":335,"children":337},{"className":336},[],[338],{"type":37,"value":339},"?size=",{"type":37,"value":341}," alias, catalog and per-route indexes cached at the edge, misses counted in the log, writes answered 405 with a read-only notice the pill shows for 5 s (the UI's own toast is honest but doesn't say why), the picker on ",{"type":32,"tag":73,"props":343,"children":345},{"className":344},[],[346],{"type":37,"value":347},"\u002F_admin",{"type":37,"value":349},"; 52\u002F52 tests, both configs share ",{"type":32,"tag":73,"props":351,"children":353},{"className":352},[],[354],{"type":37,"value":355},"router.ts",{"type":37,"value":357},". Phase 2's walk found the one gap, the Teams page's ",{"type":32,"tag":73,"props":359,"children":361},{"className":360},[],[362],{"type":37,"value":363},"?team=unassigned",{"type":37,"value":365},", now in the baker. Re-verified by the main session: both suites green; the Worker on local R2 seeded with the real Mid, Small, scenario and First run bakes walked with 0 misses (89\u002F89 hits), cold Teams page 356 ms. Full eleven-world bake at one anchor started on the laptop for the cutover; Phase 3 (",{"type":32,"tag":73,"props":367,"children":369},{"className":368},[],[370],{"type":37,"value":143},{"type":37,"value":137},{"type":32,"tag":73,"props":373,"children":375},{"className":374},[],[376],{"type":37,"value":377},"check.py",{"type":37,"value":379}," baked mode) started.",{"type":32,"tag":33,"props":381,"children":382},{},[383,388,389,394,396,402,403,409,411,417,419,425,427,433,435,440,442,448,450,456,458,464,466,471,473,478,480,486,488,494,496,502,504,510,512,518,520,526,528,534],{"type":32,"tag":190,"props":384,"children":385},{},[386],{"type":37,"value":387},"Phase 3 done; full bake; cutover (2026-10-07):",{"type":37,"value":279},{"type":32,"tag":73,"props":390,"children":392},{"className":391},[],[393],{"type":37,"value":143},{"type":37,"value":395}," and ",{"type":32,"tag":73,"props":397,"children":399},{"className":398},[],[400],{"type":37,"value":401},"check.py --baked",{"type":37,"value":238},{"type":32,"tag":87,"props":404,"children":406},{"href":405},"\u002Fcycles\u002Fdesign\u002Fc113\u002Fdoc\u002Fphase3-upload",[407],{"type":37,"value":408},"phase3-upload.md",{"type":37,"value":410},"); re-verified 6\u002F6 including the real-bakes test. The full bake of eleven worlds at one anchor (2026-10-06 19:24 UTC) took 3.5 h on the laptop with 0 errors: Small 17 s, Mid-sized 29 min (141k answers, 191 MB), Enterprise 62 min (201k, 261 MB), each Mid scenario world ~29 min, First run stages 1 s to 78 s; 1.2 GB in all. Cutover on Mark's go: bucket ",{"type":32,"tag":73,"props":412,"children":414},{"className":413},[],[415],{"type":37,"value":416},"qdash-demo-worlds",{"type":37,"value":418}," created on the Qpoint account, the worlds uploaded through wrangler (",{"type":32,"tag":73,"props":420,"children":422},{"className":421},[],[423],{"type":37,"value":424},"--remote",{"type":37,"value":426},"; note wrangler's ",{"type":32,"tag":73,"props":428,"children":430},{"className":429},[],[431],{"type":37,"value":432},"r2 object get",{"type":37,"value":434}," reads local state unless told ",{"type":32,"tag":73,"props":436,"children":438},{"className":437},[],[439],{"type":37,"value":424},{"type":37,"value":441},"), catalog last, then ",{"type":32,"tag":73,"props":443,"children":445},{"className":444},[],[446],{"type":37,"value":447},"wrangler deploy --config wrangler.baked.jsonc",{"type":37,"value":449}," over the same Worker name. The first deploy was refused (error 10064: the version stopped exporting the Durable Object classes the live containers depend on), so the baked entry now exports the four classes as inert stubs; a ",{"type":32,"tag":73,"props":451,"children":453},{"className":452},[],[454],{"type":37,"value":455},"deleted_classes",{"type":37,"value":457}," migration removes them once the containers are gone. Version ",{"type":32,"tag":73,"props":459,"children":461},{"className":460},[],[462],{"type":37,"value":463},"f7155e3a",{"type":37,"value":465}," serves ",{"type":32,"tag":73,"props":467,"children":469},{"className":468},[],[470],{"type":37,"value":78},{"type":37,"value":472}," as of 18:26 UTC. ",{"type":32,"tag":73,"props":474,"children":476},{"className":475},[],[477],{"type":37,"value":401},{"type":37,"value":479}," against the hostname: E1 2,069 API reads over all eleven worlds, 0 misses; E2 every page cold in 400–800 ms (Teams was 3–8 s and timing out before); E3, E5 pass; E4 passes after a check fix (shadow-AI findings carry their time in ",{"type":32,"tag":73,"props":481,"children":483},{"className":482},[],[484],{"type":37,"value":485},"first_seen",{"type":37,"value":487},"). Single calls on the hostname: ",{"type":32,"tag":73,"props":489,"children":491},{"className":490},[],[492],{"type":37,"value":493},"\u002Fapi\u002Fstats",{"type":37,"value":495}," 0.10 s, ",{"type":32,"tag":73,"props":497,"children":499},{"className":498},[],[500],{"type":37,"value":501},"\u002Fapi\u002Fskills",{"type":37,"value":503}," 0.43 s. Held for Mark's review: deleting the four container applications (step 5), which ends the running demo and its spend. Product finding on the way: at Mid every install reads ",{"type":32,"tag":73,"props":505,"children":507},{"className":506},[],[508],{"type":37,"value":509},"instrumented: true",{"type":37,"value":511}," in ",{"type":32,"tag":73,"props":513,"children":515},{"className":514},[],[516],{"type":37,"value":517},"\u002Fapi\u002Finstallations",{"type":37,"value":519}," (qdash's ",{"type":32,"tag":73,"props":521,"children":523},{"className":522},[],[524],{"type":37,"value":525},"type_seen",{"type":37,"value":527}," rule marks a tool type instrumented if any instance of it was ever observed) while ",{"type":32,"tag":73,"props":529,"children":531},{"className":530},[],[532],{"type":37,"value":533},"\u002Fapi\u002Fsecurity",{"type":37,"value":535}," lists 24 shadow installs; Inventory's coverage and Findings disagree.",{"type":32,"tag":33,"props":537,"children":538},{},[539,544,546,552,553,558,560,566,568,574,576,582,584,589,591,597,599,605,607,613,615,621,623,629,630,636,638,644,646,652,654,660,662,667,669,674],{"type":32,"tag":190,"props":540,"children":541},{},[542],{"type":37,"value":543},"containers deleted, c112 closed, the baker built (2026-10-07):",{"type":37,"value":545}," on Mark's \"make it so\": the four container applications deleted, the ",{"type":32,"tag":73,"props":547,"children":549},{"className":548},[],[550],{"type":37,"value":551},"v2",{"type":37,"value":279},{"type":32,"tag":73,"props":554,"children":556},{"className":555},[],[557],{"type":37,"value":455},{"type":37,"value":559}," migration deployed (version ",{"type":32,"tag":73,"props":561,"children":563},{"className":562},[],[564],{"type":37,"value":565},"59ee049e",{"type":37,"value":567},") and the stub classes removed; c112 closed with its outcome and archived. The scheduled baker (",{"type":32,"tag":87,"props":569,"children":571},{"href":570},"\u002Fcycles\u002Fdesign\u002Fc113\u002Fdoc\u002Fphase4-baker",[572],{"type":37,"value":573},"phase4-baker.md",{"type":37,"value":575},"): ",{"type":32,"tag":73,"props":577,"children":579},{"className":578},[],[580],{"type":37,"value":581},"Dockerfile.baker",{"type":37,"value":583}," (qdash Linux binary, python3, curl, the generator, ",{"type":32,"tag":73,"props":585,"children":587},{"className":586},[],[588],{"type":37,"value":143},{"type":37,"value":590},") with an entrypoint that opens a log port, runs ",{"type":32,"tag":73,"props":592,"children":594},{"className":593},[],[595],{"type":37,"value":596},"bake.sh --world … --upload",{"type":37,"value":598}," and exits with its code; in the Worker a ",{"type":32,"tag":73,"props":600,"children":602},{"className":601},[],[603],{"type":37,"value":604},"QdashBaker",{"type":37,"value":606}," container class (",{"type":32,"tag":73,"props":608,"children":610},{"className":609},[],[611],{"type":37,"value":612},"standard-4",{"type":37,"value":614},", one instance), ",{"type":32,"tag":73,"props":616,"children":618},{"className":617},[],[619],{"type":37,"value":620},"scheduled()",{"type":37,"value":622}," mapping two crons (Mid-sized daily Mon–Sat 09:00 UTC, all eleven worlds Sunday 06:00 UTC) to world lists, ",{"type":32,"tag":73,"props":624,"children":626},{"className":625},[],[627],{"type":37,"value":628},"POST \u002F_admin\u002Fbake",{"type":37,"value":395},{"type":32,"tag":73,"props":631,"children":633},{"className":632},[],[634],{"type":37,"value":635},"\u002F_admin\u002Fbake\u002Fstatus",{"type":37,"value":637}," behind Access, and a \"Bake now\" section on the picker; ",{"type":32,"tag":73,"props":639,"children":641},{"className":640},[],[642],{"type":37,"value":643},"v3",{"type":37,"value":645}," migration adds the class. Proved locally in OrbStack at 4 CPUs against a fake S3: Small end to end in 52 s (host: 16 s, so ~1.5× slower at 4 vCPU; ",{"type":32,"tag":73,"props":647,"children":649},{"className":648},[],[650],{"type":37,"value":651},"nproc",{"type":37,"value":653}," inside reports the host's cores, so ",{"type":32,"tag":73,"props":655,"children":657},{"className":656},[],[658],{"type":37,"value":659},"--workers 8",{"type":37,"value":661}," is a var). Estimated cost: a Mid bake ≈ $0.40, the weekly full bake ≈ $2.40, ≈ $20 a month net. Re-verified: 59\u002F59 tests, tsc clean. Waits on Mark: an R2 API token (object read & write on ",{"type":32,"tag":73,"props":663,"children":665},{"className":664},[],[666],{"type":37,"value":416},{"type":37,"value":668},") set as two Worker secrets, then the deploy and a first by-hand bake to measure the real ",{"type":32,"tag":73,"props":670,"children":672},{"className":671},[],[673],{"type":37,"value":612},{"type":37,"value":675}," time.",{"key":677,"title":678,"empty":19,"ast":679},"outcome","Outcome",{"type":29,"children":680},[681],{"type":32,"tag":682,"props":683,"children":685},"filled",{"in":684,"at":684,"completion":684},"",[],{"key":687,"title":688,"empty":19,"ast":689},"extra","Decisions",{"type":29,"children":690},[691],{"type":32,"tag":106,"props":692,"children":693},{},[694,704,714,755,765],{"type":32,"tag":54,"props":695,"children":696},{},[697,702],{"type":32,"tag":190,"props":698,"children":699},{},[700],{"type":37,"value":701},"D1 Read-only (Mark, 2026-10-06).",{"type":37,"value":703}," No containers at serve time. Writes show a \"read-only demo\" notice.",{"type":32,"tag":54,"props":705,"children":706},{},[707,712],{"type":32,"tag":190,"props":708,"children":709},{},[710],{"type":37,"value":711},"D2 Daily bakes (Mark, 2026-10-06).",{"type":37,"value":713}," One scheduled bake a day; \"today\" is right, newest activity up to a day old.",{"type":32,"tag":54,"props":715,"children":716},{},[717,722,724,730,732,738,740,745,747,753],{"type":32,"tag":190,"props":718,"children":719},{},[720],{"type":37,"value":721},"D3 Same tree, two configs.",{"type":37,"value":723}," One ",{"type":32,"tag":73,"props":725,"children":727},{"className":726},[],[728],{"type":37,"value":729},"deploy\u002Fqdash-demo\u002F",{"type":37,"value":731}," and one Worker source; ",{"type":32,"tag":73,"props":733,"children":735},{"className":734},[],[736],{"type":37,"value":737},"wrangler.jsonc",{"type":37,"value":739}," stays the live (container) config, ",{"type":32,"tag":73,"props":741,"children":743},{"className":742},[],[744],{"type":37,"value":151},{"type":37,"value":746}," is the baked one. ",{"type":32,"tag":73,"props":748,"children":750},{"className":749},[],[751],{"type":37,"value":752},"deploy.sh --live",{"type":37,"value":754}," brings the running demo back.",{"type":32,"tag":54,"props":756,"children":757},{},[758,763],{"type":32,"tag":190,"props":759,"children":760},{},[761],{"type":37,"value":762},"D4 A new cycle, not more c112 phases.",{"type":37,"value":764}," c112's objective and checks are about a world that rolls forward; they were met and measured. c112 closes with its outcome when the cutover lands.",{"type":32,"tag":54,"props":766,"children":767},{},[768,773,775,781],{"type":32,"tag":190,"props":769,"children":770},{},[771],{"type":37,"value":772},"D5 S1 deleted (2026-10-06).",{"type":37,"value":774}," The S1 spike Worker and container application are gone; its findings are in c112's ",{"type":32,"tag":73,"props":776,"children":778},{"className":777},[],[779],{"type":37,"value":780},"s1-cloudflare.md",{"type":37,"value":782},".",[],[202,291,315,408,573,92,244],[786,787,789,791,793,795,797],{"file":202,"title":13},{"file":291,"title":788},"Phase 1: `bake.py`",{"file":315,"title":790},"Phase 2: the baked backend in the Worker",{"file":408,"title":792},"Phase 3: the upload path and the baked checks",{"file":573,"title":794},"Phase 4: the baker, a Cloudflare Container the cron starts",{"file":92,"title":796},"plan: the baked demo",{"file":244,"title":798},"S5: crawl coverage",[],[],[],1794599411078]