Commit Graph
29 Commits
Author SHA1 Message Date
micheleandCursor edbb47a08b Resolve passives from catalog, BOM value, and Murata LQW18AN without an LLM.
Skip the model (and the credit gate) when LCSC/DigiKey already list C/V/Z, when the BOM value is a single R/C/L/FB token, or when the MPN is an LQW18AN inductor. Ferrite beads keep impedance, not invented henries; value-only specs stay out of the shared library.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-28 20:25:34 +02:00
micheleandCursor 2113e3975e Finish datasheet acquisition: more vendors, Mouser, browser download links.
Add Microchip/Murata/Silicon Labs URL tables, optional Mouser search, and suggested URLs on a miss so the wizard can open PDFs in the user's browser when the VPS is blocked.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-28 19:42:50 +02:00
micheleandCursor 7a255a9807 Treat 3V3_/1V8_ nets as power and ignore SPI pins aliased as SDA/SCL.
Hub Audio pull-ups sit on 3V3_DIGITAL typed as signal, and ADAU/TAC5212 SPI pins list SDA in the name — both produced false I2C/reset warnings.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-28 17:09:59 +02:00
micheleandCursor b1ee445da8 Add deterministic decoupling, I2C pull-up, and reset-float checks.
Flag supply nets with no cap to ground and open-drain I2C/reset nets with no pull-up, without guessing datasheet capacitor values.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-28 16:59:32 +02:00
micheleandCursor d6b8b0086c Reconstruct datasheet pages with reading-order blocks and table markdown.
DeepSeek review/extraction was using raw get_text; sparse pin drawings now get vision slots and quote checks share the same page text.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-28 16:29:52 +02:00
micheleandCursor 6bde06d2cc Harden datasheet downloads and try more manufacturer PDF URLs.
Follow HTML interstitials to a matching .pdf, send a real Referer, retry http as https, and probe TI gpn plus Espressif/ST/ADI/NXP/onsemi paths when LCSC is blocked.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-28 16:06:38 +02:00
micheleandCursor 53db287ab4 Verify review quotes against datasheet PDF text and extract ESD Vrwm/polarity.
ERROR/WARNING without a real citation are demoted to Unverified so invented topologies like a unidirectional TPD2E007 clamp cannot ship as ERROR.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-28 15:43:14 +02:00
micheleandCursor 4c54d064d3 Add missing simple_mpn_types on PipelineContext so BOM parse can classify crystals and discretes.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-28 11:09:43 +02:00
micheleandCursor cb001a8bbb Treat KiCad Value/PNM as the IC MPN when the MPN column is empty.
Those 13 U* were in the BOM (TPS22965, TPD2E007, TMP117, …) but never entered ic_mpns, so review skipped them as missing PDFs. Also try the BOM Datasheet URL first.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-28 10:38:40 +02:00
micheleandCursor 96e2590a3c Detect a dead local pipeline worker after API restart, and flush SSE.
A docker rebuild left HubAudio status=running with no process, so the UI sat on a silent event stream. Persist the worker pid and disable proxy buffering on the SSE response.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-28 08:50:33 +02:00
micheleandCursor ea43b550ee Send empty-string assistant content to DeepSeek, never null.
content=null is rejected even when tool_calls is set, which 400d the U19 follow-up turn after the first graph query.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-28 08:46:27 +02:00
micheleandCursor f6eeb73cbf Clear the SSE event log on every worker start, including Retry failed.
Resume reused the previous pipeline_complete, so the UI closed the stream and showed no live log while U19 was still reviewing.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-28 08:41:16 +02:00
micheleandCursor 66ae877b7b Do not stall Retry failed on re-extraction or serial datasheet lookups.
Resume reuses pintables, skips LCSC/DigiKey before review, and emits a waiting heartbeat so a long DeepSeek turn is visible instead of a freeze.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-28 08:34:17 +02:00
micheleandCursor a9238875dd Retry DeepSeek thinking-only turns so review does not 400 on U19.
Empty assistant content is still treated as unset; replay a placeholder and retry once with thinking disabled.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-28 08:15:07 +02:00
micheleandCursor e5e8c42966 Let Reprocess stop a live or stuck running pipeline, then enqueue.
A docker rebuild can leave status=running with no worker; the old 409 blocked retry.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-28 03:10:16 +02:00
micheleandCursor ed75aabaf0 Reject WROOM pintables taken from the bare ESP32 die map.
Module pad 1 is GND; extracting ANT/XTAL as pin 1 made every ground look like a shorted antenna.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-28 02:55:12 +02:00
micheleandCursor e84418f975 Add Reprocess to retry failed IC reviews without the create wizard.
Successful reviews are kept; skipped ICs such as a DeepSeek 400 are run again. Reprocess all re-reviews every IC while still using the library cache.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-28 02:37:53 +02:00
micheleandCursor 34bfe33cdf Send empty assistant content when DeepSeek thinks without calling a tool.
A thinking-only turn was replayed as content=null with no tool_calls, which the API rejects with 400 and skipped IC review.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-28 02:31:42 +02:00
micheleandCursor 08cbbdc422 Show cached passives in the library and match IC PDFs by family MPN.
Decode EIA/Yageo/AVX chip codes into library specs, and find datasheets when the file is stored under the orderable catalog name.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-28 02:27:27 +02:00
micheleandCursor 3be7d2fc21 Copy library datasheets onto every graph IC before review.
Review skipped U* when the PDF was stored under a catalog MPN or the part was only in the netlist. Lookup now uses spelling variants and aliases.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-28 02:18:50 +02:00
micheleandCursor 19b4c11f62 Resolve passives from LCSC/DigiKey before PDF pattern extraction.
Series datasheets were stalling extract_pattern on DeepSeek vision; catalog specs are enough for chip R/C/L. Pattern PDF is a 90s fallback only.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-28 02:15:36 +02:00
micheleandCursor dd46ce1da1 Reuse datasheet family aliases and skip the LLM for catalog passives.
Store BOM MPN and orderable code on the same PDF blob, derive TI datasheet slugs from package/Q1 codes, and map LCSC/DigiKey R/C/L parameters to specs without a model call.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-28 02:11:49 +02:00
micheleandCursor 27a3ce8bd0 Disable DeepSeek thinking when a tool is forced.
Auto-resolve of passives was 400ing because thinking mode cannot be combined with named tool_choice. Also strip BOM descriptions after an em dash before DigiKey search.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-28 01:58:22 +02:00
micheleandCursor 776d714754 Match BOM MPNs to longer LCSC/DigiKey orderable codes.
The lookup required an exact catalog string, so family codes like ESP32-S31-WROOM-3 never picked ESP32-S31-WROOM-3-N16R16V and underscore vs slash MPNs never hit DigiKey.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-28 01:52:49 +02:00
micheleandCursor 946a7a67ab Add packaging so the backend image can boot.
admin_settings imports packaging.version; Docker install from requirements.txt missed it.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-28 01:36:33 +02:00
Cursor Agent 48246f31bd Adapt Pinscope to DeepSeek, auto datasheets, and a shared library.
Based on manvalan/pinscope main. Default LLM is DeepSeek with local
skills and PDF ingest. Datasheets are fetched from LCSC/TI, stored in
the component library, and review extracts abs-max with a deeper
checklist. Adds scripts/update-pinscope.sh for the production host.
2026-08-27 23:06:23 +00:00
michele ab1c5b081c Fix Anthropic skill references and backend git support 2026-07-23 22:13:50 +00:00
michele 4888092364 Add Docker deployment, remove Clerk auth, and configure OSS mode 2026-07-23 20:26:59 +00:00
Siddharth Kothari 6672d2be57 Pinscope open-source core
Agentic schematic validation: datasheet extraction via Claude Console
Skills, netlist/BOM design graph, per-IC direct datasheet review with
page citations, capacitor derating, Next.js report UI.

Extracted from the Pinscope cloud codebase. Auth and billing live in the
private gateway repo behind stable seams (billing_hook.py, adapter files
listed in CLAUDE.md).
2026-07-16 21:29:45 -07:00