Skip to content

Forma 3.2.0-rc.2 (rc, M4)

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 27 Oct 05:35
· 27 commits to main since this release
3b6c776

[3.2.0-rc.2] - Prepared; publication pending

This successor requires coordinated version preparation, fresh independent review,
exact-source CI and its own tagged packed qualification before publication. RC.1's
registry versions and original failed record attempt remain immutable.

  • FORMA-301: add optional @getforma/router for browser routes, verified
    generated HTML and typed native SSR navigation. Compatible nested layouts
    retain their DOM/state while departing owners dispose and destination islands
    adopt fresh server HTML. Include bounded cancellation/history, typed actions,
    mutation uncertainty, context revocation and explicit document fallbacks.
  • Add optional core native-owner APIs, compiler/build navigation groups and the
    native-router starter to the eight-package coordinated 3.2 inventory. Preserve
    published 3.1.0 versions, existing non-router size limits, reverse-engineering
    studies, negative controls and the
    qualification ledger.
  • D14-3.2-010: require a nonempty changelog entry for the exact tag before either
    publisher. Preflight and DS12 generation use the same parser. Missing, empty,
    neighboring-version and uncommitted-only entries cannot qualify; original
    preflight failure controls and the corrected checks remain distinct.

Milestone: rc (M4), pre-release on npm next. Every gate of rc and its predecessors is done.

Pending before later milestones:

  • before final (M5): FORMA-144 slice 3: final template and release cleanup; FORMA-191: the per-release measurements in P17; FORMA-145 soak: L-62: at least 3600 seconds of continuous fault-free CI burn-in on the exact packed RC set, including stress, fuzzers and skew/upgrade drills, after RC P17 and the independent whole-release audit; FORMA-301 acceptance: remaining supported-profile acceptance including assistive-technology/device review and documented scenario obligations, plus real getforma.dev router rollout acceptance; no fixture timing or dispatch-only event claim substitutes for those checks

Commit: 3b6c7766a1b47558e666f76236a53697b3737bde · run: 40450689494 · CI: 40448662104

Package Version SHA-256
forma-ir 3.2.0-rc.2 f2eaa7694c54d613fa5d921d8b98166d5981e144c4b1e018899b5b674adbeb36
forma-ir-derive 3.2.0-rc.2 da1936cc02c98cfa11fa951d62e27326aea0c283bed46ea8be0e3c0552d87362
forma-server 3.2.0-rc.2 b9306dd6ef3ac468cde54fc32e06db47aa5fc03c768f7553ccafe11883ef850a
@getforma/core 3.2.0-rc.2 14d4d52aaf683a386f42534eef70159bca793842cdf4f9e02620e9b31b672cc5
@getforma/compiler 3.2.0-rc.2 80a05b042ed4a127fd6fe86396bc691816be5be369ba005cc3870a6b3ea50ad6
@getforma/build 3.2.0-rc.2 4e15ad1f1d4840434090afeac474d6a9b0dd203caa31501fd3177574a3826923
@getforma/router 3.2.0-rc.2 b21a18177a41253d379c6ad04981d3ecd9b4d90b662c38c71f22187f6b395b20
@getforma/create-app 3.2.0-rc.2 f3f00e97e06a61e9d7fa95dbfc11001b5e150112fc654a6737cb081d8d153aed

Contract versions: {"stage":"v3-development","fmir":3,"manifest":2,"props":"declared-v1","stateBlock":"declared-v1","staticHtml":"plain-v1","versionWindow":"same major; writer minor at most reader minor; patch independent; package suffix omitted","version":"3.2.0","milestones":{"alpha":{"plan":"M2","tags":"v3.2.0-alpha.N: npm next, Cargo -alpha.N","gates":{"FORMA-110":{"status":"done","scope":"server functions, the WASM walker and Node rendering removed"},"FORMA-185":{"status":"done","scope":"FMIR v3 writer and reader on main, seeded-fault replay, the nightly fuzz observed"},"FORMA-112":{"status":"done","scope":"one version, the compatibility window checked at install, build and start"},"FORMA-102":{"status":"done","scope":"declared page data, the derived Rust type and the start-time bind"},"FORMA-107":{"status":"done","scope":"render returns the result, strict loading only, declared route modes, per-page limits"},"FORMA-109":{"status":"done","scope":"PageResponse only, Trusted Types enforced"},"FORMA-111":{"status":"done","scope":"the worker's digest checks, integrity on every tag, precache mode removed"},"FORMA-144 slice 1":{"status":"done","scope":"both templates on the coordinated 3.1 API, packed and verified by P17"}}},"beta":{"plan":"M3","tags":"v3.2.0-beta.N: npm next, Cargo -beta.N","gates":{"FORMA-103":{"status":"done","scope":"island props in one JSON block, compiler-bound seeding"},"FORMA-104":{"status":"done","scope":"adoption writes nothing on its first run, coded mismatch errors"},"FORMA-105":{"status":"done","scope":"islands only, literal registry, identity digest"},"FORMA-181":{"status":"done","scope":"keyed rows"},"FORMA-182":{"status":"done","scope":"the marker vocabulary and the seven value rules with shared vectors"},"FORMA-183":{"status":"done","scope":"the parity harness and its corpus, blocking in CI"},"FORMA-184":{"status":"done","scope":"renderBoth(component, state) in Forma's own suite"},"FORMA-144 slice 2":{"status":"done","scope":"island state adoption in the templates: the integrated packed adoption and static-route acceptance"},"FORMA-188 fixture applications":{"status":"done","scope":"the three fixture applications in P17"},"FORMA-021 ratchet":{"status":"done","scope":"the safe cuts landed and the size gate green at the restated ceiling"}}},"rc":{"plan":"M4","tags":"v3.2.0-rc.N: npm next, Cargo -rc.N","gates":{"FORMA-101":{"status":"done","scope":"the published server-renderable subset and coded build errors"},"FORMA-139":{"status":"done","scope":"the conformance corpus, a fixture and a near miss per code"},"FORMA-108":{"status":"done","scope":"the hostile corpus with zero executions"},"FORMA-186":{"status":"done","scope":"the deployment identity and inert-or-reload on a skew"},"FORMA-188 skew drill":{"status":"done","scope":"the skew drill green in P17"},"FORMA-190":{"status":"done","scope":"the size report green on both templates at the recorded ceiling"},"FORMA-141":{"status":"done","scope":"formaAlias warns once per build for every bare formajs importer and preserves the 3.x mapping; reviewed implementation 76df14bf in PR78"},"FORMA-145 documentation":{"status":"done","scope":"3.2 router APIs, route profiles, scaffold, compatibility, upgrade and release guides match the coordinated candidate; the 57-row current qualification ledger and exact evidence index are independently reviewed. Historical 3.0/3.1 and failed attempts retain their identities; publication, device and deployment outcomes are not anticipated."},"FORMA-116":{"status":"done","scope":"reviewed governance source controls and actual SR14 security mutation probes; live rollout deferred by L-60"},"FORMA-189":{"status":"done","scope":"the recall script and SECURITY.md generated from the release record"},"FORMA-145 audit":{"status":"done","scope":"fresh-context independent whole-release review of the exact 3.2 candidate and retained evidence, with an empty blocking list (D14)"},"FORMA-257":{"status":"done","scope":"no-JavaScript routes emit plain HTML without markers, row keys or island state while island adoption bytes remain compatible; shared visible 10/100/1000-row checks pass and the 100-row HTML is at most 17,500 bytes; rerace HTTP events 1-4 and 7 with bytes, throughput, render cost and RenderCounts retained"},"FORMA-258":{"status":"done","scope":"profile and reduce per-byte walker cost and allocations without changing adoptable bytes, limits or fault behavior; record 100/1000-row ns/byte and allocations against the 10 ns/byte target, then rerace HTTP events 1-4 with Endurance p99/p50 at most 1.5"},"FORMA-259":{"status":"done","scope":"Qualify the selected simpler supplied-node effects and initial-failure cleanup repair under docs/release/3.1-PERFORMANCE-TRADEOFFS.md: preserve adoption/ownership/cleanup/error semantics; retain fresh exact-source Linux results against published Forma and pristine alien-signals 3.1.2, all nine workloads and original 80%/85% target outcomes; explicitly accept the documented fan-out and effect-creation shortfalls, current workload costs and delivery tradeoff with core 49,926 B (the separately reviewed FORMA-294 package allocation) and route 28,420 B gzip ceilings, leaving other budgets unchanged"},"FORMA-260":{"status":"done","scope":"Complete source-bound row profiling and preserve stable row/event/ownership/teardown behavior under docs/release/3.1-PERFORMANCE-TRADEOFFS.md; retain all nine fresh exact-source DOM operations and three-engine correctness; accept and disclose the existing create-1,000 gap above 1.10 times same-session vanilla for 3.1, retain rejected experiments as historical, separately include the reviewed default-off clientTemplates compiler option under docs/release/FORMA-294-COMPILER-CANDIDATE.md, and investigate any material new regression before release"},"FORMA-261":{"status":"done","scope":"opt-in br/gzip/identity rendered-response compression has correct negotiation, Vary and length behavior, unchanged decoded bytes/no-store/CSP/HEAD semantics, and an explicit reviewed BREACH policy; rerace event 7 and HTTP events 1 and 3 with throughput, CPU, memory and tail latency"},"FORMA-262":{"status":"done","scope":"both generated-template CI/release workflows cache locked Cargo builds and retain cold/warm page-only build evidence; evaluate disk-loaded release FMIR and record the decision without changing the existing development reload contract"},"FORMA-263":{"status":"done","scope":"retain the bundle component breakdown, remove only proven unused/adoption-specific bytes, publish exact raw/gzip/Brotli deltas with all correctness and existing size budgets passing, and preserve runtime export/activation/disposal behavior"},"FORMA-264":{"status":"done","scope":"freeze the round2 protocol before implementation, run native island correctness for all 11 entrants, rerace and report each fix, establish the qualified native Linux baseline, and enforce memory ≤ 8 MiB, boot ≤ 50 ms and image ≤ 150 MB with source/browser/image identity, scoped cleanup and retained failures; the user-approved 2026-10-24 gha-4-v1 baseline is a separate profile with Class A 1 CPU/1 GiB, Class B 2 CPU/2 GiB and disjoint 2-CPU load generation, preserving the original native-8-v1 profile and prohibiting cross-profile performance-gain claims"},"FORMA-301 candidate":{"status":"done","scope":"RC.2 product/harness source bdc691e1 passed hosted packed qualification 40441486845: all eight coordinated archives and three starters, 75/75 P17 checks in 1266.223 seconds, unchanged limits and complete cleanup. The same archives pass native90 and paired 12,287/12,288 B incremental and 40,715 B group limits. Documentation-only successor 5b44312e passed CI 40442597606 plus security, budgets and scaffold-cache checks; original failed README-pin jobs and cancellation remain retained. Independent review preserves narrow documentation/source applicability and original archive identities. Exact final main/tag CI and tagged P17 still qualify their own archives; failed immutable RC.1 is not a release or burn-in baseline."},"FORMA-301 publisher":{"status":"done","scope":"The qualified RC.1 router bootstrap published the exact verified archive. The temporary GitHub secret was removed and the npm token was confirmed absent. The actual router GitHub trusted publisher names getforma-dev/forma, release.yml and npm-publish; package policy requires 2FA and disallows bypass tokens. Its first actual OIDC publication remains an RC.2 outcome to verify. No bootstrap credential is needed or authorized for RC.2. Complete five-package observer and eight-package registry reconciliation remain post-record obligations."}}},"final":{"plan":"M5","tags":"v3.2.0: npm latest, Cargo 3.2.0","gates":{"FORMA-144 slice 3":{"status":"pending","scope":"final template and release cleanup"},"FORMA-191":{"status":"pending","scope":"the per-release measurements in P17"},"FORMA-146":{"status":"done","scope":"Q10 to Q13 and Q14 to Q18 defaults confirmed by the founder in L-57 on 2026-10-15; see docs/release/3.0-GATE-DISPOSITIONS.md"},"FORMA-145 soak":{"status":"pending","scope":"L-62: at least 3600 seconds of continuous fault-free CI burn-in on the exact packed RC set, including stress, fuzzers and skew/upgrade drills, after RC P17 and the independent whole-release audit"},"FORMA-301 acceptance":{"status":"pending","scope":"remaining supported-profile acceptance including assistive-technology/device review and documented scenario obligations, plus real getforma.dev router rollout acceptance; no fixture timing or dispatch-only event claim substitutes for those checks"}}}},"informational":{"decision":"L-57 (2026-10-15): application runs do not gate 3.0.0; no application repository is touched","FORMA-192":{"status":"not-run","scope":"optional external application builds; excluded from this release task"},"FORMA-147":{"status":"not-run","scope":"optional external login spike; excluded from this release task"},"FORMA-116 live rollout":{"status":"deferred","decision":"L-60 (2026-10-16)","owner":"Victor","scope":"beyond 3.0: separate agent GitHub identity and scoped credentials; new founder-only protection enforcement and distinct-identity denial drills; external alert receiver, scheduler and real delivery acceptance","risk":"agents continue using the founder identity, so GitHub does not independently separate their administrator/release authority; external alert delivery remains unavailable; these criteria are deferred, not passed"},"currentScope":"3.2 adds optional routing and its coordinated package/starter, preserves inherited 3.1 baseline behavior, and newly includes the requested getforma.dev ecosystem adoption. Fresh candidate gates above prevent historical completion records from authorizing this release.","baseline":{"version":"3.1.0","source":"9a570afece5eb5091824422f00134a875310e857","scope":"Inherited unchanged gates retain their prior completed baseline; new 3.2 candidate, documentation, independent audit, publisher and final gates remain pending until independently evidenced."}},"trustedTypes":"enforced-v1","boundRender":"finalized-v1","assetIntegrity":"sha384-v1","sourceTemplates":"islands-v1","fixtureApps":"declared-v1","deploymentSkew":"native-v1","performance":"measured-v1"}

Tag-event run to acknowledged release write: 3504.5 seconds; target 1800 seconds. Full measurements and DS11 hashes are in the attached JSON.

P17 ran 1236 s of 1,800 s; the most Forma code on any fixture route is 28,207 B of 28,420 B gzip -9 (fauth /platform/benchmark); measured on Linux X64, 4 CPUs, Node v24.22.0. N1 slowest p99: 4,727,007 nodes/s; N5 median paired ratio 23.00; mobile worst p95 TBT 0.0 ms. Public decoder worst sample 25.30 ms at four-times CPU slowdown. All three client comparison engines and both public budget refusals are recorded; packed npm and crates; ordinary cargo release; N1 prepared typed inputs; Lighthouse13.5.0 applied mobile; serial Chromium/Firefox/WebKit comparison.

Inventory-only publication recovery: the attached receipt records the original archives and failed recording outcome for v3.2.0-rc.1. It does not establish a performance or burn-in baseline, and does not change the original failed workflow.