velxio/frontend/src/components
David Montero Crespo 9e5ae8baf6 fix(breadboard): derive seating at element mount — closes run-before-seating race
A part can land in the store at its FINAL position before its element
mounts: the agent streams add_component and the seating move in one batch,
and updateComponent's reseat then finds no DOM (computeSeating null) and
keeps the empty seating. Nothing re-derived it afterwards — the agent-side
seat correction skips when the position needs no nudge, and 'pininfo-change'
only fires on pin-SET swaps, not on plain init. Meanwhile run_simulation
executes right after the SSE round, before the correction's animation frame.

Net effect, reported by a user as a suspicion that turned out exactly right:
a clock the agent built and ran in one turn showed a dead display, while
reloading the project and running it worked — bb seating wires are persisted,
so on reload they exist before Run is pressed.

DynamicComponent now reseats once the element's pinInfo first becomes
measurable (same polling cadence as the pinInfo-ready effect), which closes
the hole for every path that stores a final position before mount: agent
batches, project load, undo. To keep that free on load,
reseatComponentOnBreadboard skips the store write when there is nothing
seated and nothing to clear — otherwise every off-board part would churn the
wires array identity once per mount.

Verified live end-to-end: agent adds + seats + wires + compiles + RUNS in a
single turn; the seated LED blinks immediately (4 transitions sampled), with
all 4 seated-pin markers present — no reload needed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 17:39:29 +02:00
..
analog-ui feat(breadboard): hover-gated labels + full-footprint seating solver 2026-07-19 05:28:40 +02:00
components-instruments
customChips refactor(custom-chips): move the AI entry point out of OSS into an overlay slot 2026-07-17 04:36:14 +02:00
editor refactor(verify): extract store-driven pre-flight verification into verifyFromStore 2026-07-18 06:44:38 +02:00
examples redesign(examples): compact toolbar + denser grid + fix card black bars 2026-07-16 06:09:02 +02:00
layout feat(editor): follow-up GitHub star prompt for past dismissers 2026-06-15 22:15:14 +02:00
raspberry-pi feat(ui): replace native confirm() dialogs with reusable modal 2026-07-18 01:59:18 +02:00
simulator feat(breadboard): green dots on pins plugged into a breadboard 2026-07-20 04:48:16 +02:00
ui feat(ui): replace native confirm() dialogs with reusable modal 2026-07-18 01:59:18 +02:00
velxio-components feat(ssd1306): add the 4-pin I2C OLED module + examples on Uno/ESP32/Pico/STM32 2026-07-09 23:13:50 +02:00
ComponentPickerModal.css fix(canvas): stack pins with their component + pickers above floating panels 2026-07-17 18:44:58 +02:00
ComponentPickerModal.tsx fix(canvas): stack pins with their component + pickers above floating panels 2026-07-17 18:44:58 +02:00
DynamicComponent.tsx fix(breadboard): derive seating at element mount — closes run-before-seating race 2026-07-20 17:39:29 +02:00