mirror of
https://github.com/aaddrick/claude-desktop-debian.git
synced 2026-05-17 08:36:35 +03:00
The Claude Desktop app registers a custom app:// protocol handler rooted at process.resourcesPath/ion-dist — that directory holds the static SPA assets for internal windows like Third-Party Inference setup, Connectors config, etc. The Windows installer ships ion-dist under lib/net45/resources but scripts/staging/cowork-resources.sh never copied it into the electron resources dest, so every app://localhost/* request fell through to the static file handler's index.html fallback, which also failed because the whole directory was missing. Net effect: the Third-Party Inference setup window (Developer → Configure Third-Party Inference…) opened as a blank window with ERR_FILE_NOT_FOUND / ERR_UNEXPECTED on loadURL. Add an ion-dist copy step to copy_cowork_resources() matching the existing smol-bin / plugin-shim pattern (warn-and-continue on absence), and a matching install stanza in nix/claude-desktop.nix so NixOS users get the fix too — without the Nix hunk, ion-dist lands in the nix-resources/ sentinel but the installPhase doesn't cherry-pick it. Verified end-to-end: - Fresh build ./build.sh --build appimage picks up ion-dist from the 1.3883.0 Windows installer (84 MB uncompressed, ~42 MB delta in the AppImage after squashfs). - Live install on CachyOS daily-driver; Developer → Configure Third-Party Inference… now renders the full 6-tab config UI (Connection / Sandbox & workspace / Connectors & extensions / Telemetry & updates / Usage limits / Plugins & skills / Egress Requirements) per the upstream docs at support.claude.com/en/articles/14680741. - Logs clean of ERR_UNEXPECTED / ERR_FILE_NOT_FOUND on setup-desktop-3p. Fixes #488 Co-authored-by: Claude <claude@anthropic.com>