v0.3.0
π Enhancements
- cli: Detect and opt out of the host workspace when scaffolding (72481723)
- cli: Detect and opt out of the host workspace when scaffolding (187f25a3)
- demos: Live-feed CSR/SSR pair + four-combo executed-at-load harness (T005 measurement foundation) (aa8d4dc9)
- bundler: Pass importedModuleInterfaces into compiles (first linker step) (403461df)
- compiler,serializer,web: Record the async-boundary decision once (T006) (f0da6fbf)
- compiler: Graph-owned renderData β chunks, dynamic-host slots, residue tables, equivalence-proven (T008a) (90c99b3d)
- web: Generic renderData SSR renderer, shadow-equal to the production emitter (T010a) (333bc67c)
- compiler: Consumers migrate to renderData; landmines fail loud; emission byte-equal (T008b) (df5c42d7)
- compiler,web: Direct CSR path renders from renderData chunks β first emitter deleted (T009a) (39703710)
- compiler,web: Standard CSR renders from renderData chunks β composition surface deleted (T009b) (9ed87eb0)
- compiler,web: Settled async arms are chunk commits β tier-4 re-execution deleted (T009c) (132ad88b)
- compiler,bundler,web: Entry diet β native browser-parsed templates, inert component records, no eager registry evaluation (T009d partial) (d92ed381)
- compiler,bundler,web: Coordinate-only async settlement β resume runtime loads on interaction only (T009d complete) (bf0bdce1)
- compiler,web,serializer,router: SSR renders from renderData β five markup-scan sites deleted, no fallback (T010b checkpoint) (0e39b04f)
- core,compiler,web: Graph-free CSR bootstrap β delegated triggers, tiered demand, no runtime start at load (T011) (2f9a0b01)
- compiler,bundler,web: One render-data export per module, thin environment entries, interface-hash linking (T012) (e4971be4)
- bundler,web: Post-build thinning β narrowed HMR invalidation, compact preload emission, ratcheted byte ceilings (T013) (3f07e9df)
- web,bundler: Build-time prerender vertical for music-player behind MARKLESS_PRERENDER=1 (render-unification P1) (b3a7da9d)
- web,bundler: Records-from-chunks resume, prerendered music-player by default, debug-channel restored (render-unification P2 + repairs) (205d1249)
- bundler,web: Dev/HMR parity β dev serves the prerendered container through the production pipeline (render-unification P4) (59435358)
- web,serializer,bundler: One arm-record registration core + posture resolver + boot-path matrix (render-unification T013 + P3) (55aa6b66)
- web,bundler,serializer: Reland S1 micro-A doctrine wake core (f1a090dc)
- web,bundler,serializer,compiler: S1 slice 2 β linked-filename resolution, no-payload-access invariant, componentDefinitions decoupled from tier selection (runtime-demolition T001) (053e2843)
- bundler,web: Ownership-scoped artifact lifetime + multi-child prerender fixture (runtime-demolition T001 piece 1) (a1903c42)
- web,bundler,serializer: Child symbol wake registration β multi-child prerendered pages fully interactive (runtime-demolition T001 piece 2) (ba4d03e8)
- bundler,compiler: Preload plan closes over wake-reachable child symbol chunks; legacy posture untouched (runtime-demolition T001 piece 3, S1 complete) (0c038e65)
- bundler: SSR client builds emit canonical prerender render-data + an additive wake-variant module (runtime-demolition T002 unit A) (5042b312)
- serializer,web,bundler: Empty-delta SSR containers β full-resume pages with build-known state ship zero payload scripts (runtime-demolition T002 unit B) (e2081977)
- router,bundler,web: The prerender-wake channel β router apps serve empty-delta containers behind an opt-in gate (runtime-demolition T002 unit B2) (4ec18b61)
- serializer,web,bundler: Divergent pages ship only the record delta, merged payload-over-derived at wake (runtime-demolition T002 stage D2) (af6aa3bc)
- measure: Machine-record served payload-script bytes per demo (runtime-demolition T002 stage S4, recording half) (236f9d3a)
- compiler,bundler,web,runtime: Staged wake β build-computed trigger groups behind one global dispatch queue (runtime-demolition T004) (e08fd97c)
- web,bundler,compiler,serializer,router: Unified render model + CSR-legacy demolition + staged wake completion (runtime-demolition T005/T006, owner-directed snapshot) (86f19d33)
- web,bundler,compiler: Live-feed executed-at-load diet + dom-order locator census pin (99c1afe4)
- bundler,web: Truthful devtools execution ledger + CI test repairs (a2b84ee3)
- compiler: Overlay - a structural elevation attribute (ae3f8b05)
- compiler: Element handles as identity in IDREF positions (b4b94de6)
- compiler: Object-form style attributes (931f0544)
- release: Make bumpp prepare lockstep versions (407a9717)
- Land docs site, style completions, and guessless guidance (3a4bcfa5)
- release: Complete changelogen release notes (cf48abd7)
π₯ Performance
- serializer,web,core,compiler,bundler: Storage-free payloads decode without storage validation (T017, owner-approved) (e84fd150)
- web,serializer,bundler: Shipped-byte diet closes all three gzip walls; live-feed default stays legacy until wake staging lands (8fc0b0a7)
π©Ή Fixes
- compiler,web: Authored-gate-first boundary resolution; ambiguity fails loud on parts-tier too (a41946f0)
- serializer,bundler,demos: Hash-stable wall accounting, proportional boundary validation, pre-existing instrument debt pinned (bed49b6b)
- compiler: Row locals from render-data row chunks β async-arm repeats emit row-scoped bindings via capture path (T008b regression) (b480c2fe)
- executed-at-load: Measure previews own their process group and the script exits deterministically (33a0d86b)
- compiler,web,serializer: Settled-arm keyed repeats survive the renderData SSR cutover (t010b3) (f40b4e81)
- router,web: Streamed-settle cancellation lifecycle β no writes after the consumer is gone (t010b2) (ede141af)
- web,compiler: Branch-record truth for literal/omitted props; same-module-branch demo made hermetic (render-unification t020b) (5986ec6e)
- measure: Held-pending diagnostic captures quiesced coverage, not a race (19e379d3)
- workspace: Lockfile entry for the vite-prerender-multi-child fixture (59c883d5)
- workspace: Lockfile entry for the vite-prerender-multi-child fixture (d2c482a3)
- bundler: Prerender wake gates on the capability closure over linked children (runtime-demolition T003) (31c96f8e)
- bundler: Recordless click no longer kills staged dispatch on prerendered pages (537e750a)
- ci: End the JSFB alias-catch-all failure class + serialize the tsplugin CJS build (b52de79f)
- compiler,web,tests: Browser-lane regressions from the runtime demolition (e9db0a54)
- web: Close the last two browser-lane reds - arm records at mount, live-graph authority for state cells (ac8a4235)
- typescript-plugin: Stop @ completions inside style blocks (46a9fb51)
- bundler: Serve edited modules to renders started on the reload signal (a26de5e5)
- bundler: Serve edited modules to renders started on the reload signal" (dc6e20f1)
- bundler: Serve edited modules to renders started on the reload signal (08c25546)
- bundler: Regenerate virtual modules on a dev fetch miss (2bba8cb1)
- bundler: Recover a composed child's capture metadata in dev (6a92ee56)
- bundler: Validate imported children against the in-flight parent manifest (68fe07d8)
π Refactors
- compiler: The AST-projection era ends β plan.ts satellites deleted, renderData is the sole structural fact source (render-unification T019) (5b1c2e6c)
- compiler: PreLinkFlattenedBranchIds retires β the last 'explicitly temporary' projection dies with a permanent box guarding its shape (render-unification T020) (f05bd341)
π Documentation
- Design two-stage release cut with GitHub Releases (6feb21d3)
- Plan two-stage release automation (184bb56d)
- Design two-stage release cut with GitHub Releases (2aea5520)
- Plan two-stage release automation (1b557c7e)
- Point guessless guidance at the npm CLI (7974f423)
- Changelog for 0.3.0 (abd5d8cc)
π‘ Chore
- executed-at-load: Re-record baseline on the consolidated lane β mp-csr 16,774 / lf-csr 28,925 / ssr 1,213+1,320 (cb1a7cb8)
- executed-at-load: Ratchet mp-csr to the prerendered number β accepted 937, ceiling 983 (owner-signed max 1,400) (3796892a)
- specs: Sync CLI-managed ledger line into the lane β clears crew's recurring scope false-flag (7117598a)
- executed-at-load: Interim-audit items β lf-csr ratcheted to measured 28,564; lf-ssr +35 documented irreducible; baseline re-recorded, gate green (567ae251)
- bundler: Installable skeleton for the vite-ssr-prerender-wake fixture (2d9c2ec1)
- executed-at-load: Machine-record baseline at 6eaa566 (T999-prescribed) (d04516cb)
- executed-at-load: Re-anchor accepted lines to measured reality + staleness guard (2c8dc21d)
- Gitignore .fable-opus harness run evidence (like .fable-codex) (f72d3802)
- state: Ledger entry for the recordless-click dispatch fix (83e9138c)
- ci: Retrigger - the Actions outage swallowed the runs for e9db0a5 and ac8a423 (6c6fed74)
- budget: Mp-ssr shipped-JS interim 62,722 -> 62,915 (CI actuals; owner-accepted browser-lane correctness cost) (13d72f39)
- budget: Mp-ssr interim to 62,925 - covers CI (62,915) and local (62,923) actuals plus gzip variance (a32a0809)
- types: Strict TypeScript everywhere, fail-fast type gate, HMR staleness fix (6b2134e9)
- boxes: Interim re-anchors for ssr-preview walls stale behind weeks of red CI (5f55c836)
- boxes: Interim re-anchor first-Play app-bytes wall 7,523 -> 7,524 (2576c38d)
- release: 0.3.0 - eleven packages, one version (b12b7806)
- release: Point repository metadata and the publish guard at compiled-run/markless (1208519a)
β Tests
- bundler,web: Mechanical doctrine-guard suite β symbols-only fences, scan/walk bans, posture-conditional detection (runtime-demolition T007) (9fe68e5f)
- web,demos: Pin S3 β streamed shells are zero-payload, wave installments byte-identical (runtime-demolition T002 stage S3) (bc826eb9)
- bundler: Count only edit-driven reloads in the HMR race tests (3da1fb6a)
- bundler: Scope HMR reload counting to each test's fixture root (e42f0e67)
- bundler: Arm the race-test capture at the edit and make reload waits baseline-relative (de62873c)
π Other changes
Commits changelogen could not classify, oldest first. They are here because a
release note that hides most of the history is not a release note.
- merge lane/t006-boundary-recorded-once: T006 boundary decision recorded once (critique-cleared) (8d4329ba)
- merge lane/t006-boundary-recorded-once: T006 complete (fields + consumers + walls hash-stable) (87c4157e)
- merge lane/t017-storage-split: T017 storage-free decode split (critique-cleared, fixes applied) (c2a4b359)
- merge lane/t014-interface-plumbing: T014 importedModuleInterfaces live (walls now green via T017) (39faef8b)
- merge lane/t008a-render-data: T008a graph-owned renderData (equivalence-proven, consumers unmigrated) (d6e75c38)
- merge lane/t010a-shadow-ssr: T010a generic SSR renderer shadow-equal (comparator DIFFERENT-proven) (ff3fbc4f)
- merge lane/t008a-render-data: T008b consumer migration (byte-equal emission, landmines loud) (c11542a1)
- Merge branch 'lane/t010a-shadow-ssr' into lane/t008a-render-data (6c7ab209)
- revert(core,compiler,bundler,web): remove buildComputed β no new consumer API; attach keeps its mount contract (owner ruling) (a272a3d0)
- Merge branch 'lane/t010a-shadow-ssr' into lane/t008a-render-data (e5614e87)
- merge lane-f: dev/HMR parity (P4) onto the seam-complete lane; live-feed metadata pin aligned to the adjudicated legacy default (ccf7f1c5)
- Merge branch 'lane/rd-t003-gating' into lane/t008a-render-data (99b1c97d)
- Merge origin/main (cli workspace detection + 0.2.2 release) into the runtime-demolition chain (b8e36433)
- runtime-demolition finish: honest settle measurement, staged flip, determinism fixes, demo repairs (6eaa566a)
- Merge branch 'feat/docs-work' (536b3db5)
- Merge branch 'feat/release-github-changelogen' (release tooling: lockstep bump + complete release notes) (ba762605)
β€οΈ Contributors
- Jack Shelton me@jackshelton.com