Skip to content

SVG plan export (F33): to-scale layout.svg in the Download files zip - #161

Merged
ntindle merged 1 commit into
mainfrom
poteto/svg-plan-20261101-0710
Nov 1, 2026
Merged

ntindle merged 1 commit into
mainfrom
poteto/svg-plan-20261101-0710

Conversation

@ntindle

@ntindle ntindle commented Nov 1, 2026

Copy link
Copy Markdown
Owner

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):

  1. Set drawer 15 × 12 in, printer Bambu Lab A1 — expect "4 baseplates · 5 spacers" and a rendered preview.
  2. Toggle half-size bins on — expect a finer grid — then off — expect the exact original layout restored.
  3. Confirm Download files, Share link, Bin labels, and Print plan are present.
  4. Place a bin (e.g. 4 × 3, 3u) with a label, then Download files — expect the success toast naming the zip.
  5. Inspect the downloaded zip: expect layout.svg at 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:".
  6. Report any console errors (expect none).

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%.
@netlify

netlify Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for gridfinity-drawer-planner ready!

Name Link
🔨 Latest commit 7dcc487
🔍 Latest deploy log https://app.netlify.com/projects/gridfinity-drawer-planner/deploys/6ae75c8b73fe3d939d75a78f
😎 Deploy Preview https://deploy-preview-161--gridfinity-drawer-planner.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@github-actions

github-actions Bot commented Nov 1, 2026

Copy link
Copy Markdown

PR Quality Report 📊

Check Status
TypeScript ✅
ESLint ✅
Tests ✅
Build ✅

View detailed results

@codecov

codecov Bot commented Nov 1, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
⚠️ Please upload report for BASE (main@4b6fc86). Learn more about missing BASE report.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #161   +/-   ##
=======================================
  Coverage        ?   94.09%           
=======================================
  Files           ?       73           
  Lines           ?     3707           
  Branches        ?     1085           
=======================================
  Hits            ?     3488           
  Misses          ?      198           
  Partials        ?       21           
Flag Coverage Δ
unittests 94.09% <100.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@ntindle

ntindle commented Nov 1, 2026

Copy link
Copy Markdown
Owner Author

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.

@ntindle
ntindle merged commit c918bda into main Nov 1, 2026
33 checks passed
@ntindle
ntindle deleted the poteto/svg-plan-20261101-0710 branch November 1, 2026 15:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant