Known limitations¶
-
FEM requires an external Python interpreter with the Gmsh API and
ElmerGrid/ElmerSolver. The sidecar includes FEM Python sources but does not bundle Elmer or that interpreter. SetADELPHA_FEM_PYTHONif needed; see FEM simulation. -
Studio workers (gradient coils, RF coils, passive shimming, MRZero, analytical magnet) run as child processes of
adelpha-python-runtime. The frozen binary is not a Python interpreter; children userun-script. Isolated developer venvs (coil/.venv,shim/.venv,RFcoilbuilder/.venv) are not shipped. The freeze installs those worker packages into the sidecar (pyCoilGen with--no-depsso it cannot pin NumPy 1 over DTAM). -
DTAM is MIT (
sidecar/dtam/LICENSE). A public installer that also bundles the imaging console is still a GPL-3 distribution of that runtime. - GPL-3 console in the sidecar: corresponding source must ship with any distributed runtime.
- DTAM lives in this repo at
sidecar/dtam/as a regular tree (not a submodule). - Numpy: sidecar is numpy 2. Sequence registry code that needs numba 1.x will use the HTTP FALLBACK catalog.
- Agents require a user-provided
GOOGLE_API_KEYin the app config directory (google_api_key). The key is never bundled. Rotate any key that lived in a developersidecar/dtam/.env. - Linux AppImage bundling uses
linuxdeploy, which can fail in GitHub Actions (FUSE, orstripon ELF.relr.dynsections). CI builds the.debfirst (the download installer) withNO_STRIP=trueandAPPIMAGE_EXTRACT_AND_RUN=1, then tries AppImage. A missing AppImage omitslinux-x86_64fromlatest.json; the.debis still the Linux release artifact. - No cross-compilation of the Python sidecar. Each installer is built on a matching OS/arch runner.
- Universal macOS DMG is not produced (sidecar native libs).
- macOS
bundle_dmg.shuses Finder AppleScript for icon layout. That step often fails in CI, Cursor terminals, or when a leftover Adelpha volume is still mounted.make dist-currentsetsCI=true(skip AppleScript) and falls back tomake dmg(hdiutil) if Tauri's DMG still fails. The.appundersrc-tauri/target/release/bundle/macos/is usable without a DMG. - Windows ARM64 and extra Linux arches are out of the default matrix.
- MaRCoS / FPGA: desktop never programs hardware. Scanner deploy stays a separate, user-controlled workflow.
- Electron is still in the source tree for comparison; it is not in the Tauri installer.
- Signing: public Gatekeeper/SmartScreen trust needs certificates listed
in
signing.md. CI defaults to unsigned artifacts. - In-app updates: Settings → Updates only installs a newer build after a
tagged CI release (
v*) that uploaded signed updater artifacts andlatest.json. Dev / unsigned local builds will report an error or “up to date” rather than installing from GitHub. - In-app terminal is a real user shell (PTY). It is implemented in Rust only. The frontend cannot pass arbitrary OS commands through a generic shell API.
- Camera in a packaged Mac build needs the camera entitlement and a
Privacy prompt. Reset with
tccutil reset Camera org.adelpha.digital-twin-uiif an older unsigned build already denied access. - CAD import in a packaged build needs the current CSP (
blob:,wasm-unsafe-eval). Rebuild after those packaging changes.