michele
82d185ccf4
Treat KiCad PNM as MPN and skip missing U* as INSUFFICIENT_EVIDENCE.
...
HubAudio CSV has no U13–U39 rows; those refs stay without an invented part number. IC Value fills MPN when PNM is blank. Progress no longer labels netlist-only ICs as “no MPN in BOM”.
2026-09-21 00:53:06 +02:00
michele
e31981c812
Persist recovered ferrite Z by comparing against the raw JSON.
...
ComponentModel validation already fills impedance from quoted ohm@freq, so snapshotting the in-memory specs skipped the write.
2026-09-21 00:33:17 +02:00
michele
72bcab50a1
Fill ferrite bead impedance from the MPN datasheet PDF.
...
graph_build searches project uploads and library blob refs, persists recovered Z, and still loads when the PDF has no impedance. Ohms are not written to henries.
2026-09-21 00:29:12 +02:00
michele
a2d5900b64
Recover ferrite bead Z from datasheet evidence without aborting graph_build.
2026-09-21 00:19:06 +02:00
michele
8040686e8b
Allow ferrite beads without impedance_ohm to load.
...
Missing Z is optional, not invented. graph_build skips bad models
instead of aborting. Other inductors still require value_henries.
2026-09-20 23:08:33 +02:00
michele
7a32c552bb
Stamp 2.60.0 incomplete PCB exam and owner project delete.
...
Partial layouts still use MODE=pcb. Missing copper is INSUFFICIENT or
skipped, never Euclidean stand-in tracks. Via≠Pad unchanged. DELETE
/api/projects/{id} is owner-only with a dashboard confirm dialog.
2026-09-20 21:17:26 +02:00
michele
ed3fff565d
Stamp 2.59.0 Docker leftover seams only, not PinScope product.
...
Images copy periscope/src, vendor/, and skipped Clerk/shadcn/billing/GCS
files. dependency/ stays in git. Audit written; FastAPI boots with
PYTHONPATH=src.
2026-09-20 21:03:26 +02:00
michele
22bc075c58
Stamp 2.58.0 native JWT middleware and useAuthApi.
...
Same skip paths, Bearer/query token, Clerk RS256 leftover, and local HS256
contract. routers/auth.py, user records, and AUTH_JWT_SECRET are untouched.
2026-09-20 21:01:51 +02:00
michele
3a666ea8ae
Stamp 2.57.0 native package.json, requirements, and unused Docker copies.
...
Frontend periscope-web manifests, pip requirements, and EDA logos/examples
overlay from src. Docker installs from those files. Unused PinScope public
blobs are dockerignored. Landing png/gif stay in dependency until native
captures exist.
2026-09-20 21:00:21 +02:00
michele
7a377889ae
Overlay live legal and changelog markdown from periscope/src.
...
privacy, terms, file-guide, and changelog stay Periscope operator text at 2.56.0. Docker copies src changelog last; the frontend image keeps content/ at runtime.
2026-09-20 20:37:11 +02:00
michele
00e5df8a36
Overlay app favicon.ico from the Periscope mark.
...
Replaces the leftover OSS Next.ico so /favicon.ico matches favicon_io.
2026-09-20 20:30:36 +02:00
michele
ee160a5df9
Overlay native taxonomy JSON and local DeepSeek skills.
...
repo_paths and compose mount src/taxonomy first. Docker copies dependency then src for taxonomy and skills. SKILL.md prose is rewritten; schema IDs and validate contracts stay. Manifest 1.14.0. Do not run upload_skills.py.
2026-09-20 20:30:25 +02:00
michele
6f3e714a54
Rewrite CSP host seam and middleware package marker.
...
Export names stay for the cloud overlay. JWT still lives only in inherited auth.py.
2026-09-20 20:19:58 +02:00
michele
739e6f7f17
Rewrite Next, ESLint, PostCSS, and tsconfig overlay.
...
CSP, login/register redirects, pdfjs-dist externals, and canvas alias stay the same. package.json is unchanged.
2026-09-20 20:19:37 +02:00
michele
44e86e258e
Rewrite app color tokens and fade-up animation.
...
Tailwind/shadcn imports, light/dark oklch values, and .animate-fade-up stay the same so layout does not shift.
2026-09-20 20:12:54 +02:00
michele
72b4b20665
Rewrite reviewed-finding localStorage hooks.
...
Dashboard count and report toggle still migrate legacy keys and skip the first persist write.
2026-09-20 20:12:20 +02:00
michele
7d82358e19
Rewrite project file drop zone.
...
Folder drops still skip KiCad backups/pretty/3dmodels; dashed upload chrome is unchanged.
2026-09-20 20:11:48 +02:00
michele
c5cd98587f
Rewrite class-based theme provider and toggle.
...
next-themes still defaults to dark with no system follow. Clerk theme wrapper stays inherited.
2026-09-20 20:11:20 +02:00
michele
b3566db828
Rewrite datasheet PDF sheet overlay.
...
Right-side Sheet still mounts PdfViewerPanel only while open; shadcn Sheet stays imported.
2026-09-20 20:11:00 +02:00
michele
292d2e2077
Rewrite Next.js local BFF routes and mock catalog.
...
Projects, report, and graph JSON handlers overlay from periscope/src. Clerk proxy stays the inherited open-core seam.
2026-09-20 20:04:04 +02:00
michele
93f6fad3e7
Rewrite legal page shells and Open Graph images.
...
Overlay legal markdown chrome, changelog timeline, EDA file-guide tabs, and OG/Twitter images from periscope/src instead of inherited PinScope copies.
2026-09-20 20:02:57 +02:00
michele
a9ce71f17a
Rewrite frontend site identity, version stamp, and Excel export.
...
Changelog remains the source of APP_VERSION via overlay sync-version.mjs.
2026-09-20 20:00:15 +02:00
michele
a011351828
Rewrite leftover frontend pages into src overlay.
...
Dashboard, project, report, progress, admin, feedback, and marketing
keep routes and layout. Billing/Clerk/analytics stay imported seams.
2026-09-20 19:53:33 +02:00
michele
2613678442
Rewrite frontend types and HTTP client in src.
...
Export names match the leftover pages. Billing HTTP wrappers stay so
gateway seams are not restyled here.
2026-09-20 19:41:15 +02:00
michele
d0fd37c1b5
Rewrite leftover HTTP routers except auth.
...
Project ingest, pipeline enqueue/SSE, reports, admin, contact, survey,
and feedback now resolve from src. Auth router is unchanged.
2026-09-20 19:31:41 +02:00
michele
7c3c7d17d8
Rewrite FastAPI app and pipeline worker entrypoint.
...
Worker still refuses to import backend.main. Auth router is mounted
unchanged; CORS stays outermost so 401s keep headers.
2026-09-20 19:23:33 +02:00
michele
d0bbd582a8
Rewrite Settings as native Periscope config.
...
DeepSeek remains the only live provider; leftover Anthropic env names
are coerced or ignored. Skills manifest is resolved across the split tree.
2026-09-20 19:21:52 +02:00
michele
82ffa755cd
Rewrite leftover analysis modules imported by src.
...
validate/validation_tools alias native lookup and review tools. Passive
resolve, derating, BOM summary, pin-mux, LED current, and net-function
tokens are original Periscope code. finding_engine and pcb_* unchanged.
2026-09-20 19:14:20 +02:00
michele
3d7fa21eb6
Rewrite analysis pipeline, projects, email, and LCSC client.
...
Native job_workspace / datasheet_extract / review_session stay the live
BOM-extract-graph-review path. Project writes follow owner_user_id.
2026-09-20 19:10:28 +02:00
michele
6a4903fa3a
Rewrite job_runner, event_bridge, cost estimator, and DigiKey client.
...
Local pid-file dispatch stays the self-host path. DigiKey still rejects unrelated MPNs. Inherited copies remain on disk.
2026-09-20 18:57:58 +02:00
michele
e240afce23
Rewrite leftover LLM factory (DeepSeek-only), storage, validation.
...
Anthropic/Gemini names resolve to DeepSeek. Extraction import path re-exports datasheet_extract. Inherited copies stay on disk. storage_gcs unused, skipped.
2026-09-20 18:55:18 +02:00
michele
572b8d24f3
Rewrite normalize, cross-IC dedupe, and billing seam (2.49.0).
...
Downgrade-only clamp and fail-soft coverage stay in src. Inherited copies remain on disk. Self-host billing is NullBilling.
2026-09-20 18:47:45 +02:00
michele
fe89851c10
Rewrite taxonomy loader; JSON path via repo_paths (2.48.0).
...
TAXONOMY_DIR is taxonomy_dir() so src reads dependency/taxonomy until a src tree exists. Inherited taxonomy.py stays on disk. Changelog covers models, parsers, and taxonomy.
2026-09-20 18:41:12 +02:00
michele
9997f39718
Rewrite PADS/BOM dispatch and EDIF ingest as Periscope parsers.
...
KiCad schematic parser and PCB via≠pad parser stay native. Inherited
parser files remain in dependency/.
2026-09-20 18:38:26 +02:00
michele
24f9c952e2
Rewrite Periscope models.py with disjoint layout primitives.
...
Pad, via, track, and zone stay separate types. Inherited models.py remains
in dependency/. Public graph/finding fields are unchanged.
2026-09-20 18:37:03 +02:00
michele
7ff049f6d0
Rewrite DesignGraph builder as original Periscope graph.py.
...
Src module classifies refs, infers net type/voltage, and prefers board nets
when a .kicad_pcb is present. PinScope graph.py remains in dependency/.
2026-09-20 18:32:36 +02:00
michele
5a1d31ce7b
Revert PinScope overlay copies from periscope/src (2.46.0).
...
Remove stamped near-identical modules so inherited code loads from
dependency/ again. Keep native finding engine, PCB/placement, review,
job workspace, datasheet extract, via-vs-pad parser, logo, and local JWT.
2026-09-20 18:30:21 +02:00
michele
6d6e70cec0
Overlay leftover FastAPI entry, routers, and jobs into periscope/src (2.45.0).
...
Copy main, config, middleware/auth, leftover routers, pipeline_worker,
job_runner, event_bridge, projects, and admin_settings without deleting
dependency copies. Native auth and impedance routers stay as-is.
2026-09-20 17:39:15 +02:00
michele
0b01617b37
Overlay leftover services and LLM factory into periscope/src (2.44.0).
...
Copy api_logs, findings normalize/dedupe, billing_hook, datasheet_store,
cost_estimator, storage, purple_parts, email, digikey, and llm factory/types/base
without deleting the inherited dependency copies.
2026-09-20 17:15:55 +02:00
michele
1389d832df
Overlay leftover PinScope modules src still imported.
...
utils, resolve_passives, derating, bom_summary, pin_mux, LED current,
pin-function tokens, plus live analysis validate/validation_tools/pipeline/
validation/extraction, skills, and taxonomy JSON now resolve from
periscope/src. Inherited copies stay in dependency/. repo_paths prefers
src then /app; Docker copies src taxonomy/skills last.
2026-09-20 16:56:20 +02:00
michele
31fd389b38
Native overlay of graph, parsers, models, taxonomy; Periscope mark.
...
Src-first imports now load graph/parsers/EDIF/models/taxonomy from
periscope/src. Inherited copies stay in dependency/. Taxonomy JSON path
uses repo_paths. New periscope/lens mark at existing 16/32/180/192/512
favicon sizes; header uses PeriscopeMark instead of the lucide CPU glyph.
2026-09-20 16:41:50 +02:00
michele
34a9b30a35
Re-parse .kicad_pcb on PCB exam instead of stale layout_graph.
...
Cached layout_graph still listed stitching via-pads as component pads,
so PE-BOM-011 kept firing after the ingest fix. PCB/placement jobs now
parse the board file and refresh the cache.
2026-09-20 16:16:46 +02:00
michele
ad21d00cd0
Fix PE-BOM-011: classify footprint vias as vias, not pads.
...
KiCad stitching/thermal vias inside a footprint are (via) or copper-only
thru_hole (pad) objects. parse_kicad_pcb was appending every (pad) to
LayoutFootprint.pads, so PE-BOM-011 compared datasheet pin_count to via
numbers. Nested vias join LayoutGraph.vias; soldered THT pads stay pads.
2026-09-20 16:06:10 +02:00
michele
19eab09000
Native PipelineWorkspace and event broker in periscope/src.
...
PCB and placement jobs import job_workspace instead of PinScope
pipeline.py. Analysis run_pipeline re-exports the same broker singleton.
2026-09-20 15:34:41 +02:00
michele
5c0c5184fb
Native DeepSeek datasheet extraction in periscope/src (Fase C3).
...
Pipeline and LCSC resolve call datasheet_extract; inherited extraction.py
stays in dependency as fallback. No Anthropic Console skill ids.
2026-09-20 15:26:21 +02:00
michele
a96ee2e88a
Stop periscope/src importing PinScope validate.py after live C2 smoke.
...
PCB review and src checks use native parse, constraints lookup, and
review_session. Inherited validate.py and validation_tools.py stay in
dependency/.
2026-09-20 15:21:32 +02:00
michele
974923b2e6
Native DeepSeek review loop in periscope/src (Fase C2).
...
Live review_ic_async comes from review_session; PinScope validate.py and
validation_tools.py stay in dependency as _inherited_review_ic_async fallback.
2026-09-20 15:14:21 +02:00
michele
a0a2f5bdbf
Fix DeepSeek-only tests after env file moves to the repo root.
...
Give the routing tests a dummy key so they do not require a live .env.
2026-09-20 14:33:23 +02:00
michele
c362ef8a56
Split native Periscope (periscope/src) from inherited PinScope (periscope/dependency).
...
Keep validate.py and the finding engine as-is. AGPL LICENSE stays at the repo root.
Docker overlays dependency then src. Do not delete the inherited tree.
2026-09-20 14:31:42 +02:00
michele
0a75e5971a
Gate PCB SI not_reviewed to board ICs, not the shared library.
...
Emmaforo listed 20 stale 1.5–1.7 MPNs (LAN8720A, W25Q, …) as
not reviewed while the four BOM ICs were already extracted and reviewed.
2026-09-20 14:05:03 +02:00