github patrickjaja/claude-desktop-extra v2.2553.1
Claude Desktop 2.2553.1

3 hours ago

Claude Desktop 2.2553.1

This release provides Claude Desktop version 2.2553.1 pre-patched for Linux.

Installation Options

Arch Linux (pacman Repository - recommended)

curl -fsSL https://patrickjaja.github.io/claude-desktop-extra/install-pacman.sh | sudo bash
sudo pacman -Syu claude-desktop-extra

Arch Linux (manual package)

# x86_64
sudo pacman -U https://github.com/patrickjaja/claude-desktop-extra/releases/download/v2.2553.1/claude-desktop-extra-2.2553.1-1-x86_64.pkg.tar.zst
# ARM64
sudo pacman -U https://github.com/patrickjaja/claude-desktop-extra/releases/download/v2.2553.1/claude-desktop-extra-2.2553.1-1-aarch64.pkg.tar.zst

Debian/Ubuntu (APT Repository — recommended)

curl -fsSL https://patrickjaja.github.io/claude-desktop-extra/install.sh | sudo bash
sudo apt install claude-desktop-extra

Debian/Ubuntu (manual .deb)

# x86_64
sudo apt install ./claude-desktop-extra_2.2553.1-1_amd64.deb
# ARM64
sudo apt install ./claude-desktop-extra_2.2553.1-1_arm64.deb

Fedora/RHEL (RPM Repository — recommended)

curl -fsSL https://patrickjaja.github.io/claude-desktop-extra/install-rpm.sh | sudo bash
sudo dnf install claude-desktop-extra

Fedora/RHEL (manual .rpm)

# x86_64
sudo dnf install ./claude-desktop-extra-2.2553.1-1.x86_64.rpm
# ARM64
sudo dnf install ./claude-desktop-extra-2.2553.1-1.aarch64.rpm

NixOS / Nix

nix run github:patrickjaja/claude-desktop-extra

AppImage (Any Distro)

# x86_64
chmod +x Claude_Desktop-2.2553.1-x86_64.AppImage
./Claude_Desktop-2.2553.1-x86_64.AppImage
# ARM64
chmod +x Claude_Desktop-2.2553.1-aarch64.AppImage
./Claude_Desktop-2.2553.1-aarch64.AppImage

Update 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
Arch pacman (x86_64) 4910ec5d9707567edc791d62495e693191f0a35a6fd8ec081ed2751c3cd96f3f
Arch pacman (aarch64) bce5c631d0c8873cbe6d70aa51ca1e362135cc5ab94e3b785f449affca65e9fd
Tarball (x86_64) 52810f42e6b665f543d9bcafb16588d68834addb554a71116c7aa5f4c26509f9
Tarball (aarch64) 93f7331db362f3dbefc5e6fcdde77ccff17872fb712d8333a65c5746a496eb03
AppImage (x86_64) 65fe5346c9a70bebb9cdbe2b96503e7453cdefe19855ece07659f89f4417106e
AppImage (aarch64) c30d46225d9cfac2ee32c5dbd3469a1c3e053b744a7e56a43b1973c82da3bbe4
Debian (amd64) b48614fe7fbb95ae5832a3068b8c321b11b63f5823a92e7bd5e323e4e4b1bd99
Debian (arm64) 8143f176098ee853d8a98bde644eb66d5fe82c18544c7f34e1e0dd6b9a5239d0
RPM (x86_64) 7177b8dd20a1456b4ecb0cba7d3bc119807394d8e0e14e12d20c5bf3e7a4daa3
RPM (aarch64) c8b1a6f90071bd554f91121ef32e85aa2bd2b1f335b59263aa29e53263055e66

Changes since last release

From CHANGELOG.md, 2026-09-18:

Claude Desktop v2.2553.1

Upstream's first 2.x release, and a full re-minify: not one of the 157 content-hashed
chunks in v1.49585.0 survives into the 201 of v2.2553.0, and index.js and
index.pre.js differ too. Every patch pattern re-matched against freshly minified
text rather than surviving by luck. Exactly one sub-patch needed re-anchoring.

v2.2553.1 landed during the same pass. It re-emits every chunk hash again but is
semantically identical where our work is pinned: the same set of flag ids, the same 171
managed-settings keys, the same 199 chunks and the same darwin/win32/linux gate counts,
on the same Electron 44.2.0. All patches apply to it unchanged, so the audit below holds
for both and .upstream-version records v2.2553.1.

Computer Use: the tool handler gained a state argument. Upstream reshaped the
internal-MCP server definition. The Computer Use server now exposes a
createToolHandler that builds a per-handler state object and passes it as a new
leading argument, so handleToolCall went from (toolName, input, session) to
(state, toolName, input, session), and the dispatcher moved onto that state as a
memoized slot instead of being a plain factory(session) call.

  • patches/linux/fix_computer_use_linux.nim matches the four-argument signature, and
    its dispatcher anchor now captures the whole init expression rather than just the
    factory name, so the teach-mode forward reuses upstream's own memoization whatever
    arguments that factory grows. A new assertion fails the build if the captured
    expression does not take the session parameter.
  • js/cu_handler_injection.js passes the state through on the computer_batch
    recursion.
  • The per-call compliance deny still has parity with upstream: the gate the handler
    now calls in its preamble resolves to the same function the patch captures into
    globalThis.__cdbCuHipaa. The Computer Use action surface is unchanged at 17
    actions, and upstream still ships no native Linux executor, so the patch remains
    load-bearing.

Nothing else moved against us. No PORTABLE gate appeared, no new Linux-blocking
gate, no reclassification: the 22 process.platform==="linux" sites are
content-identical, not merely count-identical. The one platform-gated new feature,
the coworkCopperHeron watch-record sub-mode, is inert on Linux, which ships neither
the recorder provider nor the window entry it loads. One change is Linux-favourable:
a local Claude Code session that fails for want of a sandbox now reports
sandbox_required_unavailable instead of a generic crash. The eIPC sender-origin
allowlist our Extra settings guard mirrors is unchanged, so that guard stays in sync.

Restarting from the Extra page no longer kills a running Cowork task

cdb-app:relaunch, the restart the Extra settings page performs to apply a titlebar-mode
switch, called app.relaunch() followed by app.exit(0). app.exit() emits neither
before-quit nor will-quit, so it skipped every one of the app's registered quit-cleanup
handlers. The Cowork VM was killed rather than stopped, MCP child processes were cut off
mid-flight, web storage was not flushed, and the main window's geometry was never persisted

  • which is worst precisely here, since the rows that ask the user to restart are the ones
    that change window chrome.

It now calls the app's own relaunch primitive, which sets the latch that clears the
before-quit interceptor, then quits so the full cleanup pass runs and the relaunch happens
at the end of it. The old path remains as a fallback, so if the anchor ever moves the button
degrades to the previous behaviour instead of doing nothing.

Computer Use on GNOME Wayland: the portal session can no longer be left running

Releasing the Computer Use lock while session-start was still waiting on the GNOME
RemoteDesktop consent dialog lost the update: session-end ran first, then the pending start
resolved and marked the session active again with no lock held, leaving the
gnome-portal-bridge daemon alive until the process exited. _gnomeSessionEnd now clears
the flag on entry and awaits any in-flight start before ending the session, and publishes
that teardown so a lock re-acquired mid-teardown queues its start behind it instead of
opening a second portal session and a second consent dialog. It also records whether a session is
wanted at all, so a release that arrives while a start is merely QUEUED behind a teardown
cancels it instead of bringing the portal up with no lock held, and it skips the teardown
when nothing was ever started. That is the whole of the shape the KDE path already used. The session transitions are now logged, so the ordering
is greppable in claude-patches.log rather than invisible, and
scripts/tests/linux/test-cu-gnome-session-lifecycle.mjs pins all three orderings
(it fails against the old code).

Baselines refreshed against v2.2553.x: PLATFORM_GATE_BASELINE.md,
CLAUDE_FEATURE_FLAGS.md, CLAUDE_BUILT_IN_MCP.md and ION.md. Feature flags grew
354 to 415, the static registry 73 to 89 and the async merger 13 to 17; the
Extra -> Deployment key catalog grew 143 to 171, including a ten-key self-hosted
family and four session-retention keys. ion-dist is structurally unchanged and both
of its patch sites still resolve by content signature.

Links

Don't miss a new claude-desktop-extra release

NewReleases is sending notifications on new releases.