websem: admit static nearest SVG text faces - #129
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: Team Run ID: ⛔ Files ignored due to path filters (4)
📒 Files selected for processing (25)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. WalkthroughOracle v7 replaces exact static face matching with directional nearest-face selection. It adds typed refusals for synthetic weight/style and winning-tuple ambiguity, expands SVG and CLI coverage, and records the new fixture and documentation state. ChangesStatic nearest-face selection
Estimated code review effort: 4 (Complex) | ~45 minutes Merge Risk: ⚪ Minimal · up to The nearest-face resolver change is permitted in this crate, and no actionable current-head risk remains. Sequence Diagram(s)sequenceDiagram
participant SVG
participant TextLayout
participant FontEnvironment
participant ChromiumOracle
SVG->>TextLayout: submit font request
TextLayout->>FontEnvironment: select static nearest face
FontEnvironment-->>TextLayout: return selected descriptor or ambiguity
TextLayout-->>SVG: render or refuse synthesis
SVG->>ChromiumOracle: compare rendered pixels
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 78.26% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 46 functions across 12 files. (13 skipped: 13 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 |
Verdict
T5c is ADMIT / SPLIT.
This advances the admitted SVG text slice from exact-only face selection to deterministic nearest static face selection. It does not tick any checklist row: wider fractional weights, arbitrary stretch percentages, oblique angles, descriptor grammar, variable-font selection, and synthesized faces remain separate work.
textlayout-v7AmbiguousFaceSyntheticFaceRequiredbefore shapingChromium measurement
Measured with Chromium 149.0.7827.55.
The committed cell covers 16 discriminating branches:
Every losing-branch mutation changes exactly 85 pixels at maximum channel delta 255. An independent all-exact-Ahem construction is RGBA-identical to the admitted result.
Equal winning tuples remain CSS source-order sensitive (measured, not celled), so environment order is deliberately not a tie-breaker.
Chromium begins synthetic bold at requested weight 600 when the selected face is below 600; selected weight 600 suppresses it. Synthetic italic and combined synthesis are also observable. Outline calibration did not produce a stable platform-independent realization (measured, not celled), so synthesis is quarantined for a later rung instead of emitting wrong pixels.
Evidence and records
The new cell renders through the actual
cargo run -p n0_cli --bin n0seam and is RGBA-identical to Chromium.Gate sensitivity
Before trusting the gate, I deliberately reversed the 400–500 weight branch. The full fixture gate failed loudly on the new cell by selecting its Allerta losing control. I restored the implementation and reran the full gate green.
Verification
cargo test -p textlayout -p csscascade -p websem -p rframe -p n0 -p n0_clicargo fmt --allcargo clippy --no-depsjust bakejust text-bakejust text-geometry-bakejust gatejust statuscargo runprobes for all 55 measured candidatesThe configured Workflow runner is not exposed in this environment. I therefore reproduced the independent TICK/LAW and REPRO roles by hand, applied their findings, and reran the affected checks. Both manual reviews pass.