AnasSarkiz/magnetic-shutter-remote-r8

A USB‑C rechargeable battery-powered ESP32‑C3 wireless controller with Li‑ion charging, protected 3.3‑V buck‑boost regulation, thermal/safety monitoring, status LEDs, buttons, programming UART, crystal clock, and 2.4‑GHz antenna matching network.

Version
0.4.0-prototype
License
unset
Stars
0

scripts/write-r9-bom.py

"""Derive current R9 fitted BOM from native routing and exact dated sourcing."""
import csv
import hashlib
import json
from datetime import datetime
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
EVIDENCE = ROOT / 'evidence/R9-routing-2026-10-13'

def write_bom():
    raw = (ROOT/'dist/index/circuit.json').read_bytes()
    circuit = json.loads(raw)
    if any(e['type'].endswith('_error') for e in circuit) or not any(e['type']=='pcb_trace' for e in circuit):
        raise ValueError('BOM release requires a successful native routed candidate')
    purchased = {p['lcsc']: p for p in json.loads((ROOT/'bom.json').read_text())['parts']}
    sourced = {p['lcsc']: p for p in json.loads((EVIDENCE/'sourcing.json').read_text())['parts']}
    required_fields = {'manufacturer','manufacturer_part_number','package','value','datasheet_file'}
    for number, part in purchased.items():
        missing_fields = sorted(field for field in required_fields if not isinstance(part.get(field),str) or not part[field].strip())
        if missing_fields:
            raise ValueError(f'{number}: missing required purchasing metadata {missing_fields}')
    groups = {}
    for component in (e for e in circuit if e['type']=='source_component'):
        number, = component['supplier_part_numbers']['jlcpcb']
        groups.setdefault(number, []).append(component)
    if set(groups) != set(purchased) or set(groups) != set(sourced):
        raise ValueError('Fitted identities must exactly match dated purchasing and sourcing records')
    parts = []
    for number, components in groups.items():
        observation = sourced[number]
        references = [c['name'] for c in components]
        if observation['status'] != 'PASS' or min(observation['stock_fields']['canPresaleNumber'], observation['stock_fields']['overseasStockCount']) < len(components)*5:
            raise ValueError(f'{number}: public stock is insufficient for five finished boards')
        if set(observation['references']) != set(references) or {c['manufacturer_part_number'] for c in components} != {observation['mpn']}:
            raise ValueError(f'{number}: fitted references or manufacturer identity changed')
        part = dict(purchased[number])
        part.update(reference_designators=references, quantity=len(components),
                    observed_stock=observation['stock_fields']['canPresaleNumber'],
                    availability_check_date=datetime.fromisoformat(observation['checked_at_utc']).date().isoformat(),
                    qualification='Engineering prototype. Dated public stock is not reserved. Supplier assembly/process/cost and physical RF, thermal, enclosure, programming and phone validation remain pending.')
        parts.append(part)
    bom = {'revision':'R9-bare-ESP32-C3-'+json.loads((ROOT/'package.json').read_text())['version'],
           'status':f'{sum(p["quantity"] for p in parts)} fitted references / {len(parts)} exact supplier identities; hardware untested; supplier release gates pending',
           'circuit_sha256':hashlib.sha256(raw).hexdigest(), 'parts':parts}
    (ROOT/'bom.json').write_text(json.dumps(bom,indent=2)+'\n')
    fields = ['reference_designators','quantity','value','manufacturer_part_number','package','lcsc','assembly_category','observed_stock','availability_check_date','source_link','qualification']
    with (ROOT/'BOM.csv').open('w',newline='') as output:
        writer=csv.DictWriter(output,fieldnames=fields,extrasaction='ignore',lineterminator='\n')
        writer.writeheader()
        for part in parts: writer.writerow({**part,'reference_designators':','.join(part['reference_designators'])})
    price=sum(p['quantity']*p['unit_price_first_tier_usd'] for p in parts)
    stock_dates=', '.join(sorted({p['availability_check_date'] for p in parts}))
    (ROOT/'BOM.md').write_text('# R9 bare ESP32-C3 fitted BOM\n\n'+bom['status']+'\n\nExact manufacturer identities and references are derived from the native circuit. Public stock was checked on '+stock_dates+' and is not reserved. The protected ASR00012 battery is outside the PCBA BOM. Retained2026-10-13 first-tier prices total approximately US$'+f'{price:.4f}'+' per board, excluding assembly, attrition, shipping, battery, mechanics and required filled/capped-via processing. This is not a supplier quote.\n\n| References | MPN | JLCPCB | Quantity | Observed stock |\n|---|---|---|---:|---:|\n'+''.join(f'| {", ".join(p["reference_designators"])} | {p["manufacturer_part_number"]} | {p["lcsc"]} | {p["quantity"]} | {p["observed_stock"]} |\n' for p in parts))
    print(bom['status'])

if __name__=='__main__': write_bom()
+f'{price:.4f}'+' per board, excluding assembly, attrition, shipping, battery, mechanics and required filled/capped-via processing. This is not a supplier quote.\\n\\n| References | MPN | JLCPCB | Quantity | Observed stock |\\n|---|---|---|---:|---:|\\n'+''.join(f'| {\", \".join(p[\"reference_designators\"])} | {p[\"manufacturer_part_number\"]} | {p[\"lcsc\"]} | {p[\"quantity\"]} | {p[\"observed_stock\"]} |\\n' for p in parts))\n print(bom['status'])\n\nif __name__=='__main__': write_bom()\n","content_mimetype":"application/octet-stream","created_at":"2026-10-14T07:52:38.008Z"}; window.SSR_PACKAGE_RELEASES = [{"package_release_id":"ffe83476-fdd3-42c9-8650-aeebb91a707a","package_id":"801d06b7-add2-4b80-a025-48f1ba5dd8a3","version":"0.4.0-prototype","github_commit_sha":null,"is_locked":false,"is_latest":true,"ready_to_build":true,"is_pr_preview":false,"created_at":"2026-10-14T07:44:47.746Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":true,"transpilation_display_status":"pending","fs_sha":"md5-dab555191ba684af3affa84245a8c357","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":true,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":true,"image_generation_display_status":"pending","pcb_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=ffe83476-fdd3-42c9-8650-aeebb91a707a\u0026file_path=dist%2Findex%2Fpcb.svg","sch_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=ffe83476-fdd3-42c9-8650-aeebb91a707a\u0026file_path=dist%2Findex%2Fschematic.svg","cad_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=ffe83476-fdd3-42c9-8650-aeebb91a707a\u0026file_path=dist%2Findex%2F3d.png","package_release_website_url":null,"display_status":"pending","latest_package_build_id":"60fd0531-64f0-47d1-9148-323e300ea514","user_code_job_started_at":"2026-10-14T07:55:39.937Z","user_code_job_completed_at":"2026-10-14T08:06:10.243Z","user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":"https://usercode.tscircuit.com/user_code_jobs/view_log_stream?user_code_job_id=1de7869ec1461284830654c5b012bcdc228ac4114cd9c82f8b91b0f850c000e7","ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"36df68a2-fa92-4cb0-8218-1827ef39e563","package_id":"801d06b7-add2-4b80-a025-48f1ba5dd8a3","version":"0.4.0-draft-prototype","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":false,"is_pr_preview":false,"created_at":"2026-10-14T07:40:03.936Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":false,"transpilation_display_status":"pending","fs_sha":"md5-c26bfbdad8fcbfc2465ae60ade0ecf3e","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":false,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":false,"image_generation_display_status":"pending","pcb_preview_image_url":null,"sch_preview_image_url":null,"cad_preview_image_url":null,"package_release_website_url":null,"display_status":"pending","latest_package_build_id":null,"user_code_job_started_at":null,"user_code_job_completed_at":null,"user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":null,"ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"4846dbe0-8c1a-4d81-b920-c539f857d2a0","package_id":"801d06b7-add2-4b80-a025-48f1ba5dd8a3","version":"0.3.28-prototype","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":false,"is_pr_preview":false,"created_at":"2026-10-09T20:26:33.552Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":false,"transpilation_display_status":"pending","fs_sha":"md5-82eb641d07a987db97b539f282e71cda","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":false,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":false,"image_generation_display_status":"pending","pcb_preview_image_url":null,"sch_preview_image_url":null,"cad_preview_image_url":null,"package_release_website_url":null,"display_status":"pending","latest_package_build_id":null,"user_code_job_started_at":null,"user_code_job_completed_at":null,"user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":null,"ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"b67f9a8a-0250-4b84-a9ec-ddd26e415911","package_id":"801d06b7-add2-4b80-a025-48f1ba5dd8a3","version":"0.3.27-prototype","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":false,"is_pr_preview":false,"created_at":"2026-10-09T20:01:20.994Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":false,"transpilation_display_status":"pending","fs_sha":"md5-8d9241617bdd2c407d7e63da9d478084","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":false,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":false,"image_generation_display_status":"pending","pcb_preview_image_url":null,"sch_preview_image_url":null,"cad_preview_image_url":null,"package_release_website_url":null,"display_status":"pending","latest_package_build_id":null,"user_code_job_started_at":null,"user_code_job_completed_at":null,"user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":null,"ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"7bfc2a94-e06c-48b0-8667-48e770cf7337","package_id":"801d06b7-add2-4b80-a025-48f1ba5dd8a3","version":"0.3.26-prototype","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":false,"is_pr_preview":false,"created_at":"2026-10-09T19:49:28.726Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":false,"transpilation_display_status":"pending","fs_sha":"md5-e112a1430e4e5c71045f8d2f8f1e1b22","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":false,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":false,"image_generation_display_status":"pending","pcb_preview_image_url":null,"sch_preview_image_url":null,"cad_preview_image_url":null,"package_release_website_url":null,"display_status":"pending","latest_package_build_id":null,"user_code_job_started_at":null,"user_code_job_completed_at":null,"user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":null,"ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"c716c810-4243-4aea-afe1-aab045f86ab2","package_id":"801d06b7-add2-4b80-a025-48f1ba5dd8a3","version":"0.3.25-prototype","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":true,"is_pr_preview":false,"created_at":"2026-10-08T20:02:21.549Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":false,"transpilation_display_status":"pending","fs_sha":"md5-95ec9eaf0c8e63bd2d4e5102f7c5a90f","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":false,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":false,"image_generation_display_status":"pending","pcb_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=c716c810-4243-4aea-afe1-aab045f86ab2\u0026file_path=dist%2Fenclosure%2Fpcb.svg","sch_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=c716c810-4243-4aea-afe1-aab045f86ab2\u0026file_path=dist%2Fenclosure%2Fschematic.svg","cad_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=c716c810-4243-4aea-afe1-aab045f86ab2\u0026file_path=dist%2Fenclosure%2F3d.png","package_release_website_url":null,"display_status":"pending","latest_package_build_id":"5c8733ce-18e8-4258-9b97-758f64c9dc5f","user_code_job_started_at":"2026-10-08T20:08:30.330Z","user_code_job_completed_at":"2026-10-08T20:15:08.245Z","user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":"https://usercode.tscircuit.com/user_code_jobs/view_log_stream?user_code_job_id=2f84a21019af30ff95bcf39725a2d5b23141489bf0f74c77912ab662bc46a5ac","ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"cb244292-c55c-46d3-95e2-595c5847dd8c","package_id":"801d06b7-add2-4b80-a025-48f1ba5dd8a3","version":"0.3.24-prototype","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":false,"is_pr_preview":false,"created_at":"2026-10-08T19:45:43.532Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":false,"transpilation_display_status":"pending","fs_sha":"md5-f694cf6dd39eaf84b284b8fadd04ee41","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":false,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":false,"image_generation_display_status":"pending","pcb_preview_image_url":null,"sch_preview_image_url":null,"cad_preview_image_url":null,"package_release_website_url":null,"display_status":"pending","latest_package_build_id":null,"user_code_job_started_at":null,"user_code_job_completed_at":null,"user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":null,"ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"149a0683-9977-442d-86da-be824dad25e0","package_id":"801d06b7-add2-4b80-a025-48f1ba5dd8a3","version":"0.3.23-prototype","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":false,"is_pr_preview":false,"created_at":"2026-10-08T18:52:36.448Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":false,"transpilation_display_status":"pending","fs_sha":"md5-872b3d6f1636d1541d72179ff8e6262d","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":false,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":false,"image_generation_display_status":"pending","pcb_preview_image_url":null,"sch_preview_image_url":null,"cad_preview_image_url":null,"package_release_website_url":null,"display_status":"pending","latest_package_build_id":null,"user_code_job_started_at":null,"user_code_job_completed_at":null,"user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":null,"ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"418a8b0c-d651-45c9-b480-18f09e25936a","package_id":"801d06b7-add2-4b80-a025-48f1ba5dd8a3","version":"0.3.22-prototype","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":false,"is_pr_preview":false,"created_at":"2026-10-08T18:43:40.264Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":false,"transpilation_display_status":"pending","fs_sha":"md5-c3822853554e41ad48fde69e522c0efb","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":false,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":false,"image_generation_display_status":"pending","pcb_preview_image_url":null,"sch_preview_image_url":null,"cad_preview_image_url":null,"package_release_website_url":null,"display_status":"pending","latest_package_build_id":null,"user_code_job_started_at":null,"user_code_job_completed_at":null,"user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":null,"ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"687f8973-0fe9-43c0-bba2-d08582facac3","package_id":"801d06b7-add2-4b80-a025-48f1ba5dd8a3","version":"0.3.21-prototype","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":true,"is_pr_preview":false,"created_at":"2026-10-08T11:51:40.141Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":false,"transpilation_display_status":"pending","fs_sha":"md5-dda5636a50b0a7340e2dec9ed66ec2a5","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":false,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":false,"image_generation_display_status":"pending","pcb_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=687f8973-0fe9-43c0-bba2-d08582facac3\u0026file_path=dist%2Findex%2Fpcb.svg","sch_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=687f8973-0fe9-43c0-bba2-d08582facac3\u0026file_path=dist%2Findex%2Fschematic.svg","cad_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=687f8973-0fe9-43c0-bba2-d08582facac3\u0026file_path=dist%2Findex%2F3d.png","package_release_website_url":null,"display_status":"pending","latest_package_build_id":"0bd1e9cb-51a6-4651-aa29-88c3c9d67ec7","user_code_job_started_at":"2026-10-08T11:58:21.530Z","user_code_job_completed_at":"2026-10-08T12:05:38.945Z","user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":"https://usercode.tscircuit.com/user_code_jobs/view_log_stream?user_code_job_id=bcbdddc81cca96e6f9e4bf7473a0602d602dfd0d8e207d0188a62af20872b13d","ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"3e7a0158-1d17-4d3f-9c1b-0c2b12d12c51","package_id":"801d06b7-add2-4b80-a025-48f1ba5dd8a3","version":"0.3.20-prototype","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":false,"is_pr_preview":false,"created_at":"2026-10-07T23:56:51.267Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":false,"transpilation_display_status":"pending","fs_sha":"md5-7d3562c841bdb0a5b67350f0668372da","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":false,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":false,"image_generation_display_status":"pending","pcb_preview_image_url":null,"sch_preview_image_url":null,"cad_preview_image_url":null,"package_release_website_url":null,"display_status":"pending","latest_package_build_id":null,"user_code_job_started_at":null,"user_code_job_completed_at":null,"user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":null,"ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"c2300b31-b0e6-4ad2-bb1e-6891db72dc0e","package_id":"801d06b7-add2-4b80-a025-48f1ba5dd8a3","version":"0.3.19-prototype","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":false,"is_pr_preview":false,"created_at":"2026-10-07T19:19:52.618Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":false,"transpilation_display_status":"pending","fs_sha":"md5-6c7687d511b177c658685ee0a802b4c7","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":false,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":false,"image_generation_display_status":"pending","pcb_preview_image_url":null,"sch_preview_image_url":null,"cad_preview_image_url":null,"package_release_website_url":null,"display_status":"pending","latest_package_build_id":null,"user_code_job_started_at":null,"user_code_job_completed_at":null,"user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":null,"ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"4532d551-a27b-4ee9-b4fe-377041ebc4ad","package_id":"801d06b7-add2-4b80-a025-48f1ba5dd8a3","version":"0.3.18-prototype","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":false,"is_pr_preview":false,"created_at":"2026-10-07T16:21:32.074Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":false,"transpilation_display_status":"pending","fs_sha":"md5-d6f8f0ed058b0d5160986c80e0199b91","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":false,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":false,"image_generation_display_status":"pending","pcb_preview_image_url":null,"sch_preview_image_url":null,"cad_preview_image_url":null,"package_release_website_url":null,"display_status":"pending","latest_package_build_id":null,"user_code_job_started_at":null,"user_code_job_completed_at":null,"user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":null,"ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"f1eda568-d7fd-4207-9744-40ed4ddc5b7f","package_id":"801d06b7-add2-4b80-a025-48f1ba5dd8a3","version":"0.3.17-prototype","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":false,"is_pr_preview":false,"created_at":"2026-10-07T14:47:55.225Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":false,"transpilation_display_status":"pending","fs_sha":"md5-e4e523f28ed1f4978f8ac1cb4b70ab2c","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":false,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":false,"image_generation_display_status":"pending","pcb_preview_image_url":null,"sch_preview_image_url":null,"cad_preview_image_url":null,"package_release_website_url":null,"display_status":"pending","latest_package_build_id":null,"user_code_job_started_at":null,"user_code_job_completed_at":null,"user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":null,"ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"7245ae80-d5f5-4dd8-b660-e5f322443a95","package_id":"801d06b7-add2-4b80-a025-48f1ba5dd8a3","version":"0.3.16-prototype","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":false,"is_pr_preview":false,"created_at":"2026-10-07T13:50:23.437Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":false,"transpilation_display_status":"pending","fs_sha":"md5-4000825947ca5c2fdc0b185a27583826","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":false,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":false,"image_generation_display_status":"pending","pcb_preview_image_url":null,"sch_preview_image_url":null,"cad_preview_image_url":null,"package_release_website_url":null,"display_status":"pending","latest_package_build_id":null,"user_code_job_started_at":null,"user_code_job_completed_at":null,"user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":null,"ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"db49407d-ab73-4367-8599-a66a36e82981","package_id":"801d06b7-add2-4b80-a025-48f1ba5dd8a3","version":"0.3.15-prototype","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":true,"is_pr_preview":false,"created_at":"2026-10-07T12:03:28.709Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":true,"transpilation_display_status":"pending","fs_sha":"md5-311fa84cf8b7c47631660ef4aacde59b","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":true,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":true,"image_generation_display_status":"pending","pcb_preview_image_url":null,"sch_preview_image_url":null,"cad_preview_image_url":null,"package_release_website_url":null,"display_status":"pending","latest_package_build_id":"66dcab5f-44a2-4b6d-9f6a-c540eb76af5b","user_code_job_started_at":"2026-10-07T12:42:38.469Z","user_code_job_completed_at":"2026-10-07T12:45:42.800Z","user_code_job_error":{"message":"Your code failed to build (exit code 1), see build logs for the error details","error_code":"user_code_build_error"},"user_code_job_completed_logs":null,"user_code_job_log_stream_url":"https://usercode.tscircuit.com/user_code_jobs/view_log_stream?user_code_job_id=71fd308e7c9fc38df2e2cdc9ae808a5d75ef3348349f38f2933c56943bb1ba0a","ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"56efbae4-6534-4397-a1b0-b0667b5abd7d","package_id":"801d06b7-add2-4b80-a025-48f1ba5dd8a3","version":"0.3.14-prototype","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":false,"is_pr_preview":false,"created_at":"2026-10-07T11:43:01.386Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":false,"transpilation_display_status":"pending","fs_sha":"md5-b8b60181fc53d280114c5aa24fffc269","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":false,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":false,"image_generation_display_status":"pending","pcb_preview_image_url":null,"sch_preview_image_url":null,"cad_preview_image_url":null,"package_release_website_url":null,"display_status":"pending","latest_package_build_id":null,"user_code_job_started_at":null,"user_code_job_completed_at":null,"user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":null,"ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"e3e28d1e-036b-496c-8edf-f6a530bb44d5","package_id":"801d06b7-add2-4b80-a025-48f1ba5dd8a3","version":"0.3.12-prototype","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":true,"is_pr_preview":false,"created_at":"2026-10-06T19:59:49.291Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":false,"transpilation_display_status":"pending","fs_sha":"md5-a427ab84939a007380a61f35dcfe80cc","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":false,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":false,"image_generation_display_status":"pending","pcb_preview_image_url":null,"sch_preview_image_url":null,"cad_preview_image_url":null,"package_release_website_url":null,"display_status":"pending","latest_package_build_id":"4d110fd7-c486-4d26-b5ea-1030511dd1b4","user_code_job_started_at":"2026-10-06T20:28:08.803Z","user_code_job_completed_at":"2026-10-06T20:58:10.568Z","user_code_job_error":{"message":"Build timed out after 30 minutes","error_code":"user_code_job_timeout"},"user_code_job_completed_logs":null,"user_code_job_log_stream_url":"https://usercode.tscircuit.com/user_code_jobs/view_log_stream?user_code_job_id=a27c34780ef5fd9bcf65ab73d0776bc379daee5b69579be5561767f3996a4566","ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"7c27e666-2fce-483f-994a-be6c0eb8c827","package_id":"801d06b7-add2-4b80-a025-48f1ba5dd8a3","version":"0.3.11-prototype","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":true,"is_pr_preview":false,"created_at":"2026-10-06T18:39:49.588Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":false,"transpilation_display_status":"pending","fs_sha":"md5-b7f0f483cf51ca0889689947d7886703","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":false,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":false,"image_generation_display_status":"pending","pcb_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=7c27e666-2fce-483f-994a-be6c0eb8c827\u0026file_path=dist%2Findex%2Fpcb.svg","sch_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=7c27e666-2fce-483f-994a-be6c0eb8c827\u0026file_path=dist%2Findex%2Fschematic.svg","cad_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=7c27e666-2fce-483f-994a-be6c0eb8c827\u0026file_path=dist%2Findex%2F3d.png","package_release_website_url":null,"display_status":"pending","latest_package_build_id":"1baf742e-bf37-4be0-965f-7ab9b5cc988d","user_code_job_started_at":"2026-10-06T19:00:31.838Z","user_code_job_completed_at":"2026-10-06T19:13:59.452Z","user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":"https://usercode.tscircuit.com/user_code_jobs/view_log_stream?user_code_job_id=044c7d5c2490540ae8448168b7e955f60c02dd30ff7b021ada9359fc8e9d5b8f","ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"e8754268-2794-4f0d-94fc-f471cf987136","package_id":"801d06b7-add2-4b80-a025-48f1ba5dd8a3","version":"0.3.10-prototype","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":true,"is_pr_preview":false,"created_at":"2026-10-06T17:16:49.574Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":false,"transpilation_display_status":"pending","fs_sha":"md5-ea69230688dde8cc8980285ca8dd40e9","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":false,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":false,"image_generation_display_status":"pending","pcb_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=e8754268-2794-4f0d-94fc-f471cf987136\u0026file_path=dist%2Findex%2Fpcb.svg","sch_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=e8754268-2794-4f0d-94fc-f471cf987136\u0026file_path=dist%2Findex%2Fschematic.svg","cad_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=e8754268-2794-4f0d-94fc-f471cf987136\u0026file_path=dist%2Findex%2F3d.png","package_release_website_url":null,"display_status":"pending","latest_package_build_id":"3125ba4b-659c-4970-bf3a-53dd8e67c379","user_code_job_started_at":"2026-10-06T17:32:32.348Z","user_code_job_completed_at":"2026-10-06T17:46:15.095Z","user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":"https://usercode.tscircuit.com/user_code_jobs/view_log_stream?user_code_job_id=8699136bc921f82ce671c029dc1839784c27c331daaa3fb8b9e5e5de99e625d1","ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"09ba192e-10c6-4f9e-bf3a-7be24463f3c4","package_id":"801d06b7-add2-4b80-a025-48f1ba5dd8a3","version":"0.3.9-prototype","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":true,"is_pr_preview":false,"created_at":"2026-10-06T15:20:51.126Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":false,"transpilation_display_status":"pending","fs_sha":"md5-72913007858939a4f727b8aaef095cb1","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":false,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":false,"image_generation_display_status":"pending","pcb_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=09ba192e-10c6-4f9e-bf3a-7be24463f3c4\u0026file_path=dist%2Findex%2Fpcb.svg","sch_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=09ba192e-10c6-4f9e-bf3a-7be24463f3c4\u0026file_path=dist%2Findex%2Fschematic.svg","cad_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=09ba192e-10c6-4f9e-bf3a-7be24463f3c4\u0026file_path=dist%2Findex%2F3d.png","package_release_website_url":null,"display_status":"pending","latest_package_build_id":"20876772-b1bc-407d-b61e-f9f450f4401b","user_code_job_started_at":"2026-10-06T15:35:27.524Z","user_code_job_completed_at":"2026-10-06T15:46:16.649Z","user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":"https://usercode.tscircuit.com/user_code_jobs/view_log_stream?user_code_job_id=8d81445dc5dbded9b4c090fd9d5b7b8bd42da79c09d2b390abc5236c728a537c","ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"dbd788f4-0ac4-4b4b-81da-0d6dc4561d89","package_id":"801d06b7-add2-4b80-a025-48f1ba5dd8a3","version":"0.3.8-prototype","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":false,"is_pr_preview":false,"created_at":"2026-10-06T15:02:24.499Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":false,"transpilation_display_status":"pending","fs_sha":"md5-89e208536db96528b625d20fb34d9e8b","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":false,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":false,"image_generation_display_status":"pending","pcb_preview_image_url":null,"sch_preview_image_url":null,"cad_preview_image_url":null,"package_release_website_url":null,"display_status":"pending","latest_package_build_id":null,"user_code_job_started_at":null,"user_code_job_completed_at":null,"user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":null,"ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"b06d2b0d-e786-4e78-aba8-1e7c32fdf07f","package_id":"801d06b7-add2-4b80-a025-48f1ba5dd8a3","version":"0.3.7-prototype","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":true,"is_pr_preview":false,"created_at":"2026-10-06T14:26:48.498Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":false,"transpilation_display_status":"pending","fs_sha":"md5-16d9de31071a165b1bbad6e65d03ff8a","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":false,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":false,"image_generation_display_status":"pending","pcb_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=b06d2b0d-e786-4e78-aba8-1e7c32fdf07f\u0026file_path=dist%2Findex%2Fpcb.svg","sch_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=b06d2b0d-e786-4e78-aba8-1e7c32fdf07f\u0026file_path=dist%2Findex%2Fschematic.svg","cad_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=b06d2b0d-e786-4e78-aba8-1e7c32fdf07f\u0026file_path=dist%2Findex%2F3d.png","package_release_website_url":null,"display_status":"pending","latest_package_build_id":"70b9f2df-be65-42df-ba98-46a22cdea4cd","user_code_job_started_at":"2026-10-06T14:35:30.617Z","user_code_job_completed_at":"2026-10-06T14:43:52.389Z","user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":"https://usercode.tscircuit.com/user_code_jobs/view_log_stream?user_code_job_id=25cb4b2a22efd1defc367165ab5577d0a3aa607de775bf655d5f5efc22af9293","ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"4b91f945-e225-4f2c-a169-9d6e1522259f","package_id":"801d06b7-add2-4b80-a025-48f1ba5dd8a3","version":"0.3.6-prototype","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":true,"is_pr_preview":false,"created_at":"2026-10-06T13:10:47.702Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":false,"transpilation_display_status":"pending","fs_sha":"md5-d39a3759ba0bd0e4de6998dcf27ce2b7","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":false,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":false,"image_generation_display_status":"pending","pcb_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=4b91f945-e225-4f2c-a169-9d6e1522259f\u0026file_path=dist%2Findex%2Fpcb.svg","sch_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=4b91f945-e225-4f2c-a169-9d6e1522259f\u0026file_path=dist%2Findex%2Fschematic.svg","cad_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=4b91f945-e225-4f2c-a169-9d6e1522259f\u0026file_path=dist%2Findex%2F3d.png","package_release_website_url":null,"display_status":"pending","latest_package_build_id":"2c8aa891-4433-4ffc-bbe5-5845b12d6098","user_code_job_started_at":"2026-10-06T13:21:03.298Z","user_code_job_completed_at":"2026-10-06T13:28:47.250Z","user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":"https://usercode.tscircuit.com/user_code_jobs/view_log_stream?user_code_job_id=864099b777c400d44e916c8ccc2af3576cfb24a08b594a0d89f4add1c42a9ad8","ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"431f3654-7f35-4f30-b9c7-d20c4449cb59","package_id":"801d06b7-add2-4b80-a025-48f1ba5dd8a3","version":"0.3.5-prototype","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":true,"is_pr_preview":false,"created_at":"2026-10-06T05:44:11.125Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":false,"transpilation_display_status":"pending","fs_sha":"md5-1eba8ff1f55f47fe1eaeef6b5d4e2ec8","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":false,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":false,"image_generation_display_status":"pending","pcb_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=431f3654-7f35-4f30-b9c7-d20c4449cb59\u0026file_path=dist%2Findex%2Fpcb.svg","sch_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=431f3654-7f35-4f30-b9c7-d20c4449cb59\u0026file_path=dist%2Findex%2Fschematic.svg","cad_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=431f3654-7f35-4f30-b9c7-d20c4449cb59\u0026file_path=dist%2Findex%2F3d.png","package_release_website_url":null,"display_status":"pending","latest_package_build_id":"120ac861-88a6-4c2c-a91e-2035b8445c6b","user_code_job_started_at":"2026-10-06T05:50:45.141Z","user_code_job_completed_at":"2026-10-06T05:56:57.714Z","user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":"https://usercode.tscircuit.com/user_code_jobs/view_log_stream?user_code_job_id=39d36e2fad484cf8125023626dfb759d4968798835191cddbcd7485f72dd3f9c","ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"f01a52f3-9bc8-49a6-831a-037c0450ba05","package_id":"801d06b7-add2-4b80-a025-48f1ba5dd8a3","version":"0.3.4-prototype","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":true,"is_pr_preview":false,"created_at":"2026-10-05T22:13:26.049Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":false,"transpilation_display_status":"pending","fs_sha":"md5-7416a5b3873c709d7c87a90c9a26b17a","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":false,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":false,"image_generation_display_status":"pending","pcb_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=f01a52f3-9bc8-49a6-831a-037c0450ba05\u0026file_path=dist%2Findex%2Fpcb.svg","sch_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=f01a52f3-9bc8-49a6-831a-037c0450ba05\u0026file_path=dist%2Findex%2Fschematic.svg","cad_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=f01a52f3-9bc8-49a6-831a-037c0450ba05\u0026file_path=dist%2Findex%2F3d.png","package_release_website_url":null,"display_status":"pending","latest_package_build_id":"1d27910c-7b5f-4a11-8d6d-51c5c8715dea","user_code_job_started_at":"2026-10-05T22:20:04.583Z","user_code_job_completed_at":"2026-10-05T22:31:31.705Z","user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":"https://usercode.tscircuit.com/user_code_jobs/view_log_stream?user_code_job_id=791276ff82d4cb28b336a1cb0c35aaf7ba641874de80fe637dd7c69f25b1ae9d","ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"40705ac2-1981-42a4-8df8-fdabad5d81da","package_id":"801d06b7-add2-4b80-a025-48f1ba5dd8a3","version":"0.3.3-prototype","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":false,"is_pr_preview":false,"created_at":"2026-10-05T22:02:49.959Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":false,"transpilation_display_status":"pending","fs_sha":"md5-b0b7d9f9c934d609e30dc6fda3bee68b","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":false,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":false,"image_generation_display_status":"pending","pcb_preview_image_url":null,"sch_preview_image_url":null,"cad_preview_image_url":null,"package_release_website_url":null,"display_status":"pending","latest_package_build_id":null,"user_code_job_started_at":null,"user_code_job_completed_at":null,"user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":null,"ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"a88d1f7e-fd02-41e3-8a00-6e9cd42912e7","package_id":"801d06b7-add2-4b80-a025-48f1ba5dd8a3","version":"0.3.2-prototype","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":true,"is_pr_preview":false,"created_at":"2026-10-05T20:50:21.568Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":false,"transpilation_display_status":"pending","fs_sha":"md5-939d955de061659fda524bd574b2de22","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":false,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":false,"image_generation_display_status":"pending","pcb_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=a88d1f7e-fd02-41e3-8a00-6e9cd42912e7\u0026file_path=dist%2Findex%2Fpcb.svg","sch_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=a88d1f7e-fd02-41e3-8a00-6e9cd42912e7\u0026file_path=dist%2Findex%2Fschematic.svg","cad_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=a88d1f7e-fd02-41e3-8a00-6e9cd42912e7\u0026file_path=dist%2Findex%2F3d.png","package_release_website_url":null,"display_status":"pending","latest_package_build_id":"b97ad9fb-49ab-4386-943c-669d5215930f","user_code_job_started_at":"2026-10-05T20:54:27.747Z","user_code_job_completed_at":"2026-10-05T21:00:23.044Z","user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":"https://usercode.tscircuit.com/user_code_jobs/view_log_stream?user_code_job_id=90d9a8ef33a5cbf81e69b0866e1029c947404d50b0caf4a392de4eb00a53ae2f","ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"ba2b719e-1791-40b0-961c-313ea3752741","package_id":"801d06b7-add2-4b80-a025-48f1ba5dd8a3","version":"0.3.1-prototype","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":false,"is_pr_preview":false,"created_at":"2026-10-05T20:45:41.226Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":false,"transpilation_display_status":"pending","fs_sha":"md5-b9e9f83a60891353c141cee92e117e60","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":false,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":false,"image_generation_display_status":"pending","pcb_preview_image_url":null,"sch_preview_image_url":null,"cad_preview_image_url":null,"package_release_website_url":null,"display_status":"pending","latest_package_build_id":null,"user_code_job_started_at":null,"user_code_job_completed_at":null,"user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":null,"ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null},{"package_release_id":"69737cfa-3615-46d8-9d5e-feacfa94e0d4","package_id":"801d06b7-add2-4b80-a025-48f1ba5dd8a3","version":"0.3.0-prototype","github_commit_sha":null,"is_locked":false,"is_latest":false,"ready_to_build":false,"is_pr_preview":false,"created_at":"2026-10-05T18:56:43.959Z","circuit_json_build_error":null,"circuit_json_build_error_last_updated_at":null,"has_transpiled":false,"transpilation_error":null,"transpilation_logs":null,"transpilation_in_progress":false,"transpilation_started_at":null,"transpilation_completed_at":null,"transpilation_is_stale":false,"transpilation_display_status":"pending","fs_sha":"md5-5a4b8c70ba3f647bdb187529e9691799","circuit_json_build_logs":null,"circuit_json_build_in_progress":false,"circuit_json_build_started_at":null,"circuit_json_build_completed_at":null,"circuit_json_build_is_stale":false,"circuit_json_build_display_status":"pending","image_generation_error":null,"image_generation_error_last_updated_at":null,"image_generation_logs":null,"image_generation_in_progress":false,"image_generation_started_at":null,"image_generation_completed_at":null,"image_generation_is_stale":false,"image_generation_display_status":"pending","pcb_preview_image_url":null,"sch_preview_image_url":null,"cad_preview_image_url":null,"package_release_website_url":null,"display_status":"pending","latest_package_build_id":null,"user_code_job_started_at":null,"user_code_job_completed_at":null,"user_code_job_error":null,"user_code_job_completed_logs":null,"user_code_job_log_stream_url":null,"ai_review_requested":false,"github_pr_number":null,"github_pr_title":null,"github_branch_name":null}]; window.SSR_PACKAGE_BUILDS = []; window.SSR_RELATED_PACKAGES = [{"package_id":"f3a86a2d-0c9e-43a9-9bf0-420469145eb7","creator_account_id":"84198f66-bb86-4dc1-97f0-cdf2cf2c843a","latest_package_release_id":"26dff483-13fe-479e-bb9a-6fa0288f2f6b","last_built_release_id":"26dff483-13fe-479e-bb9a-6fa0288f2f6b","latest_package_release_fs_sha":"md5-f2b42bf31d3eb18060a496cd07a8a617","latest_pcb_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=26dff483-13fe-479e-bb9a-6fa0288f2f6b\u0026file_path=dist%2Fpcb.svg","latest_sch_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=26dff483-13fe-479e-bb9a-6fa0288f2f6b\u0026file_path=dist%2Fschematic.svg","latest_cad_preview_image_url":null,"latest_version":"1.3.0","license":"unset","owner_org_id":"07e44f25-c5d3-4583-9c34-2c7bb568f85b","org_owner_tscircuit_handle":"AnasSarkiz","owner_github_username":"AnasSarkiz","github_repo_full_name":null,"is_source_from_github":false,"description":"Muse Voice Remote v1.3.0: checked prototype PCB/PCBA handoff. Bare ESP32-S3R8 chip, 155 TOP parts from 56 stocked JLCPCB imports with supplier CAD retained. Exact ER-TFT028A2-4 no-touch LCD, dual microphones, TALK, physical privacy, Wi-Fi, speaker, haptic and USB-C. Includes circuit.json, Gerbers/drills, JLC BOM/CPL, segmented stencil artwork and 19 filled/capped thermal-hole map. Native/factory DRC clean; 20 tests pass. See manufacturing/FABRICATION-NOTES.md for stackup and assembly requirements. Physical device/enclosure/RF qualification, firmware and connected-service MUSE integration remain unverified.","name":"AnasSarkiz/muse-voice-remote","unscoped_name":"muse-voice-remote","star_count":0,"created_at":"2026-10-12T15:33:16.680Z","updated_at":"2026-10-14T02:56:51.573Z","ai_description":"A 4-layer ESP32-S3 voice remote PCB integrating dual digital microphones, TFT LCD/FPC interface, USB-C LiPo power/charging, audio amplifier and speaker, haptic motor, RF/flash circuitry, privacy switching, and supporting power-management components.","ai_usage_instructions":null,"is_private":false,"is_unlisted":false,"is_public":true,"public_dist_enabled":false,"has_public_dist":true,"starred_at":null,"default_view":"files","website":null,"github_installation_id":null,"allow_pr_previews":false,"related_type":"same_author","thumbnail_url":"https://api.tscircuit.com/package_files/view?package_release_id=26dff483-13fe-479e-bb9a-6fa0288f2f6b\u0026file_path=dist%2Fpcb.svg"},{"package_id":"7c4f7ef6-0c20-441e-b5a5-1952d955eccf","creator_account_id":"d16b4134-1b33-4d60-bdf2-151748766d5b","latest_package_release_id":"cbdd52b4-d52e-4095-8882-d107ff959339","last_built_release_id":"cbdd52b4-d52e-4095-8882-d107ff959339","latest_package_release_fs_sha":"md5-2ea962e9b2b863a7a4703b259838dc8e","latest_pcb_preview_image_url":"https://registry-api.tscircuit.com/package_files/view?package_release_id=cbdd52b4-d52e-4095-8882-d107ff959339\u0026file_path=dist%2Findex%2Fpcb.svg","latest_sch_preview_image_url":"https://registry-api.tscircuit.com/package_files/view?package_release_id=cbdd52b4-d52e-4095-8882-d107ff959339\u0026file_path=dist%2Findex%2Fschematic.svg","latest_cad_preview_image_url":"https://registry-api.tscircuit.com/package_files/download?package_release_id=cbdd52b4-d52e-4095-8882-d107ff959339\u0026file_path=dist%2Findex%2F3d.png","latest_version":"0.0.1","license":"unset","owner_org_id":"9e4219cf-4b9e-4932-9128-52cef42cad89","org_owner_tscircuit_handle":"0hmx3","owner_github_username":null,"github_repo_full_name":null,"is_source_from_github":false,"description":"","name":"aura/diy-power-delivery-trigger","unscoped_name":"diy-power-delivery-trigger","star_count":0,"created_at":"2026-04-23T21:10:31.029Z","updated_at":"2026-04-25T11:57:14.077Z","ai_description":"This hardware design implements a USB Type-C port with supporting power management and signal conditioning components, including a USB-C connector, a FUSB302 USB-C port controller, ESD protection diodes, a buck converter for 3.3V power regulation, an STM32 microcontroller for control and processing, an RGB LED indicator, push button, terminal block connections, and associated filtering and support components.","ai_usage_instructions":null,"is_private":false,"is_unlisted":false,"is_public":true,"public_dist_enabled":false,"has_public_dist":true,"starred_at":null,"default_view":"files","website":null,"github_installation_id":null,"allow_pr_previews":false,"related_type":"similar_ai_description","thumbnail_url":"https://registry-api.tscircuit.com/package_files/view?package_release_id=cbdd52b4-d52e-4095-8882-d107ff959339\u0026file_path=dist%2Findex%2Fpcb.svg"},{"package_id":"077ac206-e748-4a5a-8589-4b40d661a12f","creator_account_id":"9f398687-69d0-4ef4-a48c-bb6dc990e7df","latest_package_release_id":"b5208454-2365-45d8-ae1c-f12d5e466266","last_built_release_id":"b5208454-2365-45d8-ae1c-f12d5e466266","latest_package_release_fs_sha":"md5-2ae193a43d16ff526f0ee6d03d6a2b24","latest_pcb_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=b5208454-2365-45d8-ae1c-f12d5e466266\u0026file_path=dist%2Findex%2Fpcb.svg","latest_sch_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=b5208454-2365-45d8-ae1c-f12d5e466266\u0026file_path=dist%2Findex%2Fschematic.svg","latest_cad_preview_image_url":"https://api.tscircuit.com/package_files/view?package_release_id=b5208454-2365-45d8-ae1c-f12d5e466266\u0026file_path=dist%2Findex%2F3d.png","latest_version":"0.0.9","license":"unset","owner_org_id":"f154d4e0-ac63-47a3-948e-a13da34df910","org_owner_tscircuit_handle":"seveibar","owner_github_username":"seveibar","github_repo_full_name":null,"is_source_from_github":false,"description":null,"name":"seveibar/am3352-ram-dogbone-and-single-layer-route-test","unscoped_name":"am3352-ram-dogbone-and-single-layer-route-test","star_count":0,"created_at":"2026-09-29T19:44:51.230Z","updated_at":"2026-09-30T03:52:15.516Z","ai_description":"AM3352BZCZ100 processor connected to a W631GG6MB-12 DDR3 memory chip through a routed, length-matched 16-bit DDR interface with clock/data-strobe pairs and control/address signals.","ai_usage_instructions":null,"is_private":false,"is_unlisted":false,"is_public":true,"public_dist_enabled":false,"has_public_dist":true,"starred_at":null,"default_view":"files","website":null,"github_installation_id":null,"allow_pr_previews":false,"related_type":"random","thumbnail_url":"https://api.tscircuit.com/package_files/view?package_release_id=b5208454-2365-45d8-ae1c-f12d5e466266\u0026file_path=dist%2Findex%2Fpcb.svg"}]; window.SSR_PACKAGE_ROUTE = {"author":"AnasSarkiz","packageName":"magnetic-shutter-remote-r8","packageNameWithScope":"AnasSarkiz/magnetic-shutter-remote-r8","version":null,"isLegacyRoute":false,"kind":"file","filePath":"scripts/write-r9-bom.py"};