Repository navigation
Define editable Styling IR and future compatibility requirements #456
Description
Goal and background
This is 2.x RFC work. A stable execution manifest does not imply a commitment to a general-purpose editable or lossless IR.
Parent tracker: #445
Baseline: 70444b18c8102fa7a9d811ec51ef96902573792c
Phase: 2.x roadmap
Ownership and scope
schema, compiler authoring/inspection, and site
Dependencies
- Formalize Manifest v1 and language v3 compatibility #450
- Produce the 2.0 freeze readiness report #454
- Define the public tooling and integration extension roadmap #455
Implementation tasks
- Distinguish the execution manifest, authoring model, source provenance, and editor mutation needs.
- Define third-party persistence, reading, upgrades, comparison, and editing use cases with compatibility tests.
- Design lossless CSS roundtripping and visual editing separately. Do not put ASTs, comments, or caches into the runtime manifest.
- Deliver an RFC, explicit non-goals, and actionable follow-up issues. Do not implicitly commit to every platform capability.
Acceptance criteria
- The RFC explains data ownership, version boundaries, failure modes, migration, and payload impact.
- Each follow-up proposal has concrete examples and testable acceptance criteria.
- The 2.0 execution contract remains clearly separate from new authoring/editor capabilities.
Validation
Check RFC examples against existing public Manifest/compiler contracts; any prototype requires scoped validation.
Completion report
Include source and test evidence, PRs, actual commands and results, and any CSS/API/syntax/migration impact. Checks that were not run or were blocked must not be reported as passing.
Final acceptance (2026-09-28)
The styling IR RFC separates execution data, source provenance, edit previews, bounded semantic comparison and lossless roundtrip research. It records ownership, version/error/migration/payload boundaries and testable follow-ups. This issue completes the RFC deliverable; #457–#460 remain open for 2.x implementation/research. No editable IR, lossless authoring guarantee or new runtime data is shipped in 2.0.
Merged into rust through PR #461 at 262adb809b928af7082107e1b5633d945cb7f427. The verified candidate is 16a90bdde96ef08ba4312e5d94aaf36d50048dca; removal commit 9d9817241 is preserved through integration merge e231a700e.
Final CI passes Linux package tests/lint/types (111/111 tasks), site build/CSS contract/Playground/lint/types and examples (36/36); Windows package tests (59/59 tasks, including Vite 676/676) and examples (36/36); Rust fmt/Clippy/workspace/codegen/parity; eight native targets; and Linux runtime/Next E2E. Runtime E2E passes 432 cases across Chromium, Firefox and WebKit, plus 10 Next cases.
Both deployments at this exact candidate pass page, canonical and removal-notice checks: Cloudflare and Vercel. Cloudflare health passes. Visual checks on the preceding candidate cover identical production site sources.
The dated audit preserves scoped commands and historical failures; this final result supersedes its pending CI status. The Compose integration review and site CSS review explain intentional contract changes. Site lint has 265 existing warnings and zero errors. No npm publication, package rename, version bump, lockfile change or release-workflow change is included.
Activity
Improve(CSS): Finalize the 2.0 freeze (#461)