Commit Graph
132 Commits
Author SHA1 Message Date
michele c6abdae762 Skip PE-PWR/PE-VIA without datasheet current (2.61.1).
Trace-width vs current runs only with I_load/Imax/I_abs. Missing I is a
skip, not INFO INSUFFICIENT, not USB 500 mA, not Iout_max-as-load.
2026-09-21 12:11:52 +02:00
michele 6dc04b5cc7 Add USB-C, Ethernet, and PoE interface class certifiers (2.61.0).
Dedicated deterministic engines certify class and connection integrity
(CC1/CC2, Rd 5.1 kΩ, VBUS/GND, SuperSpeed if USB3; 10/100 vs GbE
magnetics; PoE only with evidence). Missing evidence is INSUFFICIENT
or N/A, never invented PoE, SuperSpeed, Z, or I. No FEM, no via IPC.
2026-09-21 11:52:44 +02:00
michele 07ad5c72fa Fix PCB software false positives (2.60.11).
KiCad 9/10 name-only nets fill the index. PE-LAY-004 counts tracks, vias,
and pours and skips NC nets. Missing I_load is INSUFFICIENT. EP pads are
not PE-BOM-011; abs-max binds the named pin. Kelvin/EMI/PI ignore NC and
IN±. LQW decodes nH; BLM/FB is a bead, not DCR as Z.
2026-09-21 11:06:38 +02:00
michele 0d817c876f Echo DeepSeek thinking reasoning_content on the next turn.
HubAudio U11/U12/U38 400'd after a thinking-only review turn because
the retry dropped reasoning_content. Native client now appends that
field and continues; hierarchical sheet ingest stays in 2.60.10.
2026-09-21 09:11:37 +02:00
michele 348f390cce Ingest hierarchical KiCad sheets; still skip .history.
Apri progetto collects every *.kicad_sch beside the .kicad_pro and
follows Sheetfile/(sheet)/file= into a subfolder. .history, .git, and
backups are not walked. Not only HubAudio.kicad_sch.
2026-09-21 08:28:49 +02:00
michele 027546b0bd Stop hanging after KiCad folder permission.
Apri progetto walked every nested file (HubAudio .history ~2000) so
onFilesChange never ran and Next stayed disabled. Read only kicad_pro,
sch, and pcb in the project dir; timeout to an error; enable Next when
.kicad_pro is in.
2026-09-21 08:18:01 +02:00
michele fbf2fc87a6 Detect HubAudio.kicad_pro from folder pick, not only File.name.
Safari/macOS often puts .kicad_pro on webkitRelativePath while name is
the stem. Match both, sniff JSON if the suffix is missing, and set
webkitdirectory on the input DOM so the folder picker actually recurses.
2026-09-21 07:54:35 +02:00
michele bfb781f94f Open a KiCad project folder: schematic + PCB, no netlist.
Apri progetto KiCad picks the folder that contains .kicad_pro and loads
sibling hierarchical sheets and the matching .kicad_pcb. Connectivity and
MPN/PNM/Value come from the schematic; a leftover PADS .asc is ignored.
A lone .kicad_pro upload is rejected unless that path exists on disk.
2026-09-21 07:26:01 +02:00
michele ec2ffd6107 Join KiCad hierarchical PNM/MPN when the BOM CSV omits a designator.
Child-sheet symbol fields fill graph mpn; empty sheet fields stay empty. A sibling .kicad_sch next to a PADS netlist is used the same way.
2026-09-21 01:56:13 +02:00
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