websem: admit ordered radial gradient circles - #134
Conversation
Preserve both circles and one-stop cone domains through the shared paint contract. Add 127 Chromium cells and 27 focused refusals without closing fx/fy/fr. Graduate the former focal refusal source unchanged; deliberately drop its obsolete inexpressibility assertion after re-homing the geometry in positive evidence. Keep frozen writers and preview-cache precision behind explicit guards.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Team Run ID: ⛔ Files ignored due to path filters (280)
📒 Files selected for processing (37)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. WalkthroughThis change adds optional ordered start and end circles to radial gradients, preserves them through SVG import and runtime rendering, rejects them at unsupported serialization and preview-cache boundaries, and expands tests, fixtures, corpus records, and documentation for the new contract. ChangesOrdered radial-circle support
Estimated code review effort: 5 (Critical) | ~120 minutes Merge Risk: ⚪ Minimal · up to No actionable merge-blocking risk remains. Sequence Diagram(s)sequenceDiagram
participant SVG as SVG radialGradient
participant Websem as websem parser
participant CG as cg radial paint
participant N0 as n0 renderer
participant Cache as scene cache
SVG->>Websem: fx / fy / fr + stops
Websem->>CG: RadialGradientPaint with optional geometry
CG->>N0: compiled radial paint
N0->>N0: use conical shader when geometry exists
N0->>Cache: submit frame or replacement drawlist
Cache->>Cache: reject preview caching if geometry exists
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 82 functions across 25 files. (12 skipped: 12 unsupported.)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Outcome
Admit the bounded SVG
fx/fy/frslice through the engine of record. Keepall three checklist rows open: Chromium-honored numeric provenance aliases
and CSS comments still require named refusals and have no own checklist row.
Measured crux and contract
The proposed start-only extension with a fixed nonzero end circle could not
represent Chromium's live zero-end radial. The owner GO ratifies the corrected
ordered-circle amendment: an optional pair preserves both centers, both
nonnegative radii, and their order. The absent form preserves old centered
serialization, debug output, and rendering. An independent producer maintainer
implemented cg/n0-model; consumers copy the complete fact without converting
through alignment or renormalizing geometry.
The probe also caught a shipped one-stop constant-fold escape: one color does
not mean an infinite painted domain. Chromium leaves 109 exterior pixels
unpainted, at maximum channel delta 217 against the old full-solid result.
The new route keeps the conical shader even for a one-stop ramp, including
repeat/reflect and zero-end cases.
Evidence and safety
just add, then Chromium-baked through theexisting hash-pinned capture module. All 1,157 old oracle records/PNGs and old
manifest records are unchanged. Total: 1,284 primitives plus 16 sampled frames;
the 16 text pixel cells and 8 real-font geometry witnesses are unchanged.
measured bounds only: six 1px/Δ1 cells, mask 613px/Δ1, offset-filter 1,465px/Δ1.
No blanket tolerance, old-cell weakening, numeric-control tolerance, or
oracle overwrite.
64 boundary, 2 HTML, and 2 graduation sources. Every source also rendered
through actual
cargo run -p n0_cli --bin n0in strict and best effort.The 9 amplified decimal/percentage/midpoint aliases choose the lower binary32
neighbor; opposing controls differ 718–1,024px/Δ14–34. A separate amplified
diagonal experiment did not discriminate Chromium controls and reached
checked shader-construction refusal: no new normalization claim is made.
Wider value/context families retain their own rows. No private CSS matcher,
external I/O, animation, marker-source expansion, or other family is added.
paints and strokes; frozen schema and old decoding are unchanged. Legacy
painting carries the fact; legacy SVG import remains unchanged in scope.
node-attributed cache refusal occurs before canvas/cache mutation. Direct
retained-frame replay equals fresh, and paint changes retain owner damage.
This does not attempt a generic cache precision repair.
Captured-essence ledger: the old focal refusal source graduates unchanged to
svg-radial-start-graduated-focal. Its obsolete inexpressibility assertion isdeliberately dropped. The temporary one-stop refusal is replaced by positive
domain witnesses. No other refusal, oracle, or unrelated caveat is dropped.
Gate sensitivity
Deliberately removing the start radius fails 79 cells (max 3,072px/Δ255); reversing
circle order fails 108 (max 4,096px/Δ255); replacing the normalized diagonal with
width fails 2 cells (each 1,116px/Δ214); premature one-stop folding fails 4
(three 109px and one 1,938px, all Δ217). Restore each mutation; final complete
just gateandjust statusare green, including every retained refusal.Verification
just bake,just gate,just status: passed; additions-only manifest andoracle audit passed, capture policy/hash unchanged.
consumer tests, and legacy all-target check: passed.
cargo fmt --all -- --check,cargo clippy --no-deps, and CI's workspaceClippy with
-D warnings: passed.cargo testpassed all non-Web crates, then itsalready-built status test failed after the audit corrected the generator
mid-run. A fresh complete
cargo test -p websempassed, as didcargo test --workspace --doc. The final cache suite, retained-frame replay,and active/inactive frozen-format guards passed after their last edits.
Independent REPRO: passed after fixing and independently rerunning the
scratch graduation wrapper against the moved, unchanged positive source.
No
must_fixorshould_fixfindings remain.ffc820e9, including the complete Linuxtest suite, strict Clippy, canvas build, legacy pixel sweep, native host and
architecture gates, and docs/Node builds. The existing eight new measured
blocks sufficed on Linux; no oracle or tolerance was changed for CI.
CodeRabbit completed with no actionable comments.
No Workflow runner is exposed in this environment, so
.agents/workflows/verify-rung.jscould not be invoked throughscriptPath.Its independent TICK/LAW and REPRO roles are reproduced manually by separate
reviewers, not presented as a successful Workflow invocation.
No conformance score was produced or inspected. No FLIP record, rule, or
baseline changed. No checklist tick changed; #81/#89/#90 split precedent
applies. External resources, text, generic damage/cache work, and #93 remain
separate follow-ups.