Skip to content

fix: AppImage crash behind proxies, plugin permission query, Windows smoke test (v0.6.6) - #37

Merged
karem505 merged 3 commits into
masterfrom
ccr-d1abd228-5xa5l1
Oct 9, 2026
Merged

karem505 merged 3 commits into
masterfrom
ccr-d1abd228-5xa5l1

Conversation

@karem505

@karem505 karem505 commented Oct 9, 2026

Copy link
Copy Markdown
Owner

Found by running the published v0.6.5 builds end to end on a headless Linux desktop and on a fresh Windows runner.

AppImage: "WebKit encountered an internal error" behind a proxy

  • Symptom: with HTTPS_PROXY/HTTP_PROXY-style variables set, the v0.6.4 and v0.6.5 AppImages never load WhatsApp. WebKit's network process crashes, and the page shows "WebKit encountered an internal error". Without those variables the AppImage works, and the v0.6.3 AppImage works in the same environment.
  • Cause: newer Tauri bundlers pack glib-networking's libgioenvironmentproxy.so and libgiolibproxy.so (plus libproxy.so.1), which v0.6.3 never bundled. I bisected the GIO module directory, restoring the bundled modules one at a time. TLS alone works and TLS + the GNOME-settings proxy module works; adding either environment-based proxy module crashes the network process.
  • Fix: scripts/strip-appimage-libs.sh (the AppImage bundles libwayland-client.so.0, breaking Mesa EGL — blank window with EGL_BAD_PARAMETER #22 post-processing step) now also removes those modules and drops them from giomodule.cache. It also resets directories to 0755: the AppImage runtime extracts them as 0700, and the repack was baking that in.
  • Verified: I applied the script to the published v0.6.5 AppImage and ran it with the proxy variables set. WhatsApp loads, and page links reach the browser with a clean environment: no AppImage LD_LIBRARY_PATH, no forced GDK_BACKEND, no bundle paths in XDG_DATA_DIRS.

Unhandled rejection in the page on Linux/macOS

  • Cause: the notification plugin's init script calls plugin:notification|is_permission_granted on every page load. The remote page wasn't allowed to make that call, so every start logged pageerr: unhandledrejection: Command plugin:notification|is_permission_granted not allowed by ACL.
  • Fix: grant only notification:allow-is-permission-granted. The plugin's notify stays denied.
  • Verified: a new ACL test covers it, and a fresh build run headless starts without the error.

smoke-windows workflow

On a fresh windows-latest runner it:

  • downloads the latest (or a given) release and installs it silently;
  • checks the whatsapp:// registry entry and launches the app;
  • clicks real links on WhatsApp's page, then checks a browser was started with that URL;
  • opens a whatsapp:// link and checks a single instance;
  • prints the app log and base64 screenshots, and uploads the screenshots as an artifact.

It runs on push when its own file changes, or manually with a version input. Against v0.6.5 it passed every check: install, HKCU\Software\Classes\whatsapp → whatrust.exe "%1", webview2: NotificationReceived handler installed, Need help? opening faq.whatsapp.com in Edge, the Download button starting a download, and links: opening a WhatsApp link in-app with one process.

Release

  • Version 0.6.6, a Flatpak metainfo entry, and docs/release-notes/v0.6.6.md.

Testing

🤖 Generated with Claude Code

https://claude.ai/code/session_01L8dUghRiNrKrHHR5BNMSSD


Generated by Claude Code

claude added 3 commits October 9, 2026 19:25
…Windows smoke test

Found by running the v0.6.5 release on a headless Linux desktop:

- AppImage: newer Tauri bundlers pack glib-networking's environment and
  libproxy proxy-resolver modules. With HTTP(S)_PROXY-style variables set,
  WebKit's network process crashes on them and every page shows "WebKit
  encountered an internal error" (v0.6.3 never bundled them and works).
  strip-appimage-libs.sh now removes both modules and libproxy, drops them
  from giomodule.cache, and gives directories normal 0755 modes instead of
  the 0700 the runtime's extraction leaves.
- The notification plugin's init script asks `is_permission_granted` on every
  page load; the remote page wasn't allowed to, leaving an unhandled promise
  rejection in WhatsApp's page on Linux/macOS. Grant only that read-only query;
  the plugin's `notify` stays denied. ACL test added.
- smoke-windows workflow: installs a published release on a fresh Windows
  runner, checks the whatsapp:// registration, launches it, clicks a page link
  through to the browser, opens a whatsapp:// link, and prints the app log and
  screenshots.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L8dUghRiNrKrHHR5BNMSSD
… Windows banner)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L8dUghRiNrKrHHR5BNMSSD
- Version 0.6.6 in Cargo.toml, Cargo.lock and tauri.conf.json
- Flatpak metainfo release entry
- Release notes in docs/release-notes/v0.6.6.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L8dUghRiNrKrHHR5BNMSSD
@karem505
karem505 merged commit 1bedbb0 into master Oct 9, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants