Files
claude-desktop-debian/nix
Travis 52899114d3 fix: copy ion-dist static assets for app:// protocol handler (#490)
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>
2026-04-22 21:35:16 -04:00
..