Standard parts (partsLibrary.js)
- ACDC TXL palette: 15 solids plus the 16 stocked stripe combinations
- 29 wire functions fix colour, stripe and gauge per signal, so a wire
drawn from a given pin comes out identical on every build
- 16 pre-labelled parts: Skudak VCU (GRAY/BLACK), openinverter LDU
23-pin, Dilong OBC/DCDC, BMW pedal, Honeywell CSSV1500, Bender
ISO175, Bosch iBooster, Prius EPS, Volvo PS pump, cluster, DNR
switch, 32-way enclosure bulkhead, contactors, VW MEB BMS
- OEM colours override the in-house standard where we splice into a
factory loom (VW MEB LV connector, recovered from the VW bms diagram)
- Brown is ground, matching the MEB loom and European practice; orange
is reserved for AC mains and OEM high-voltage runs
Fuse box configurator (pdmLibrary.js)
- GEP FRH-A12/A24 and the 48-way PDM as 280-footprint cavity grids
- Place, drag and rotate fuses, relays, diodes, breakers and bus bars
- Bus bars occupy their own collision layer and feed the blades they
cross, suppressing those inputs so one wire supplies the run
- Cavity capacity is tracked; Apply is blocked while a placement
overlaps or overhangs
- Naming a circuit renames its pins: "VCU" gives "VCU in" / "VCU out"
Theming (theme.js)
- Light and dark modes; canvas background, grid dots, part fill and
part outline are configurable and persisted
- CSS converted to custom properties with property-aware light-mode
pairs, since a colour used as text and as a surface must flip
differently; no rule falls below 3:1 contrast in either theme
- Canvas devices, pins, labels, cable rows and the harness view are
themed too, since Konva bakes colours in at draw time and cannot
read CSS variables
Also
- Pass-through bulkheads: one device covering both connector faces,
with a single centred label per circuit
- Pin labels scale with the device font instead of a fixed 8px
- Keyboard handling is modal-scoped, so Delete no longer removes the
canvas device while the fuse box editor is open
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
- History panel defaults to "This diagram" / "All" toggle
- "This diagram" filters git log to commits that touched only that
diagram's JSON file (git log -- diagrams/0001_*.json)
- Automatically switches to "All" when no diagram is open
- Restore flow still works per-commit, per-file
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Git modal (⎇ Git button): commit all diagrams as JSON to diagrams/ folder,
push to remote, view history, restore any diagram from any past commit
- Diagrams exported to diagrams/{id}_{name}.json on each commit so diffs are
human-readable and individual diagrams can be restored independently
- backend/run.py: changed host to 0.0.0.0 for LAN access
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>