From dc8c7c9534f9ea294c7118391c6a4c91d484cbde Mon Sep 17 00:00:00 2001 From: Johan LEROY Date: Wed, 5 Aug 2026 10:57:05 +0200 Subject: [PATCH] =?UTF-8?q?release:=20git-arboretum=203.7.0=20(fin=20de=20?= =?UTF-8?q?l'=C3=A9cran=20noir,=20colonnes=20de=20terminaux,=20git=20scop?= =?UTF-8?q?=C3=A9),=20desktop=200.2.4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Le desktop 0.2.4 embarque le daemon 3.7.0 et livre aussi les garde-fous de démarrage déjà sur main (dialogue d'échec, reprise d'un daemon orphelin, redémarrage après mise à jour installée à chaud). --- package-lock.json | 2 +- packages/desktop/CHANGELOG.md | 6 +++++- packages/desktop/package-lock.json | 4 ++-- packages/desktop/package.json | 2 +- packages/server/CHANGELOG.md | 31 ++++++++++++++++++++++++++++++ packages/server/package.json | 2 +- 6 files changed, 41 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8bf8931..118ec28 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7933,7 +7933,7 @@ }, "packages/server": { "name": "@johanleroy/git-arboretum", - "version": "3.6.0", + "version": "3.7.0", "license": "MIT", "dependencies": { "@fastify/cookie": "^11.0.0", diff --git a/packages/desktop/CHANGELOG.md b/packages/desktop/CHANGELOG.md index 698cc71..8798c5b 100644 --- a/packages/desktop/CHANGELOG.md +++ b/packages/desktop/CHANGELOG.md @@ -4,7 +4,11 @@ Notable changes to the Arboretum desktop app (`packages/desktop`). The daemon an extension keep their own changelogs in `packages/server/CHANGELOG.md` and `packages/vscode/CHANGELOG.md`. -## Unreleased +## 0.2.4 + +Ships the daemon 3.7.0: terminals no longer go black, they can sit side by side in resizable columns, +and the Changes view follows the terminal you are working in. This release also carries the start-up +fixes below, which is what makes an update installed over a running app recover on its own. - **The app could refuse to start after an update, silently.** Installing a new version replaces the files on disk but leaves the running app alone: its daemon kept port 7317, so the version you just diff --git a/packages/desktop/package-lock.json b/packages/desktop/package-lock.json index 6caae4d..fea87ce 100644 --- a/packages/desktop/package-lock.json +++ b/packages/desktop/package-lock.json @@ -1,12 +1,12 @@ { "name": "@arboretum/desktop", - "version": "0.2.3", + "version": "0.2.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@arboretum/desktop", - "version": "0.2.3", + "version": "0.2.4", "license": "MIT", "devDependencies": { "@types/node": "^22.10.0", diff --git a/packages/desktop/package.json b/packages/desktop/package.json index 4958c3a..37b4d24 100644 --- a/packages/desktop/package.json +++ b/packages/desktop/package.json @@ -1,7 +1,7 @@ { "name": "@arboretum/desktop", "private": true, - "version": "0.2.3", + "version": "0.2.4", "description": "Self-hosted multi-project AI IDE for git worktrees and Claude Code sessions", "homepage": "https://git-arboretum.com", "repository": { diff --git a/packages/server/CHANGELOG.md b/packages/server/CHANGELOG.md index 769630f..7eca5e4 100644 --- a/packages/server/CHANGELOG.md +++ b/packages/server/CHANGELOG.md @@ -3,6 +3,37 @@ Notable changes to `@johanleroy/git-arboretum` (the Arboretum daemon). The VS Code extension keeps its own changelog in `packages/vscode/CHANGELOG.md`. +## 3.7.0 + +Terminals stop going black, and they now sit side by side. Files and commits follow the terminal you +are actually looking at. Fully additive, no protocol version bump. + +- **A terminal could stay completely black while its session was alive and running.** The attach + replay is a binary frame, but a client only learns its channel number from the `attached` message. + The server sent the replay *first*, so every client dropped it on an unknown channel: nothing was + painted, and a resting TUI (Claude at its prompt) never emits anything on its own. `attached` is now + sent before the replay, which fixes the web app, the desktop app and the VS Code extension at once. + A resize on attach used to hide the bug by triggering a repaint through SIGWINCH, which is why it + looked intermittent. +- **Screen-less attachments.** `attach` accepts an optional `screen` flag (default `true`). With + `screen: false`, a client that only wants to answer a dialog no longer takes control of the session, + no longer forces its own dimensions onto the PTY (which used to freeze the real terminal's geometry) + and no longer receives the output stream just to throw it away. +- **The reason a session died is now visible in the terminal**: a last line, `[arboretum] claude + exited with code 1`, is written to the stream before clients are detached. A process that died at + spawn time used to leave nothing but an empty screen. +- **A stale Claude CLI path is re-resolved.** The resolved binary was cached for the lifetime of the + daemon; after an nvm or asdf switch it pointed at a file that no longer existed, and the PTY died + without a single byte of output. +- **Terminal columns.** The dock holds up to three resizable columns, each with its own tabs. Alt+click + a session (tree, panels, attention list) or use the tab button to open it beside the current one. + Keystrokes always go to the focused column. The dock's height ceiling now follows the viewport + instead of a fixed 640 px, and opening the dock gives it a usable height. +- **Changes are scoped to the focused terminal.** The Changes view shows the worktree of the terminal + you are working in, or every repo of its group for a group session, with a one-click "show every + project" toggle. The Git index in the sidebar stays global on purpose: it is the way out of a narrow + scope. The activity-bar badge stays global too: it exists to surface work you are *not* looking at. + ## 3.6.0 Files open again, and uncommitted work gets a real surface: one block per project, in the centre of diff --git a/packages/server/package.json b/packages/server/package.json index e34c969..ea6e8b3 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,6 +1,6 @@ { "name": "@johanleroy/git-arboretum", - "version": "3.6.0", + "version": "3.7.0", "description": "Self-hosted multi-project AI IDE for git worktrees and the Claude Code sessions running on them", "license": "MIT", "type": "module",