Skip to content

Add per-wire end coverings and dimensioned strip length; bump to 0.1.4 - #6

Merged
shawnpatel merged 1 commit into
mainfrom
per-wire-end-coverings
Sep 10, 2026
Merged

shawnpatel merged 1 commit into
mainfrom
per-wire-end-coverings

Conversation

@shawnpatel

@shawnpatel shawnpatel commented Sep 10, 2026 •

Copy link
Copy Markdown
Member

Wires take endCoverings ({ from|to: { covering, lengthMm } }) so a piece
of heatshrink can be applied to one wire alone at its termination — e.g.
over each solder joint at a connector — instead of sleeving the whole
bundle via a segment covering. Nodes with end-covered wires get a longer
fan-out; sleeves are drawn on each wire's own lead with a callout, added
to the BOM covering totals, and noted in the wire list. Validation rejects
end coverings on jumpers or longer than the wire.

Terminals take stripMm; bare/tinned ends draw a longer exposed conductor
(copper for bare) with a STRIP n mm dimension, and every wire ending at a
terminal with stripMm gets a wire-list note.

Also widens the wire list NOTES column and makes note wrapping conservative
for uppercase text so notes stop running into the title block.

Co-authored-by: Cursor cursoragent@cursor.com


Note

Low Risk
Additive schema and rendering/BOM behavior with validation guards; version bump only affects published packages.

Overview
Adds per-wire endCoverings so heatshrink (or other coverings) can be specified on individual wire terminations instead of only on whole bundle segments. Layout widens fan-out at affected nodes (leadGaps / FANOUT_SLEEVED), SVG draws sleeves on each wire’s lead with callouts, and BOM/wire-list totals and notes include these pieces. Validation blocks end coverings on jumpers or longer than the wire.

Terminals gain optional stripMm: bare/tinned ends show a longer exposed conductor (copper on bare) with a STRIP n mm dimension; all terminal styles get strip notes in the wire list.

Also bumps packages to 0.1.4, widens the wire list NOTES column, and tightens note word-wrap for uppercase text. Docs, skill reference, and the branched battery example demonstrate solder joints with per-pin heatshrink.

Reviewed by Cursor Bugbot for commit be3bfe5. Configure here.

Wires take `endCoverings` ({ from|to: { covering, lengthMm } }) so a piece
of heatshrink can be applied to one wire alone at its termination — e.g.
over each solder joint at a connector — instead of sleeving the whole
bundle via a segment covering. Nodes with end-covered wires get a longer
fan-out; sleeves are drawn on each wire's own lead with a callout, added
to the BOM covering totals, and noted in the wire list. Validation rejects
end coverings on jumpers or longer than the wire.

Terminals take `stripMm`; bare/tinned ends draw a longer exposed conductor
(copper for bare) with a STRIP n mm dimension, and every wire ending at a
terminal with stripMm gets a wire-list note.

Also widens the wire list NOTES column and makes note wrapping conservative
for uppercase text so notes stop running into the title block.

Co-authored-by: Cursor <cursoragent@cursor.com>
@vercel

vercel Bot commented Sep 10, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
harness-studio Ready Ready Preview Sep 10, 2026 9:33pm UTC

Request Review

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit be3bfe5. Configure here.

return [{ x: box.facesRight ? box.x + box.width : box.x, y: box.y + box.height / 2 }];
// Pinless nodes only get a straight stub when something (an end
// covering) needs to be drawn on it
if (gap > 0) return [anchor, { x: rightSide ? anchor.x + gap / 2 : anchor.x - gap / 2, y: anchor.y }];

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

End-covering stubs face the wrong side

Medium Severity

Pinless nodes other than diodes and resistors always grow the endCoverings stub in the facesRight direction. A mid-tree splice or breakout therefore draws the sleeve on the parent side even when the covered wire leaves toward a child, so the heatshrink appears on the wrong lead.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit be3bfe5. Configure here.

{ title: "COLOR", width: 74, align: "middle" },
{ title: "LEN (MM)", width: 58, align: "middle" },
{ title: "NOTES", width: 128 },
{ title: "NOTES", width: 190 },

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Letter notes collide with title block

Medium Severity

Widening the wire-list NOTES column to 190 shrinks the sheet-notes band on Letter to about 8px. Notes wrap to fragments and run into the title block — the overflow this change set out to stop.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit be3bfe5. Configure here.

@shawnpatel
shawnpatel merged commit 948ad60 into main Sep 10, 2026
4 checks passed

This branch was successfully deployed

1 active deployment
Preview — be3bfe59 Deployed Sep 10, 2026 by vercel[bot]
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