BoardRipper v0.31.26
v0.31.26 — 2026-06-25
Two new features — a Donor boards library tab that turns marked PDFs into a
managed, auto-indexed, reset-proof donor pool, and Worklist v2 Phase 1
(inline per-net measurements + a relay-only AI section) — plus interface and MCP
fixes.
Features
- Donor boards. A new Library tab gathers every PDF marked as a donor, each
row showing its live index status and linked board. Click a row to open its
detail (bindings + Open); double-click to open the PDF. Export / Import /
Restore controls manage the pool. (e562176,212e08e) - Marking a donor guarantees it gets indexed. Adding a PDF to the donor pool
triggers a scoped backend pdfium index of exactly that file (server-side, so the
UI, an MCP tool, or a script all benefit), plus a boot-time backfill of any
donors that weren't indexed yet — so "search donors only" no longer silently
misses a never-opened PDF. (b4367c4,af499d2,e148eae) - The donor pool survives "Reset Database". A path-keyed JSON snapshot is
auto-written before a reset and restorable in one click, with manual
Export / Import for portability — wiping the scan no longer loses your donors;
they re-resolve to the rescanned files by path. (98308fd,e9c8cc5,0df3351) - Per-net inline measurements on worklist rows. Each net row now carries a
V / Diode / Ω strip where the technician types a reading directly — no separate
"to measure" list. Values are stored asNetMeasurementobjects with unit,
value, timestamp, and source (user|agent). (a288871,4a73959) - Relay-only AI section. The AI section in the worklist panel is now a relay
transcript (messages + prompt box) only — measurement requests that target a
net route to the net row's inline field, while part/pin targets land in the
relay as a pending row the user answers or skips. (1b7902c,7429650) - Source-agnostic
get_measurements. The MCPget_measurementstool returns
all net readings regardless of who recorded them — the technician typing a value
directly on a net row and the agent requesting it viarequest_measurementboth
appear in the same snapshot. Optionalstatus(pending|answered|skipped)
andsource(user|agent) filters narrow the result. (7429650) - Single off-by-default Highlight toggle. One Highlight button replaces the
old always-on automatic outlines: when on, worklist parts render in their mark
colours and any net shared by two or more worklist parts glows; when off, the
board is unaffected. The Clear button is decoupled from the toggle. (b200bb6,
85a00f9) - Hydrate-time migration of legacy measurements. Opening a worklist saved before
Phase 1 migrates any flat-array AI measurement entries onto the corresponding net
rows automatically, so existing worklists carry forward without data loss.
(7f2e5cc)
Fixes
- Toolbar tooltips no longer spill off-screen. The top-bar tooltips were
pure-CSS pseudo-elements that couldn't clamp to the viewport, so buttons near
the right edge ran off the screen. They're now a single JS-positioned tooltip
that clamps horizontally and flips above the button when it would overflow the
bottom; the board hover tooltip also clamps on every edge. (8e97b36,be1c442) - Board info sidebar is drag-resizable. A left-edge handle resizes the overlay
sidebar (width persisted to localStorage), its tab labels no longer sit under the
☰ toggle, and the redundant×close button was removed — the ☰ toggle is the
single close affordance. (be1c442,8e97b36) - MCP bridge stops when MCP is disabled. Turning MCP off (or removing it by any
means) now tears the WebSocket bridge down instead of reconnecting to a dead
endpoint every three seconds forever; each reconnect re-checks that MCP is still
enabled before retrying. (526f0a7)