* Make IPC and IR tooling compatible with WASM
Separate native CLI dependencies from in-memory IPC import, export, and DFM code. Keep native parallel execution and run the same geometry algorithms sequentially on WASM.
* Add WASM APIs for IPC import, export, and DFM
Expose typed IpcDocument bindings and shared export helpers. Add package builds, JavaScript runtime tests, and TypeScript checks.
* feat(pcb): add native KiCad URL launcher
* fix(pcb): harden launcher recovery choices
* fix(pcb): prevent concurrent recovery sessions
* fix(pcb): guard restored editor sessions
* refactor(pcb): extract shared pcb-diode-uri and pcb-native-dialog crates
pcb-launcher's URI validation re-implemented pcb-diode-api's SandboxFileUri
parsing; move that parser into a tiny pcb-diode-uri crate both can use, and
give the trusted-host allowlist a single home there. Likewise collapse the
duplicated osascript/zenity/kdialog/PowerShell dialog machinery from
pcb-launcher and pcbc's recovery dialog into a pcb-native-dialog crate.
Also drop the launcher's redundant staged-app cleanup (the Drop guard
covers it), the duplicate log chmod, the Debug-formatted log header, and
a clippy for_kv_map lint in the interposer pattern test.
* fix(pcb): block recovery while a recoverable session's editor is open
A recoverable stop now deliberately leaves KiCad running, so the
still-open-editor guard must cover Recoverable sessions too — otherwise
Restore reuses the same local layout dir while the first KiCad instance
still has it open. Also match the tracked pid's process name (open /
pcbnew / kicad) instead of bare liveness, so a recycled pid cannot
permanently wedge the board.
* refactor(pcb): simplify launcher install and open plumbing
Split install_shim_launcher into fetch / stage / replace helpers so the
Windows backup-rename dance is a reusable replace_executable_with_backup,
fold pcb-kicad's duplicated per-OS pcbnew command construction into one
builder, share a single Download-style helper in install.ps1 the way
install.sh already does, dedupe the recovery-cancel wind-down, and fix
the README's launcher wording.
* refactor(pcb): re-export diode URI types without a module alias
Nothing consumed the pcb_diode_api::diode_uri path; re-export the types
directly from pcb-diode-uri instead of aliasing the whole crate.
* refactor(pcb): trust *.diode.computer in release, all hosts in debug
Replaces the enumerated host allowlist: release launchers accept any
*.diode.computer subdomain (portless, so preview and gov endpoints work
without listing them), while debug builds trust every host so local API
stacks need no special-casing.
Drop Intel macOS artifacts and client support, migrate eligible CI jobs to Blacksmith runners, standardize CI on KiCad 10.0.5, and retain GitHub-hosted npm publishing for trusted publishing/OIDC.
* Externalize stdlib artifact handling
* Test local installer in pcbc workflows
* Simplify local pcbc workflow install
* Use pcb shim for local workflow tests
* Trim stdlib discovery tests
* Keep workspace stdlib path stable
* Fix stdlib artifacts in CI workflows
* Run build perf through local pcb shim
* Compare build perf against nightly
* Find stdlib from cargo test binaries
* Cache nightly release metadata
* Benchmark build perf against merge base
* Install stdlib with managed pcbc toolchains
* Install stdlib as optional companion artifact
* Require stdlib archive and move it into the per-target dir
Place lib/std inside toolchains/<version>/<target>/ so the original
single-dir stage-and-rename already covers binary, receipt, and stdlib
atomically, removing the whole-root staging/swap machinery. Treat a
missing stdlib.tar.zst as an install error now that releases (and the
backfilled v0.3.92) always publish it, and upload the stdlib first in
the release workflow so a version is never discoverable without it.
* Remove shim version from installer output
* Stop publishing pcb shim GitHub releases
* Trim pcb shim binary size
* Use native TLS for pcb shim downloads
* Publish zstd release artifacts
* Use zstd artifacts for toolchain downloads
* Bump pcb shim to 0.2.0
* Format pcbc release titles with date
The larger Ubicloud runners can take longer to provision during peak hours, and these jobs do not need 30 cores. Use standard-16 runners for Linux CI and release jobs while keeping the small 2/4-core jobs as-is.
* Remove obsolete stdlib-version-check workflow
stdlib is now embedded in-tree under stdlib/, so the external
version bump workflow is no longer needed.
* Use in-repo stdlib for e2e tests
stdlib is now embedded in the repo, so remove the external
diodeinc/stdlib checkout and build stdlib/ directly.