Rebuilt the dmg with the file API and watcher inside, then mounted, installed, and launched it on this Mac, fixing two build breaks on the way.
With the file API and the watcher landed, the dmg needed a fresh build and a real install test. Rebuilt it, mounted it, installed it to Applications, launched it, and confirmed the window comes up instead of the old white screen.
What got checked
The packaged asar holds the watcher code and the renderer bundle, asset paths are relative, and the icon ships in Resources. The installed app starts its main, GPU, network, and renderer processes and opens a window titled MD Kanban. That is the full chain from source to a running desktop app on this machine.
Two build breaks along the way
First, the source index.html had been overwritten with built output, so Vite tried to resolve a hashed bundle from the source file and failed. Restored it from git and the build passed. The lesson is old: never let build output land on source paths.
Second, electron-builder failed with a corrupted Electron dist. The cached Electron download in the macOS cache folder was incomplete, likely from an interrupted earlier run. Wiping that cache folder and rebuilding fixed it. Nothing wrong with the project, just a bad artifact on disk.
Where it stands
The dmg on disk matches current source, installs clean, and runs. Packaging is done until code signing becomes worth doing.