Repository navigation
SVG plan export (F33): to-scale layout.svg in the Download files zip - #161
Conversation
The Download files zip gains layout.svg, a real-scale top-view plan of the drawer in millimetres: the drawer outline, baseplate, spacer, and half-size rects at their laid-out positions, and placed-bin rects labeled with the bin label or grid size. Label text is XML-escaped and omitted for pieces too narrow to fit it. The zip README documents the plan for laser and cutting workflows; the Download files button title and screen-reader text mention it. No DXF yet. Feature map: F33 not present to partial, parity 51.0% to 52.0%.
✅ Deploy Preview for gridfinity-drawer-planner ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
PR Quality Report 📊
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #161 +/- ##
=======================================
Coverage ? 94.09%
=======================================
Files ? 73
Lines ? 3707
Branches ? 1085
=======================================
Hits ? 3488
Misses ? 198
Partials ? 21
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
Lane B PASS on the deploy preview (browser task browser-task:df93c362, recovered via subagent.list after direct delivery stalled — same pattern as the 2026-10-30/31 runs). Core tasks PASS: 15x12 + Bambu Lab A1 -> "4 baseplates · 5 spacers", preview rendered with baseplates 6x6, 3x6, 6x1, 3x1; half-size on -> finer 12x12 grid, off -> restored exactly; Download files, Share link, Bin labels, Print plan all present. The Download files button now reads "Download files (STL, 3MF, and SVG plan, zipped)". Feature PASS: placed "Bin 4 x 3 · 3u" labeled "Screws" in the top-left corner; toast "Downloaded gridfinity-15x12in.zip / 10 parts as STL files and 3 prints as 3MF plates". No console or page errors. Independent zip check (downloaded preview artifact, 504 KB): layout.svg present at the top level; viewBox "0 0 381 304.8" with width 381mm / height 304.8mm; bin rect x=0 y=0 width=168 height=126 (4x42, 3x42) with centered "Screws" text; SVG parses as XML; README carries the "Layout plan:" line; 10 STL + 3 3MF entries match the toast counts. |
SVG plan export (F33): to-scale layout.svg in the Download files zip
The Download files zip gains
layout.svg, a real-scale top-view plan of the drawer in millimetres: the drawer outline, baseplate, spacer, and half-size rects at their laid-out positions, and placed-bin rects labeled with the bin label or grid size. Half-size pieces are labeled in half-cell counts, matching the on-screen preview. Label text is XML-escaped and omitted for pieces too narrow to fit it; a whitespace-only bin label falls back to the grid size. The zip README documents the plan for laser and cutting workflows, including that the plan draws placed bins even when a bin is left out of the print files. The Download files button title and screen-reader text mention the SVG plan. No DXF yet.Feature map: F33 not present to partial, parity 51.0% to 52.0% (23 ✅ + 6 🟡 / 50, recount verified by the harness and the independent reviewer).
Perf vs trunk (same box,
node scripts/measure.mjs --n=15 --lh=3, two pairs, second reversed): branch Lighthouse 75 / 79, TTI 3564 / 3421 ms, input-to-preview 43.6 / 36.9 ms, layout 480 / 500 ms, share 77 / 82 ms; trunk Lighthouse 78 / 76, TTI 3446 / 3552 ms, input-to-preview 48.6 / 30.5 ms, layout 503 / 499 ms, share 75 / 73 ms. Verdict: no credible regression — pair 1's load gap reversed in pair 2 and within-side swings exceed every branch-trunk gap; the diff touches no measured code path (the new work is a pure function in the lazy export chunk that only runs on download, plus a title and screen-reader string change). Bundle: index chunk 237,798 -> 237,857 B (+0.02%); lazy export chunk 23,535 -> 25,153 B (+6.9%).Local gates: npm test 622 passed / 11 skipped before the review amend (plus 2 new tests with it, 24 targeted tests green after), lint clean, tsc clean, build green. Independent review: SHIP IT on commit ab4ab30 (no blockers) plus SHIP IT on the amend delta (reviewer nit fixes + scoreboard section).
Lane B steps (deploy preview):
layout.svgat the top level,viewBox="0 0 381 304.8"for the 15 × 12 in drawer, a bin rect at the placed bin's millimetre position with its label as text, and a README line starting "Layout plan:".