Skip to content

Claude Desktop 1.49585.0 (patch release 4)

Latest

Choose a tag to compare

@github-actions github-actions released this 09 Sep 18:19
· 2 commits to master since this release

Claude Desktop 1.49585.0 (patch release 4)

This release provides Claude Desktop version 1.49585.0 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/v1.49585.0-4/claude-desktop-extra-1.49585.0-4-x86_64.pkg.tar.zst
# ARM64
sudo pacman -U https://github.com/patrickjaja/claude-desktop-extra/releases/download/v1.49585.0-4/claude-desktop-extra-1.49585.0-4-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_1.49585.0-4_amd64.deb
# ARM64
sudo apt install ./claude-desktop-extra_1.49585.0-4_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-1.49585.0-4.x86_64.rpm
# ARM64
sudo dnf install ./claude-desktop-extra-1.49585.0-4.aarch64.rpm

NixOS / Nix

nix run github:patrickjaja/claude-desktop-extra

AppImage (Any Distro)

# x86_64
chmod +x Claude_Desktop-1.49585.0-x86_64.AppImage
./Claude_Desktop-1.49585.0-x86_64.AppImage
# ARM64
chmod +x Claude_Desktop-1.49585.0-aarch64.AppImage
./Claude_Desktop-1.49585.0-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) 507c94a2f896e32a7e45414f1a98849584b28e523e70521038494b1aa7242ec3
Arch pacman (aarch64) cebe48df03dacba8044ad8cc9201e5034d24ec9e522b49a7446c2e93e257172f
Tarball (x86_64) 0284da4210ed0a7bcc0496e68075684275b8c932ce4f559eed740e3b688d75ba
Tarball (aarch64) a3d511f9d04d8fafee5aca3e9d0a2e0e80fef212d51db07d097c4db7c0e64106
AppImage (x86_64) 285d5c7fcbec4d432e6dfac1a921bd947118a71979629e3c321d3dc2e2073421
AppImage (aarch64) dc25192eaf54d950eaa56047064bbe537404bc68ff4058306f821ef90e8db73a
Debian (amd64) 4593c821627648b40645f42ebb7612c86c99263a7598c1b2ac83f7f193ff3faa
Debian (arm64) 3dd8b8887b98772f9f1beb72114caaf144ba1fd25e112b3d029718d4aaaae1fd
RPM (x86_64) a48cbfc0732dde26eac151b575cbd5c5444d602f7a8135fcfa6b81be04150e49
RPM (aarch64) 06541a052ab04590014eea99ae7acf4772a92c5d526fe798cb172ad1e955cc6b

Changes since last release

From CHANGELOG.md, 2026-09-09:

Dynamic themes: greyscale wallpapers and the window frame

  • The thin frame around the app is root-caused, and there is now a mode that removes it. It is
    not an Electron regression as such: Chromium refuses to set _GTK_FRAME_EXTENTS on xfwm4 (a
    hardcoded carve-out guarding an xfwm4 bug that was fixed back in 2021) and on window managers that
    never advertise the hint (i3, Awesome), and then paints a 4 px resize band inside the window,
    colored from the GTK headerbar. Electron 43 inherited that path when it replaced its own frameless
    view with Chromium's (electron/electron#51161); the border is still present in 44.3.0 and in
    45.0.0-alpha.5, so waiting for a newer Electron does not help. Upstream: electron/electron#52024.
  • Two new switches in Settings -> Extra -> Community Features: Hide window controls and Native
    titlebar.
    Chromium only paints that band while the window controls overlay is on or the window has
    a shadow, so Hide window controls opens the main window frameless with no overlay and
    hasShadow: false, and the frame disappears completely. Dragging the window edges still resizes it -
    the band keeps its input region, it just is not painted - but there are no min/max/close buttons, so
    you close and minimize through your WM (Alt+F4 and friends). Native titlebar gives you the system
    window frame instead, which also avoids the band because the window is no longer frameless. Each is a
    persisted config key (noWindowControls, nativeTitlebar) that the launcher flags
    --no-window-controls and --native-titlebar still override per launch, and native wins over hiding
    the controls whichever surface each came from.
  • Neither switch can apply live: the window frame is fixed when the window is created, and Electron has
    no setFrame while setTitleBarOverlay(false) throws outright. So the Community panel grew its first
    restart affordance - a bar that appears only while a saved switch and the running window disagree,
    the same conditional shape the Deployment panel uses, rather than a notice that nags permanently.
  • The same patch stopped writing a window icon it never actually set: upstream passes its own icon
    later in the same options object and the last key wins, so the path we spliced in had been discarded
    from the day it was written. A new guard now fails the build if upstream ever adds its own frame,
    hasShadow, titleBarStyle, titleBarOverlay or autoHideMenuBar after our splice point, because
    that would silently drop the window mode with no error anywhere - which is exactly what the icon
    key had been doing unnoticed.
  • Without that mode, the frame can only be disguised, not removed: the matugen example derives the GTK
    headerbar color from the same ramp as Claude's backgrounds so the band blends into the window, which
    leaves a 1 px hairline (Chromium draws the band's outline in a contrasting shade of the fill, so an
    exact color match can never hide it). Maximizing the window also removes it, and --native-titlebar
    avoids it by using the system frame.
  • The mode script decides dark unless the wallpaper's mean luma exceeds 0.6 (was 0.55): a bright sky over
    dark ground reads as dark to people. The light background ramps of the overlay-bg and tinted templates
    sit at 97 to 86 percent lightness instead of 99 to 90, so a low-chroma wallpaper still tints them.
  • Overlay control in the theme UIs. A themeOverlay recolored the app while the Ctrl+Shift+T
    picker and Settings -> Extra -> Themes still showed the picked theme as plain "active", and the only
    way to turn it off was the config file. Both now carry an Overlay bar: with an overlay active it
    names it and offers Turn off, and the active card gets an overlay badge; with none active it lists
    your own themes (hidden generator templates included) in a select with Apply. Backed by three new
    picker IPC channels (cdb-themes:overlay, cdb-themes:overlays, cdb-themes:set-overlay) that
    forward to the theme engine and answer "not supported by this build" on an engine without it. New
    harness scripts/tests/community/test-picker-overlay.mjs; the Extra DOM suite covers the row.
  • Themes reach the new CDS token layer. claude.ai now styles the mode pills ("Chat and Cowork"
    / "Code"), chips, filled buttons and the sidebar row states from --cds-neutral-*, --cds-fill-*
    and --df-hover / --df-selected tokens the engine did not remap, so they stayed Anthropic gray
    and blue under any theme. The engine now maps the whole neutral ramp (per mode: upstream inverts
    it in dark, so neutral-0 is the page side and neutral-900 the text side in both modes), the
    accent / brand / pro / danger / success fills, texts, backgrounds, borders and on-colors, the
    warning text / background / border, and the frame's hover / selected rows onto the theme's tokens.
    Alphas, borders, tooltips and the segmented control derive from --cds-neutral-900 upstream and
    follow. The gray palette, the white switch knob and the yellow warning fill (it also paints text
    highlights) stay stock. Reference: baseline/THEME_TOKEN_MAP.md section 7; the theme-scope
    harness proves the pills track resolves to the theme in both modes.

Upstream bump to Claude Desktop v1.49585.0

The auto-release failed on a renamed file, not on a re-minify: the bundled Microsoft 365 MCP server
moved from resources/office365-mcp/office365-mcp.mjs to office365-mcp-stdio.mjs, so the patch
orchestrator could not find the target of fix_office365_mcp_open_url and stopped before applying
anything. The server is still forked through the MCP node host as a utilityProcess, so the
sign-in delegation to the main process keeps working unchanged; only the target path moved. One
further patch lost its anchor. Nothing was upstreamed and no patch was added or removed (47 patches).

  • Sensitive directories (fix_sensitive_dirs_linux): upstream rebuilt the protected-path list as
    a tiered {sub, family, tier} array and dropped its macOS and Windows entries from the bundle. The
    Linux keyring, NSS certificate and XDG autostart directories are now injected as full entries of that
    shape, anchored on the array opening rather than on the vanished Windows block.
  • Electron 42.10.0 -> 44.2.0. Two consequences for us:
    • Electron 44 made the main-process clipboard API return Promises. Upstream awaits every call now,
      and the Computer Use executor (js/cu_linux_executor.js) follows: the clipboard-paste path waits
      for the write to land before sending Ctrl+V, and read_clipboard / write_clipboard await their
      results instead of returning a pending promise or letting a rejection escape.
    • ANGLE is statically linked, so libEGL.so and libGLESv2.so no longer ship in the install tree.
      Nothing of ours referenced them; CLAUDE_GPU_BACKEND=angle-gl still works because it only passes
      the --use-angle switches. The main binary's linked libraries and glibc floor are unchanged, so
      no package dependency changed. The Nix package comment now names Electron 44 as the expected major.
  • Feature flags: the GrowthBook override template grows from 291 to 299 catalogued flags (8
    added, none of the templated ones removed). New upstream behaviour worth knowing: flag
    3634338308 is a server-side kill switch that latches local Cowork tasks off with an
    "organization's Cowork settings" message; it is catalogued as do-not-enable. Other new flags gate
    the ccd_window MCP tools, cloud memory sync for Cowork sessions, and a bare Alt tap opening the
    main menu. enable_local_agent_mode needed no change.
  • Deployment panel: the managed-settings key catalog is unchanged at 143 keys; the 3P directory
    resolver and mode decision still match upstream.
  • Built-in MCP: new backend server ccd_window (open session in split, close split, sidebar and
    layout tools) and a per-session memory relay server for first-party Cowork sessions. Neither is
    platform-gated. Nothing removed or renamed.
  • JS diff: new renderer service WindowLayout, Cowork space memory copy, remembered SSH passwords
    stored through safeStorage, lazily pooled Code worktrees, a Gerrit git-host provider, and a quit
    watchdog. The Cowork VM layer (virtiofsd, cowork-linux-helper, smol image) is rename-only; the
    Claude Code environment allowlist is unchanged. Agent SDK 0.3.260 -> 0.3.265.
  • ion-dist: the 3P setup SPA patch still hits its two sites (Linux org-plugins mount path);
    no new config keys in the SPA.
  • Platform gates: no new Linux-blocking gate, no new native module, no new binary to build for
    aarch64. Every darwin/win32 count went down (the removed sensitive-dirs blocks, a Windows Git Bash
    preflight, one macOS path helper). New capability keys coworkScheduledTaskRepoint and
    localSessionsWithoutGit are supported on Linux. The new remote-control folder serving excludes
    Windows only. A "web-origin mark" quarantine feature is compiled out of the Linux bundle by a
    build-time constant. New remembered-SSH-passwords store encrypts through safeStorage and refuses
    to save without a real keyring backend.
  • Anchors: the file-index worker search hook and the four utilityProcess fork sites are unchanged;
    the remote panel-tabs and quick-open anchors can only be confirmed at runtime.

Links