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
d4070081c8
Stamp 2.53.0 after site, legal, OG, and BFF rewrite.
...
Excel export headers are mutable for tsc. Changelog and APP_VERSION match the native frontend overlay.
2026-09-20 20:06:15 +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
d21a303e8b
Stamp 2.52.0 after leftover frontend rewrite.
...
App and marketing pages overlay from src. Auth and billing seams unchanged.
2026-09-20 19:53:58 +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
bac75a2fba
Stamp 2.51.0 after native app leftover rewrite.
...
Settings, FastAPI entry, worker, and leftover routers now resolve from
src. Auth router and JWT middleware are unchanged.
2026-09-20 19:32:50 +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
40b251c387
Stamp 2.50.0 after pipeline and leftover analysis rewrite.
...
Full pytest is green. Inherited copies stay on disk; auth untouched.
2026-09-20 19:14:50 +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
19a1eef936
Record 2.47.0 native graph rewrite in changelog and independence plan.
2026-09-20 18:32:47 +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
2f2e35e802
Replace paraphrased constitution with the 1224-line master.
...
Copy CODING_CONSTITUTION.md from the AgentStore docs/development path and split
the seven always-on .mdc files from that exact text.
2026-09-20 18:24:29 +02:00
michele
0533d4ebd2
Add Periscope Cursor engineering constitution and always-on rules.
...
Docs-only: master CODING_CONSTITUTION plus seven .mdc splits. Git policy is
phase = test then commit+push; deploy only after a macro-phase.
2026-09-20 18:06:00 +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
49a27d5951
Fix leftover service overlay stamps so __future__ stays first.
...
Use comment headers instead of a second module docstring so overlay copies remain valid Python.
2026-09-20 17:21:57 +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
09c49f8529
Resolve board via nets by net code, not pad-net token.
...
_via_from_node used _pad_net first, so (net 1) stayed as '1' instead of GND.
2026-09-20 16:06:54 +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
michele
312057b6d3
Gate SI layout_rules to the quoted bus, not EN RC onto USB.
...
PE-SI-009 no longer treats ESP32 CHIP_PU/EN RC as a USB series R.
USB without a library Z number stays PE-SI-010 measurement-only.
Pintable skill 1.13.0 requires net_class on SI kinds (usb2/usb3/MDI/RGMII/DDR3).
2026-09-20 13:13:19 +02:00
michele
a63e5bd7ab
Fase A identity on PCB HEAD: operator fence, keep BOM/SPOF/EMI.
...
Replace Faradworks Inc. TOS/privacy/contact/metadata with Michele Bigi.
Dual-read pinscope_* keys; write periscope_* only. AGPL LICENSE and
GitHub fork parent unchanged. validate.py not edited.
2026-09-20 12:41:17 +02:00
michele
1b3529501f
Ship remaining PCB plan slices: BOM chain, SPOF, EMI FACT, gated Tj.
...
Package/pinout/ratings mismatches, SPOF as REVIEW, EMI only with a
datasheet quote, and Tj from copper+vias+θJA when every parameter exists.
Re-extract SI layout_rules from 1.12.0; ImpedenceFinder license stays UNKNOWN.
2026-09-20 12:29:27 +02:00
michele
65a91419a2
Check ImpedenceFinder against datasheet SI rules, not a dump table.
...
Each layout_rules SI requirement (diff/SE Z, skew, max length, spacing,
ref plane, vias, layer, return, series R) is one PASS/FAIL/MARGIN finding
with FACT and REQUIREMENT. USB/HDMI/PCIe/ETH/LVDS/DDR only; I2C GPIO CC
and analog REGN are skipped. No invented 90 Ω.
2026-09-20 10:45:27 +02:00
michele
187605763d
Treat finished PCB review as complete, not a raw SSE error.
...
The status watcher synthesized pcb_error with pcb_status=complete (terminal)
when the worker finished before pcb_complete arrived. Map that hatch to
pcb_complete, publish the event before flipping status, and send /pcb to
the layout report tree.
2026-09-20 10:23:53 +02:00