feat: add the declarative .oven system and React oven kit#13
Open
apresmoi wants to merge 90 commits into
Open
Conversation
…and adopt in Checklist
… adopt in Checklist ledger
…n Checklist KPI strip
…l Parity poll + Streaming Diff SSE onto it
… oven/ (verbatim)
…/DomainNote/ImageTriptych/FrameCard) into oven components
…+ rich slots via fixed registries)
…cklist chart math to TypeScript
…-drop, inflight coalescing, scenario/field-view)
…nation, empty views) + capture root className
…al-testing-render.js (region 1)
…eldRows/visibleFields) into render module (region 2)
… controller apply/paint (region 4)
…lock) into differential-testing-template.js (region 3, verbatim)
…d->ovens css imports; delete VP/SD renderer folders
… against the goldens
…(differential-testing region 1)
…ferential-testing region 3)
… (differential-testing region 4a)
… list (differential-testing region 4b)
…ial-testing region 6)
…elta charts (differential-testing region 7)
…ferential-testing region 7)
…to oracle goldens (differential-testing region 7)
…ic instead of a crash
…search, filter, sort, and paging re-fetch
…control-change re-fetches are accepted
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
dashboard/src/oven/) at 100% visual and behavioral parity with the previous UI..ovensystem: an XML authoring format compiled to a frozen IR and rendered by a shared reducer-backedOvenRuntime. All five ovens (Checklist, Streaming Diff, Differential Testing, Visual Parity, Performance Tracing) render live from a.ovenat byte-identical DOM parity..ir.jsonis generated at build time (no longer committed),detail.jsonis removed via a schema-v5 oven migration (legacy runs still read), and each oven is now<id>.oven+instructions.md+ a thin engine data layer.burnlist oven create/forkplus a generic dashboard render path that serves and renders a bound custom oven's data..ovenDSL reference, and a "designing ovens: measure what you can't fake" guide. The generatedskill.mdleads with concepts, setup, and honest-measurement.Validation
npm run build:dashboard,npm run verify, andnpm run verify:packagepass on Node 18.20.8, 20.19.6, and 22.cd website && npm run buildpasses.304 Not Modifiedpolling, oven fork ids, switch default cases, malformed input) have dedicated behavioral tests alongside the DOM goldens.Structure
**/goldens/and*.golden.html).dashboard/src/oven/(the React oven kit) →src/ovens/dsl/(the.ovenXML → IR compiler) →dashboard/src/oven/runtime/(OvenRuntime, reducer, collection pipeline, adapters, poll transport) →ovens/<id>/(the five.ovenfiles + thin engine data layer) →src/server/+src/cli/(custom-oven discovery, create/fork, generic render + data serving) →skills/burnlist/+website/(skill, docs, onboarding).dashboard/src/oven/differential-testing-render/*.js), the DT engine, and the dashboard server are pre-existing files relocated during the migration; they back the frozen golden oracle (AGENTS.md names them as decomposition targets). Newly-authored logic files are ≤400 lines.Notes
dependenciesstays empty (zero runtime dependencies); the engine layer stays.mjs.