CI / No em/en dashes (push) Successful in 3s
CI / Build & test (Node 24) (push) Successful in 10m50s
CI / Build & test (Node 22) (push) Successful in 11m2s
Release / Publish to Gitea npm registry (push) Successful in 10m56s
Desktop Release / Build Linux (AppImage + deb) (push) Successful in 13m21s
Desktop Release / Publish floating desktop-latest release (push) Successful in 11s
CI / Pack & boot smoke (Node 22) (push) Successful in 9m53s
Desktop Release / Build Windows (NSIS + portable) (push) Canceled after 0s
Cause racine de l'ecran noir apres mise a jour : l'etag faible de @fastify/static derive de taille+mtime, et npm pack fige le mtime de tout le tarball a une date constante (1985-10-26). Deux index.html de versions differentes mais de meme taille partageaient donc le meme etag : le client recevait un 304, gardait son index perime, et demandait des /assets/<hash> disparus ; le fallback SPA repondait index.html en text/html pour ces modules, le navigateur refusait le script, rien ne peignait. - fix(server): index.html et tous les fichiers non haches servis en no-store, validation conditionnelle desactivee (etag/lastModified) pour qu'un client bloque sur un index perime se repare seul ; /assets/ (noms haches) passent en immutable un an - feat(web): copier/coller dans le terminal xterm, dont la selection n'est pas une selection DOM : Ctrl+Maj+C / Ctrl+Maj+V, Cmd+C / Cmd+V sur macOS, Ctrl+Inser / Maj+Inser, plus interception de l'evenement DOM copy pour que le Copier natif fonctionne. Ctrl+C reste SIGINT - fix(web): script anti-FOUC sorti dans /theme-boot.js, la CSP script-src 'self' du daemon refusait de l'executer inline (le theme n'etait donc pose qu'au montage de la SPA) - feat(web): les worktrees d'un groupe se deplient sur leur arborescence de fichiers dans le panneau Groupes (meme composant et meme etat d'expansion que l'Explorateur), et un worktree ainsi deplie est desormais surveille en temps reel - fix: octet nul litteral remplace par \0 dans trois sources (stores/ide.ts, GitPanel.vue, vscode/repos-tree.ts) : git et grep les traitaient comme binaires, leurs diffs etaient illisibles en revue et la garde CI lint-dashes (git grep -I) les sautait en silence - test: cacheControlFor et clipboardIntent en tests purs, verify-clipboard.mjs (E2E Chromium CDP : copie, collage et SIGINT prouves par le presse-papier reel et par le systeme de fichiers), capture groups-dark-desktop ajoutee a verify-ui.mjs
70 lines
4.0 KiB
Markdown
70 lines
4.0 KiB
Markdown
# 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/<hash>` 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.
|