# Changelog Notable changes to the Arboretum desktop app (`packages/desktop`). The daemon and the VS Code extension keep their own changelogs in `packages/server/CHANGELOG.md` and `packages/vscode/CHANGELOG.md`. ## 0.2.1 Ships the daemon 3.5.0, which fixes the black window seen after updating the app. - **Black window after an update, fixed.** The window loaded an `index.html` kept from the previous version (revalidated as `304` because the tarball mtime is constant, so the etag did not change) whose `/assets/` files no longer existed. Nothing painted. If you hit it before updating, the app repairs itself now; clearing `~/.config/Arboretum/Partitions/arboretum/Cache` was the manual fix. - **Copy & paste in session terminals.** `Ctrl+Shift+C` / `Ctrl+Shift+V` (`Cmd+C` / `Cmd+V` on macOS); the Edit menu's Copy also works on a terminal selection now. `Ctrl+C` still interrupts. - Browse the files of a group's worktrees straight from the Groups panel. The Electron shell itself is unchanged. ## 0.2.0 Distribution release: the Linux launcher icon finally shows up, Windows becomes a first-class target, and the embedded runtime loses a third of its weight. - **Launcher icon fixed (Linux).** Earlier packages installed a single 895×895 icon. That size is not declared in `hicolor/index.theme`, so by the freedesktop spec every desktop environment ignored it and the launcher fell back to a generic icon. The build now generates the standard set (16 → 512) plus a proper `.ico` for Windows, and forces `executableName: arboretum` (the scoped package name was producing `@arboretumdesktop` as binary, `.desktop` file and icon name). - **Package metadata.** A non-empty short description in `apt show` (`deb.synopsis` was missing), `Section: devel` instead of `default`, a single-line `Comment` in the desktop entry (it was multi-line, hence invalid), plus `GenericName` and `Keywords` for search. - **Windows.** Build scripts run on a Windows host again (`npm`/`npx` are `.cmd` shims that `execFileSync` cannot resolve; the Node extraction used `unzip` and `bash -c cp/rm`, none of which exist there). The daemon side gained what it needed to actually work: `where.exe` to find the Claude CLI, PowerShell as the launch shell, a `.cmd` askpass so HTTPS clone/push with a token works, and `taskkill /T` so stopping a terminal takes its whole process tree down. CI has a `windows-latest` job, enabled by the `ENABLE_WINDOWS_BUILD` repository variable, see `docs/CI_RUNNERS.md`. - **Auto-update repaired.** Shipped binaries point at a `desktop-latest` release that never existed, so no client could ever see an update. The release workflow now recreates that floating release on every version and attaches the `latest*.yml` files and installers to it, with `.blockmap`s for differential updates and `SHA256SUMS`. - **Smaller download.** The bundled Node runtime is pruned to the binary and its licence (no headers, no docs, no `npm`/`corepack`): ~205 MB → ~118 MB. Nothing at runtime used them, the daemon's dependencies being installed at build time. - **macOS integration.** An application menu (without it ⌘C / ⌘V / ⌘A were not bound anywhere in the app), `app.on('activate')` so the Dock icon brings back a hidden window, and a monochrome template tray icon that follows the menu-bar theme. - **PATH enrichment on Windows.** `%LOCALAPPDATA%\Programs` and `%APPDATA%\npm` are added to the daemon's PATH, where the Claude CLI and global npm binaries live (this was POSIX-only). ## 0.1.3 Ships the 3.3.0 daemon ("Start the project": launch commands and multi-terminal boot). ## 0.1.2 Ships the 3.2.0 daemon (Emerald visual overhaul, light and dark themes). ## 0.1.1 - Fixed the missing window/launcher logo under Debian and Wayland by pinning the runtime app id (`app.setName('Arboretum')`) to the `StartupWMClass` written in the desktop entry. ## 0.1.0 First desktop release: an Electron shell that runs the daemon as a child process and opens its UI already authenticated, with a bundled Node runtime, a tray icon, launch-at-login and auto-update.