Skip to content

BoardRipper v0.31.26

Choose a tag to compare

@AlexeyInwerp AlexeyInwerp released this 25 Jun 15:32
· 435 commits to main since this release

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 as NetMeasurement objects 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 MCP get_measurements tool returns
    all net readings regardless of who recorded them — the technician typing a value
    directly on a net row and the agent requesting it via request_measurement both
    appear in the same snapshot. Optional status (pending | answered | skipped)
    and source (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)