The plugin now works on macOS. Results are unchanged from 1.2.2 for the same board and settings - nothing in the numerics was touched; this release is platform fixes and per-OS documentation. macOS (field-tested on KiCad 10): - Fixed a crash on launch. KiCad's macOS builds bundle Python 3.9, and one module's type annotations were evaluated at import there ("unsupported operand type(s) for |: 'type' and 'NoneType'"). The plugin now runs on 3.9, and a test walks every shipped module so the incompatibility cannot silently return. - Fixed every figure - the error figure included - refusing to render with "Cannot load backend 'TkAgg' ... as 'qt' is currently running". macOS' bundled Python ships tkinter, so matplotlib preferred Tk while the selection dialog had already made the process a Qt one. Qt (PySide6, a hard dependency) is now always the first choice on every platform. - A board in a read-only location - such as the demo projects opened straight from the mounted installer image - no longer kills the run when the results directory cannot be created next to the board. Results fall back to a temp directory and the path is printed to the Messages panel. - The test suite additionally runs against the stack a Mac plugin environment actually resolves (Python 3.9, numpy 2.0, scipy 1.13, matplotlib 3.9, PySide6 6.10) - 140 tests on both stacks. Linux: - On ARM64 (aarch64) the plugin environment could never build: pyamg publishes no wheels for that platform, KiCad installs wheels only, and one unresolvable requirement fails the whole environment. pyamg is now skipped there and the solver falls back to Jacobi-CG - same results, noticeably slower on large grids. Linux as a whole remains untested; reports welcome. Documentation: - Setup now gives dedicated instructions per operating system: which interpreter path to check, how to deploy, and where the plugin's Python environment lives on Windows, macOS and Linux (for the delete-and-restart recovery). A platform-notes section records what is actually tested on each OS and what to expect there.