websem: admit same-document static SVG markers - #115
Conversation
|
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: Pro Plus Run ID: ⛔ Files ignored due to path filters (198)
📒 Files selected for processing (22)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. WalkthroughThis change adds bounded static SVG marker compilation for four shape types and preserves marker topology, placement, viewport clipping, effects, and transactional refusal behavior. It also adds explicit hard or anti-aliased clip policies across the rendering pipeline and updates tests, fixtures, and capability records. ChangesSVG rendering changes
Estimated code review effort: 5 (Critical) | ~120 minutes Merge Risk: ⚪ Minimal · up to The PR adds bounded same-document static SVG markers with explicit clipping and refusal behavior while preserving existing rendering defaults. Tests and validation checks pass, and no actionable merge-blocking risk remains after normal checks and review. Sequence Diagram(s)sequenceDiagram
participant SVGDocument
participant compile_leaf
participant ParsedPath
participant ChildWalk
participant ClipPath
SVGDocument->>compile_leaf: resolve marker references
compile_leaf->>ParsedPath: prepare authored marker positions
compile_leaf->>ChildWalk: compile selected marker sources
ChildWalk->>ClipPath: apply hard marker viewport clip
ChildWalk->>compile_leaf: append marker items or return refusal
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 46.15% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 78 functions across 11 files. (11 skipped: 10 unsupported, 1 too large.)
✨ 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 |
Verdict
ADMIT/SPLIT, with no checklist closure.
This lands a bounded M1 profile for same-document static SVG vertex markers on
<line>,<path>,<polyline>, and<polygon>. The<marker>element, its three direct presentation attributes, the four CSS property rows, and the six marker-resource attribute rows stay open for the wider source, cascade, grammar, dynamics, and external-resource surface.What landed
marker-start,marker-mid, andmarker-endreferences through one same-document first-id table. CSS ingress remains quarantined at the pinned Stylo cap; no matcher was added around the cascade.viewBox, andpreserveAspectRatiomapping before the frame.rframe::ClipEdgeModefact because Chromium marker viewports use hard clip edges; existing geometric clips keep anti-aliasing by default.Measured crux and law audit
Chromium 149.0.7827.55 was probed through the shared hash-pinned capture module, and every candidate was rendered through both actual
n0admissions.The raster crux was decisive: changing the marker viewport from hard to anti-aliased clipping changes Chromium pixels. A deliberate Hard → AntiAliased perturbation made
just gatefail on 17 named marker cells; restoring the hard edge returned the full gate to green.The manual law pass found and fixed two silent-pixel classes before review:
shape-rendering="crispEdges"differs from default by 128 pixels at Δ255; rootpaint-order="stroke fill"differs by 121 pixels at Δ188. Both admissions previously painted the default. A stable marker refusal now guards attribute and inline-style ingress.nonefor client opacity composition. A selected real marker still chooses combined composition when its viewport is zero or source is empty. The former route isolated every syntactically present reference, making the amplified missing/wrong controls 997 pixels at Δ2 wrong and the unselected-mid control 380 pixels at Δ2 wrong. Selection now requires an authored position kind resolving to an actual marker resource; five committed cells guard both sides.Evidence
just bake,just gate, andjust statuspass.cargo testpasses.cargo clippy --no-depspasses cleanly.cargo fmt --all -- --checkandgit diff --checkpass.Review roles and boundaries
No Workflow runner is exposed in this environment, so
.agents/workflows/verify-rung.jscould not be invoked. I reproduced its roles manually:websem;rframecarries only a generic resolved clip-edge fact.External resource loading is a separate family and remains TODO. Dynamics, wider marker-source composition, resource-side cascade, complete resource grammars, and CSS marker properties remain named boundaries.
No conformance score was produced or inspected. No FLIP record, rule, or baseline changed.