Claude Desktop 1.11847.5 (patch release 2)
This release provides Claude Desktop version 1.11847.5 pre-patched for Linux.
Installation Options
Arch Linux (AUR)
yay -S claude-desktop-binDebian/Ubuntu (APT Repository — recommended)
curl -fsSL https://patrickjaja.github.io/claude-desktop-bin/install.sh | sudo bash
sudo apt install claude-desktop-binDebian/Ubuntu (manual .deb)
# x86_64
sudo apt install ./claude-desktop-bin_1.11847.5-2_amd64.deb
# ARM64
sudo apt install ./claude-desktop-bin_1.11847.5-2_arm64.debFedora/RHEL (RPM Repository — recommended)
curl -fsSL https://patrickjaja.github.io/claude-desktop-bin/install-rpm.sh | sudo bash
sudo dnf install claude-desktop-binFedora/RHEL (manual .rpm)
# x86_64
sudo dnf install ./claude-desktop-bin-1.11847.5-2.x86_64.rpm
# ARM64
sudo dnf install ./claude-desktop-bin-1.11847.5-2.aarch64.rpmNixOS / Nix
nix run github:patrickjaja/claude-desktop-binAppImage (Any Distro)
# x86_64
chmod +x Claude_Desktop-1.11847.5-x86_64.AppImage
./Claude_Desktop-1.11847.5-x86_64.AppImage
# ARM64
chmod +x Claude_Desktop-1.11847.5-aarch64.AppImage
./Claude_Desktop-1.11847.5-aarch64.AppImageUpdate existing AppImage (delta download — only changed blocks):
appimageupdatetool Claude_Desktop-*-x86_64.AppImage # Or from within the AppImage: ./Claude_Desktop-*-x86_64.AppImage --appimage-update
Checksums
| File | SHA256 |
|---|---|
| Tarball (x86_64) | 60728e2555c948479539da5277b363f2f584948830545da993a8b78c541de722
|
| Tarball (aarch64) | d681b729d0788debf018c768fde3aaeeb8ced53f85fbddc69e65af02eec751c0
|
| AppImage (x86_64) | 038ffb3b2842cf3fab7c426750a98a425e5587b8de4f318048444c8fca844bbb
|
| AppImage (aarch64) | 19d83fa3279bde7084a1e75f1ed2a937f38c54437d6e2f848f44b4e7c856334f
|
| Debian (amd64) | ffae61d0323ff33a94f641b6e9b9b2de9d4f0890f2f3c3f6aef39ae28a5c5359
|
| Debian (arm64) | 344ad35591763291873d5b129275e12c266fdaab64d4433d010d6e41dda44c6d
|
| RPM (x86_64) | 4ccf8b1d79e3085b28046026803b47fc614b40b386132e89b4eeb9c213c4c8c3
|
| RPM (aarch64) | 8698e7f3bb5ea3af2bdb5e2405e98b56e4386af4bcc2e2b7efe63720150767ab
|
Changes since last release
Issue
- #128:
[CliGovernor] memory pressure (critical)log spam on Linux plus silent renderer "eviction" forcing a claude.ai re-login. Root cause of the spam: Electron'sprocess.getSystemMemoryInfo().freeisMemFreeon Linux, which excludes reclaimable page cache. A healthy 32 GB box measured MemFree/MemTotal = 5.3% while MemAvailable/MemTotal = 61.8%, so the governor (warning <5%, critical <2%, 10s poll,M$r=.05/N$r=.02in v1.11847.5) fires constantly on perfectly healthy systems. The pressure events only log + send telemetry - they never touch the renderer. Separately, the main webview'srender-process-gonehandler early-returns with no log when the reason iskilled/clean-exitor an expected kill is pending - a kernel OOM SIGKILL maps tokilled, so the renderer death that precedes the re-login was invisible in main.log (the reporter's "no render-process-gone events" proved nothing).
New patches (2)
fix_cli_governor_memavailable.nim- rewritesgetFreeMemoryRatioto readMemAvailable/MemTotalfrom/proc/meminfo(clamped withMath.min(1, ...)), re-emitting the captured upstream expression verbatim as the fallback if the/procread throws.require("fs")is cached by Node's module loader, so the 10s poll costs one ~1.5 KB procfs read. Idempotency marker:/proc/meminfowithin 200 chars ofgetFreeMemoryRatio:. macOS is unaffected (native pressure events bypass the polling path). Upstream's own MCP timeout diagnostics already compensate withfree + fileBackedelsewhere - the governor just never got the fix.fix_renderer_gone_suppressed_log.nim- insertsD.info("Main webview render process gone (suppressed): %o",{reason,exitCode,expectedKills})inside the early-return branch of the main-webviewrender-process-gonehandler, before the counter decrement (expectedKills > 0= app-initiated kill via the unresponsive handler;0with reasonkilled= external kill, e.g. kernel OOM). All identifiers captured via[\w$]+groups; the trailing"Main webview render process gone: %o"literal pins the one correct site out of 8render-process-goneregistrations. Pure observability - suppression behavior (no reload) unchanged.
Tooling
scripts/validate-patches.sh- added anim-dirbranch (copy directory to a temp dir, run the binary on it) and a directory-aware existence check. Previouslyfix_ion_dist_linux.nimalways failed standalone validation with "target file not found" because the script-f-tested its directory target; suite is now 51/51.
Not addressed (still open in #128)
preferencesChangedMaxListeners warning - upstream claude.ai web-app bug (the shipped preload'sonPreferencesChangedcorrectly returns an unsubscribe closure; the remote web app re-subscribes without cleanup). Trivial magnitude (~KBs per page session); masking it would hide real regressions.- The re-login mechanism itself - the claude.ai view runs on persistent
session.defaultSessionand the recovery path is a plainwebContents.reload(), so the web session should survive; needs incident-time evidence from the reporter (asks posted on the issue).
Verification
- Patch count 48 -> 50; both new patches idempotent (second run exits 0 via marker detection);
node --checkpasses on the patched JS;./scripts/validate-patches.sh51/51 green; pure-JS text patches, identical on x86_64 and aarch64.