From 63f2697745cca5bb5c84054a93c3870a942a6121 Mon Sep 17 00:00:00 2001 From: Johan LEROY Date: Tue, 4 Aug 2026 13:02:11 +0200 Subject: [PATCH] =?UTF-8?q?release:=20git-arboretum=203.4.0=20(visibilit?= =?UTF-8?q?=C3=A9=20temps=20r=C3=A9el,=20historisation),=20desktop=200.2.0?= =?UTF-8?q?=20(Windows,=20logo),=20vscode=200.4.1,=20site=200.4.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tout est additif : PROTOCOL_VERSION inchangé, aucune rupture d'API. Temps réel réellement armé - `pinSession` n'était appelé nulle part : une session vivante épingle désormais le watcher FS de son worktree (`WorktreeManager.syncSessionPin` + `resolveWorktreeForCwd`), donc un worktree où un agent écrit se rafraîchit même si personne ne le regarde (mesuré ~350 ms). - Les abonnements `watch` sortent de `GitPanel`, démonté dès qu'on quitte son onglet, ce qui coupait le seul abonnement de toute l'app : `composables/useWatchedWorktrees.ts` (monté dans App.vue) suit le worktree actif et les dépôts dépliés, borné à 40. - Une coupure WS ne laisse plus l'UI sur des listes périmées : rechargement complet au retour. - `worktree_changes` alimente `worktrees.changeVersion`, consommé par l'arbre de fichiers, le diff (son `:version` était câblé à 0) et l'éditeur, qui recharge un tampon propre ou lève la bannière de conflit avant la sauvegarde au lieu d'attendre le 409. Corrélation session ↔ worktree par contenance (`@arboretum/shared/path-match.ts`) - Un terminal lancé dans un sous-répertoire (« Démarrer le projet ») ou une session de groupe reliée par `--add-dir` apparaissent enfin sous leur worktree ; le worktree le plus spécifique gagne. - Règle unique partagée par le daemon, le web et l'extension. Historisation - `commitLog` / `commitDiff` purs, `GET /repos/:id/worktrees/log` et `diff?commit=` (hash strictement validé, mêmes bornes que les diffs de fichiers). - `CommitHistory.vue` sous le panneau Git : commits, marquage des non poussés, diff déplié sur place. Visibilité - Compteurs git complets sur chaque worktree de l'arbre et du panneau Groupes (ils n'existaient qu'en barre de statut, pour le seul worktree actif), avec upstream et dernier commit en infobulle ; `locked`, `prunable` et un dépôt invalide sont désormais visibles. - Le panneau Groupes montre sa composition réelle (dépôts, worktrees, sessions) et teinte l'explorateur. Polish visuel - Les toasts d'erreur, persistants, s'empilaient derrière les modals : téléportés au-dessus. - Sur mobile, ouvrir un terminal ou changer d'activité n'avait aucun effet visible. - Tailles de panneaux clampées sur la fenêtre, barres d'onglets sans scrollbar parasite, états de chargement et d'erreur dans les trois panneaux, accessibilité des 11 modals centralisée dans ModalHost, splitters au clavier, numéros de diff collants, `window.confirm` remplacé. Windows (daemon et packaging) - `where.exe`, PowerShell comme shell de lancement, askpass `.cmd` (clone/push HTTPS par PAT), `taskkill /T`, `%APPDATA%`, `arboretum install` via tâche planifiée. - Scripts de build exécutables sur un hôte Windows (`npm.cmd`, extraction sans `unzip` ni `bash`). - Job CI `windows-latest` conditionné par ENABLE_WINDOWS_BUILD ; procédure runner dans docs/CI_RUNNERS.md. Logo Debian : cause racine - Une icône unique de 895×895 atterrissait dans `hicolor/895x895`, répertoire absent d'`index.theme` donc ignoré par la spécification freedesktop ; et `executableName` dérivait du nom scopé du paquet (`@arboretumdesktop`). Jeu d'icônes standard généré + `executableName: arboretum`, plus `deb.synopsis` (description courte vide dans apt) et `Section: devel`. - Runtime Node embarqué élagué : 205 → 118 Mo. - Auto-update réparé : la release flottante `desktop-latest` que les binaires interrogent n'existait pas. Doc et vitrine - README/README.fr : installation par plateforme, mode serveur web (nginx, LAN), dépannage, variables d'environnement, flags manquants. - Doc in-app réécrite (elle renvoyait aux pages Worktrees et Sessions supprimées). - Section « Accès distant » dans les Réglages ; le 403 BAD_ORIGIN nomme le flag à ajouter. - Site : prérequis et registre npm privé (le `npx` affiché renvoyait un 404), téléchargements réels par plateforme, section « trois façons de l'utiliser », navigation complétée, 16 clés i18n mortes purgées. Vérifications : 483 tests unitaires, 14 acceptances E2E vertes (dont p14/p15 nouvelles), captures de rendu sans erreur console (nouveau `verify-ui.mjs`), .deb reconstruit et contrôlé (icônes aux tailles standard, entrée .desktop valide). --- .gitea/scripts/attach-release-assets.sh | 51 ++++ .gitea/workflows/ci.yml | 13 +- .gitea/workflows/desktop-release.yml | 171 +++++++++-- README.fr.md | 99 +++++- README.md | 99 +++++- brand/build-assets.py | 42 +++ docs/CI_RUNNERS.md | 134 +++++++++ package-lock.json | 6 +- package.json | 4 +- packages/desktop/CHANGELOG.md | 55 ++++ packages/desktop/README.md | 64 +++- packages/desktop/electron-builder.yml | 55 +++- packages/desktop/package-lock.json | 4 +- packages/desktop/package.json | 20 +- packages/desktop/resources/icon.ico | Bin 0 -> 48950 bytes packages/desktop/resources/icon.png | Bin 187905 -> 248005 bytes packages/desktop/resources/icons/128x128.png | Bin 0 -> 9927 bytes packages/desktop/resources/icons/16x16.png | Bin 0 -> 650 bytes packages/desktop/resources/icons/24x24.png | Bin 0 -> 1150 bytes packages/desktop/resources/icons/256x256.png | Bin 0 -> 28745 bytes packages/desktop/resources/icons/32x32.png | Bin 0 -> 1686 bytes packages/desktop/resources/icons/48x48.png | Bin 0 -> 2784 bytes packages/desktop/resources/icons/512x512.png | Bin 0 -> 83342 bytes packages/desktop/resources/icons/64x64.png | Bin 0 -> 3838 bytes packages/desktop/resources/trayTemplate.png | Bin 0 -> 433 bytes .../desktop/resources/trayTemplate@2x.png | Bin 0 -> 1076 bytes packages/desktop/scripts/fetch-node.mjs | 48 ++- packages/desktop/scripts/prepare-server.mjs | 6 +- packages/desktop/src/main/app-menu.ts | 82 +++++ packages/desktop/src/main/env.ts | 24 +- packages/desktop/src/main/main.ts | 6 + packages/desktop/src/main/paths.ts | 14 + packages/desktop/src/main/tray.ts | 12 +- packages/server/CHANGELOG.md | 38 +++ packages/server/package.json | 4 +- packages/server/scripts/acceptance-p14.mjs | 174 +++++++++++ packages/server/scripts/acceptance-p15.mjs | 117 ++++++++ packages/server/scripts/verify-ui.mjs | 232 ++++++++++++++ packages/server/src/app.ts | 7 +- packages/server/src/cli/install.ts | 59 +++- packages/server/src/config.ts | 17 +- packages/server/src/core/claude-launcher.ts | 80 +++-- packages/server/src/core/fs-watcher.ts | 35 ++- packages/server/src/core/git-auth.ts | 40 ++- packages/server/src/core/git.ts | 77 ++++- packages/server/src/core/pty-manager.ts | 18 +- packages/server/src/core/session-match.ts | 33 ++ packages/server/src/core/worktree-manager.ts | 112 ++++++- packages/server/src/routes/git.ts | 46 ++- packages/server/test/cli-install.test.ts | 33 +- packages/server/test/git.test.ts | 80 +++++ packages/server/test/session-match.test.ts | 79 +++++ packages/server/test/windows-support.test.ts | 94 ++++++ packages/shared/src/api.ts | 31 ++ packages/shared/src/index.ts | 1 + packages/shared/src/path-match.ts | 71 +++++ packages/shared/test/path-match.test.ts | 75 +++++ packages/site/index.html | 4 +- packages/site/package.json | 2 +- packages/site/public/sitemap.xml | 2 +- packages/site/src/App.vue | 2 + .../site/src/components/AccessSection.vue | 74 +++++ packages/site/src/components/AppFooter.vue | 6 +- packages/site/src/components/AppHeader.vue | 4 + .../site/src/components/DownloadSection.vue | 61 ++-- .../site/src/components/FeaturesSection.vue | 14 + .../site/src/components/HowItWorksSection.vue | 15 + .../site/src/components/WorkspaceShowcase.vue | 11 + packages/site/src/i18n/content.ts | 4 +- packages/site/src/i18n/en.ts | 57 ++-- packages/site/src/i18n/fr.ts | 57 ++-- packages/site/src/lib/links.ts | 24 ++ packages/site/src/lib/theme.ts | 6 +- packages/vscode/CHANGELOG.md | 6 + packages/vscode/README.md | 4 +- packages/vscode/media/icon.png | Bin 0 -> 10099 bytes packages/vscode/package.json | 30 +- packages/web/public/manifest.webmanifest | 81 ++++- packages/web/public/screenshot-ide-dark.png | Bin 0 -> 115366 bytes packages/web/public/screenshot-ide-light.png | Bin 0 -> 115401 bytes packages/web/src/App.vue | 3 + .../web/src/components/CommandPalette.vue | 2 +- .../web/src/components/ToastContainer.vue | 47 +-- .../web/src/components/ide/EditorArea.vue | 43 ++- .../web/src/components/ide/EditorTabs.vue | 2 +- packages/web/src/components/ide/GitPanel.vue | Bin 2902 -> 3278 bytes .../web/src/components/ide/GroupsPanel.vue | 114 ++++++- packages/web/src/components/ide/IdeShell.vue | 18 +- packages/web/src/components/ide/ModalHost.vue | 82 ++++- .../web/src/components/ide/PanelSplitter.vue | 55 +++- .../web/src/components/ide/PrimarySidebar.vue | 5 + .../web/src/components/ide/ProjectTree.vue | 32 +- .../src/components/ide/ProjectTreeNode.vue | 83 +++-- .../web/src/components/ide/SessionsPanel.vue | 13 +- .../src/components/ide/TerminalDockTabs.vue | 15 +- .../ide/modals/GroupCreateModal.vue | 4 +- .../components/ide/modals/GroupEditModal.vue | 4 +- .../ide/modals/LaunchProjectModal.vue | 6 +- .../settings/GitConnectionsSection.vue | 13 +- .../settings/RemoteAccessSection.vue | 96 ++++++ packages/web/src/components/ui/GiteaIcon.vue | 31 -- .../components/workspace/CommitHistory.vue | 143 +++++++++ .../src/components/workspace/CommitPanel.vue | 4 +- .../src/components/workspace/DiffViewer.vue | 28 +- .../web/src/components/workspace/FileTree.vue | 9 +- .../src/components/workspace/FileTreeNode.vue | 16 +- .../components/workspace/GitStatusBadge.vue | 43 ++- .../web/src/composables/useDebouncedRef.ts | 22 -- .../src/composables/useRealtimeBootstrap.ts | 27 +- .../src/composables/useWatchedWorktrees.ts | 77 +++++ packages/web/src/i18n/en.ts | 40 ++- packages/web/src/i18n/fr.ts | 40 ++- packages/web/src/lib/constants.ts | 7 - packages/web/src/lib/format.ts | 39 +++ packages/web/src/lib/git-api.ts | 14 + packages/web/src/lib/session-label.ts | 23 +- packages/web/src/lib/wt-key.ts | 2 - packages/web/src/stores/groups.ts | 13 +- packages/web/src/stores/ide.ts | Bin 10646 -> 12324 bytes packages/web/src/stores/sessions.ts | 12 +- packages/web/src/stores/worktrees.ts | 34 ++- packages/web/src/style.css | 21 ++ packages/web/src/views/HelpView.vue | 3 +- packages/web/src/views/SettingsView.vue | 56 +++- packages/web/src/views/help-content.ts | 284 ++++++++++++------ packages/web/test/watched-worktrees.test.ts | 134 +++++++++ packages/web/test/wt-key.test.ts | 24 -- 127 files changed, 4232 insertions(+), 577 deletions(-) create mode 100755 .gitea/scripts/attach-release-assets.sh create mode 100644 docs/CI_RUNNERS.md create mode 100644 packages/desktop/CHANGELOG.md create mode 100644 packages/desktop/resources/icon.ico create mode 100644 packages/desktop/resources/icons/128x128.png create mode 100644 packages/desktop/resources/icons/16x16.png create mode 100644 packages/desktop/resources/icons/24x24.png create mode 100644 packages/desktop/resources/icons/256x256.png create mode 100644 packages/desktop/resources/icons/32x32.png create mode 100644 packages/desktop/resources/icons/48x48.png create mode 100644 packages/desktop/resources/icons/512x512.png create mode 100644 packages/desktop/resources/icons/64x64.png create mode 100644 packages/desktop/resources/trayTemplate.png create mode 100644 packages/desktop/resources/trayTemplate@2x.png create mode 100644 packages/desktop/src/main/app-menu.ts create mode 100644 packages/server/scripts/acceptance-p14.mjs create mode 100644 packages/server/scripts/acceptance-p15.mjs create mode 100644 packages/server/scripts/verify-ui.mjs create mode 100644 packages/server/src/core/session-match.ts create mode 100644 packages/server/test/session-match.test.ts create mode 100644 packages/server/test/windows-support.test.ts create mode 100644 packages/shared/src/path-match.ts create mode 100644 packages/shared/test/path-match.test.ts create mode 100644 packages/site/src/components/AccessSection.vue create mode 100644 packages/vscode/media/icon.png create mode 100644 packages/web/public/screenshot-ide-dark.png create mode 100644 packages/web/public/screenshot-ide-light.png create mode 100644 packages/web/src/components/settings/RemoteAccessSection.vue delete mode 100644 packages/web/src/components/ui/GiteaIcon.vue create mode 100644 packages/web/src/components/workspace/CommitHistory.vue delete mode 100644 packages/web/src/composables/useDebouncedRef.ts create mode 100644 packages/web/src/composables/useWatchedWorktrees.ts create mode 100644 packages/web/src/lib/format.ts delete mode 100644 packages/web/src/lib/wt-key.ts create mode 100644 packages/web/test/watched-worktrees.test.ts delete mode 100644 packages/web/test/wt-key.test.ts diff --git a/.gitea/scripts/attach-release-assets.sh b/.gitea/scripts/attach-release-assets.sh new file mode 100755 index 0000000..6ed2561 --- /dev/null +++ b/.gitea/scripts/attach-release-assets.sh @@ -0,0 +1,51 @@ +#!/usr/bin/env bash +# Attache des fichiers à une release Gitea, de façon idempotente (re-run friendly). +# +# Usage : attach-release-assets.sh +# Env : RELEASE_TOKEN (token Gitea avec write:repository), GITHUB_SERVER_URL, GITHUB_REPOSITORY. +# +# Partagé par tous les jobs de release desktop (Linux, Windows, canal flottant) : la logique était +# dupliquée dans chaque job, et toute correction devait être faite trois fois. +set -uo pipefail + +tag="${1:?tag manquant}" +release_name="${2:?nom de release manquant}" +shift 2 + +if [ -z "${RELEASE_TOKEN:-}" ]; then + echo "::notice::RELEASE_TOKEN absent, aucun asset attaché (les artefacts du run restent disponibles)." + exit 0 +fi + +api="${GITHUB_SERVER_URL}/api/v1/repos/${GITHUB_REPOSITORY}" +auth="Authorization: token ${RELEASE_TOKEN}" + +release_id=$(curl -fsSL -H "$auth" "${api}/releases/tags/${tag}" \ + | node -p "JSON.parse(require('fs').readFileSync(0,'utf8')).id || ''" || true) + +if [ -z "$release_id" ]; then + release_id=$(curl -fsSL -X POST -H "$auth" -H 'Content-Type: application/json' \ + -d "{\"tag_name\":\"${tag}\",\"name\":\"${release_name}\"}" \ + "${api}/releases" | node -p "JSON.parse(require('fs').readFileSync(0,'utf8')).id || ''") +fi + +if [ -z "$release_id" ]; then + echo "::warning::impossible de résoudre ou créer la release ${tag}" + exit 0 +fi + +for f in "$@"; do + [ -f "$f" ] || continue + name=$(basename "$f") + # L'API Gitea refuse un asset de même nom : on supprime l'ancien pour que le dernier build gagne. + existing=$(curl -fsSL -H "$auth" "${api}/releases/${release_id}/assets" \ + | node -e "const a=JSON.parse(require('fs').readFileSync(0,'utf8'));const m=Array.isArray(a)?a.find(x=>x.name===process.argv[1]):null;process.stdout.write(m?String(m.id):'')" "$name" || true) + if [ -n "$existing" ]; then + echo "replacing existing $name (asset $existing)" + curl -fsSL -X DELETE -H "$auth" "${api}/releases/${release_id}/assets/${existing}" || true + fi + echo "attaching $name" + curl -fsSL -X POST -H "$auth" -F "attachment=@${f}" "${api}/releases/${release_id}/assets?name=${name}" +done + +echo "Assets attachés à la release ${tag}." diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 66dedbf..4f97ec4 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -29,6 +29,12 @@ jobs: - run: npm run build - run: npm run build:site - run: npx vitest run + # packages/desktop est HORS des workspaces (CI daemon allégée) : sans cette étape, son code + # n'était JAMAIS typechecké avant un tag de release. + - name: Typecheck desktop shell + run: | + npm --prefix packages/desktop ci + npm run typecheck:desktop pack-smoke: name: Pack & boot smoke (Node 22) @@ -86,15 +92,16 @@ jobs: lint-dashes: # Interdit tout tiret cadratin (U+2014) ou demi-cadratin (U+2013) dans les fichiers suivis. # Utiliser a la place : point median, deux-points, virgule, ou tiret simple pour les plages. - # Exclusions : logo binaire + captures brutes du terminal (fidelite des fixtures de dialogue). + # `-I` ignore les fichiers BINAIRES : une icone PNG/ICO peut contenir ces octets par hasard, ce + # qui faisait echouer la garde sans aucun texte fautif. Exclusion restante : les captures brutes + # du terminal (fichiers texte, fidelite des fixtures de dialogue). name: No em/en dashes runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Fail on U+2014 / U+2013 (outside allow-list) run: | - if git grep -nP '[\x{2014}\x{2013}]' -- . \ - ':(exclude)brand/arboretum-logo-source.png' \ + if git grep -nPI '[\x{2014}\x{2013}]' -- . \ ':(exclude)packages/server/test/fixtures/dialogs/*.raw'; then echo "::error::Tiret cadratin/demi-cadratin trouve. Utiliser point median, deux-points, virgule ou tiret simple (plages)." exit 1 diff --git a/.gitea/workflows/desktop-release.yml b/.gitea/workflows/desktop-release.yml index afe5fad..3907eec 100644 --- a/.gitea/workflows/desktop-release.yml +++ b/.gitea/workflows/desktop-release.yml @@ -1,12 +1,23 @@ -# Packaging de l'app de bureau Electron, déclenché UNIQUEMENT par un tag desktop-vX.Y.Z (séparé de -# la release du daemon qui écoute v*, et du VSIX qui écoute vscode-v*). Linux (AppImage + deb) est -# automatisé ici ; Windows et macOS se buildent sur ces OS (voir packages/desktop/README.md) et -# leurs artefacts sont attachés manuellement à la release. +# Packaging de l'app de bureau Electron, déclenché par un tag desktop-vX.Y.Z (séparé de la release du +# daemon qui écoute v*, et du VSIX qui écoute vscode-v*). +# +# Linux (AppImage + deb) : toujours automatisé. +# Windows (NSIS + portable) : job dédié, ACTIVÉ par la variable de dépôt ENABLE_WINDOWS_BUILD=true une +# fois qu'un runner labellisé `windows-latest` est enregistré sur le forge. Procédure complète dans +# docs/CI_RUNNERS.md. Tant que la variable est absente, le job est sauté et la release Linux part +# normalement ; le repli reste un build manuel attaché à la release. +# Le cross-build depuis Linux est IMPOSSIBLE : node-pty ne copie conpty.dll / OpenConsole.exe que si +# l'hôte de build est Windows, et son tarball ne contient que les prebuilds linux. +# macOS (dmg + zip) : non automatisé (aucun runner) ; build manuel documenté dans le README desktop. +# +# `workflow_dispatch` permet de tester les jobs sans créer de tag (le garde-fou tag == version est +# alors ignoré, puisqu'il n'y a pas de tag à comparer). name: Desktop Release on: push: tags: ['desktop-v*'] + workflow_dispatch: permissions: contents: write @@ -26,6 +37,7 @@ jobs: cache: npm # Garde-fou : le tag (sans "desktop-v") doit correspondre à la version du paquet desktop. - name: Verify tag matches desktop version + if: github.event_name == 'push' run: | pkg=$(node -p "require('./packages/desktop/package.json').version") tag="${GITHUB_REF_NAME#desktop-v}" @@ -41,6 +53,11 @@ jobs: # Build complet : shell + daemon empaqueté + Node standalone + AppImage/deb (electron-builder). - name: Build installers run: cd packages/desktop && npm run dist:linux + - name: Compute checksums + run: | + cd packages/desktop/release + sha256sum *.AppImage *.deb > SHA256SUMS-linux.txt + cat SHA256SUMS-linux.txt # Artefacts du run : canal fiable, indépendant de l'API release. - uses: actions/upload-artifact@v3 with: @@ -48,40 +65,134 @@ jobs: path: | packages/desktop/release/*.AppImage packages/desktop/release/*.deb + packages/desktop/release/*.blockmap packages/desktop/release/latest-linux.yml - # Best-effort : attache les installeurs (+ latest-linux.yml pour l'auto-update) à la release - # Gitea du tag (crée la release si absente). Réutilise NPM_TOKEN (même token Gitea) : ce token - # doit porter la portée write:repository en plus de write:package, sinon l'API release renvoie - # un 403 (l'attache est ignorée, les installeurs restent disponibles en artefact du run). - - name: Attach installers to Gitea release + packages/desktop/release/SHA256SUMS-linux.txt + # Best-effort : attache les installeurs (+ latest-linux.yml pour l'auto-update) à la release du + # tag. Réutilise NPM_TOKEN (même token Gitea) : il doit porter write:repository en plus de + # write:package, sinon l'API release renvoie 403 (les artefacts du run restent disponibles). + - name: Attach installers to the tag release + if: github.event_name == 'push' continue-on-error: true + env: + RELEASE_TOKEN: ${{ secrets.NPM_TOKEN }} + run: | + version=$(node -p "require('./packages/desktop/package.json').version") + bash .gitea/scripts/attach-release-assets.sh "${GITHUB_REF_NAME}" "Arboretum Desktop ${version}" \ + packages/desktop/release/*.AppImage \ + packages/desktop/release/*.deb \ + packages/desktop/release/*.blockmap \ + packages/desktop/release/latest-linux.yml \ + packages/desktop/release/SHA256SUMS-linux.txt + + windows: + name: Build Windows (NSIS + portable) + # Activé par la variable de dépôt ENABLE_WINDOWS_BUILD (voir docs/CI_RUNNERS.md). Sans runner + # Windows enregistré, un job non conditionné resterait en attente indéfiniment et bloquerait la + # release entière. + if: vars.ENABLE_WINDOWS_BUILD == 'true' + runs-on: windows-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + - name: Verify tag matches desktop version + if: github.event_name == 'push' + shell: bash + run: | + pkg=$(node -p "require('./packages/desktop/package.json').version") + tag="${GITHUB_REF_NAME#desktop-v}" + if [ "$pkg" != "$tag" ]; then + echo "ERREUR: tag '$tag' != version desktop '$pkg'" + exit 1 + fi + echo "OK: tag $tag == version $pkg" + - run: npm ci + - name: Install desktop deps + shell: bash + run: cd packages/desktop && npm ci + # `dist:win` sur hôte Windows : c'est le SEUL chemin qui produit un node-pty utilisable (ConPTY, + # conpty.dll + OpenConsole.exe copiés par le post-install de node-pty). + - name: Build installers + shell: bash + run: cd packages/desktop && npm run dist:win + - name: Compute checksums + shell: bash + run: | + cd packages/desktop/release + sha256sum *.exe > SHA256SUMS-windows.txt + cat SHA256SUMS-windows.txt + - uses: actions/upload-artifact@v3 + with: + name: desktop-windows + path: | + packages/desktop/release/*.exe + packages/desktop/release/*.blockmap + packages/desktop/release/latest.yml + packages/desktop/release/SHA256SUMS-windows.txt + - name: Attach installers to the tag release + if: github.event_name == 'push' + continue-on-error: true + shell: bash + env: + RELEASE_TOKEN: ${{ secrets.NPM_TOKEN }} + run: | + version=$(node -p "require('./packages/desktop/package.json').version") + bash .gitea/scripts/attach-release-assets.sh "${GITHUB_REF_NAME}" "Arboretum Desktop ${version}" \ + packages/desktop/release/*.exe \ + packages/desktop/release/*.blockmap \ + packages/desktop/release/latest.yml \ + packages/desktop/release/SHA256SUMS-windows.txt + + # Canal d'auto-update : electron-updater interroge une URL FIXE + # (.../releases/download/desktop-latest, cf. electron-builder.yml). Ce tag flottant doit donc exister + # et porter les latest*.yml de la dernière version, sinon l'updater reçoit un 404 · c'était le cas + # jusqu'en 0.1.3, où l'auto-update annoncé ne fonctionnait pour personne. + latest-channel: + name: Publish floating desktop-latest release + if: github.event_name == 'push' + runs-on: ubuntu-latest + needs: [linux] + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + - uses: actions/download-artifact@v3 + with: + name: desktop-linux + path: dl + # Les artefacts Windows n'existent que si le job correspondant a tourné : téléchargement toléré + # en échec pour ne jamais bloquer la publication du canal Linux. + - uses: actions/download-artifact@v3 + continue-on-error: true + with: + name: desktop-windows + path: dl + # On repart d'une release flottante VIERGE : sinon les assets de la version précédente y + # restent (mêmes noms de fichiers uniquement remplacés, un ancien numéro de version subsisterait). + # La recréation est faite par le script suivant, via l'API (Gitea crée le tag au besoin). + - name: Reset the floating release env: RELEASE_TOKEN: ${{ secrets.NPM_TOKEN }} run: | if [ -z "$RELEASE_TOKEN" ]; then - echo "::notice::NPM_TOKEN absent : installeurs disponibles en artefact uniquement." + echo "::notice::NPM_TOKEN absent, canal desktop-latest non publié." exit 0 fi api="${GITHUB_SERVER_URL}/api/v1/repos/${GITHUB_REPOSITORY}" auth="Authorization: token ${RELEASE_TOKEN}" - version=$(node -p "require('./packages/desktop/package.json').version") - rid=$(curl -fsSL -H "$auth" "${api}/releases/tags/${GITHUB_REF_NAME}" | node -p "JSON.parse(require('fs').readFileSync(0,'utf8')).id || ''" || true) - if [ -z "$rid" ]; then - rid=$(curl -fsSL -X POST -H "$auth" -H 'Content-Type: application/json' \ - -d "{\"tag_name\":\"${GITHUB_REF_NAME}\",\"name\":\"Arboretum Desktop ${version}\"}" \ - "${api}/releases" | node -p "JSON.parse(require('fs').readFileSync(0,'utf8')).id || ''") + old=$(curl -fsSL -H "$auth" "${api}/releases/tags/desktop-latest" | node -p "JSON.parse(require('fs').readFileSync(0,'utf8')).id || ''" || true) + if [ -n "$old" ]; then + echo "suppression de l'ancienne release flottante (id ${old})" + curl -fsSL -X DELETE -H "$auth" "${api}/releases/${old}" || true fi - for f in packages/desktop/release/*.AppImage packages/desktop/release/*.deb packages/desktop/release/latest-linux.yml; do - [ -f "$f" ] || continue - name=$(basename "$f") - # Re-run idempotent : supprimer un asset existant du même nom avant de ré-uploader, pour - # que le dernier build gagne (l'API Gitea refuse sinon un asset déjà présent). - existing=$(curl -fsSL -H "$auth" "${api}/releases/${rid}/assets" | node -e "const a=JSON.parse(require('fs').readFileSync(0,'utf8'));const m=Array.isArray(a)?a.find(x=>x.name===process.argv[1]):null;process.stdout.write(m?String(m.id):'')" "$name" || true) - if [ -n "$existing" ]; then - echo "replacing existing $name (asset $existing)" - curl -fsSL -X DELETE -H "$auth" "${api}/releases/${rid}/assets/${existing}" || true - fi - echo "attaching $name" - curl -fsSL -X POST -H "$auth" -F "attachment=@${f}" "${api}/releases/${rid}/assets?name=${name}" - done - echo "Installeurs Linux attachés à la release ${GITHUB_REF_NAME}." + curl -fsSL -X DELETE -H "$auth" "${api}/tags/desktop-latest" || true + - name: Attach installers to the floating release + env: + RELEASE_TOKEN: ${{ secrets.NPM_TOKEN }} + run: | + version=$(node -p "require('./packages/desktop/package.json').version") + bash .gitea/scripts/attach-release-assets.sh desktop-latest "Arboretum Desktop (latest, ${version})" \ + dl/*.AppImage dl/*.deb dl/*.exe dl/*.blockmap dl/latest-linux.yml dl/latest.yml dl/SHA256SUMS-*.txt diff --git a/README.fr.md b/README.fr.md index ea1ef56..fb9401e 100644 --- a/README.fr.md +++ b/README.fr.md @@ -129,6 +129,19 @@ Vous préférez une app native au daemon-dans-un-terminal ? Arboretum fournit un L'app de bureau n'est qu'une coquille autour du même daemon et de la même interface web : tout ce qui suit (espace de travail, git, sessions) fonctionne à l'identique. +### Installer selon la plateforme + +| Plateforme | Artefact | Notes | +|---|---|---| +| **Debian / Ubuntu** | `Arboretum--amd64.deb` | `sudo apt install ./Arboretum-*.deb`. Installe la dépendance `git`. À préférer à l'AppImage sous Debian : il pose l'entrée de lanceur et ses icônes. | +| **Autres Linux** | `Arboretum--x86_64.AppImage` | `chmod +x` puis lancer. Aucune entrée de menu sans un outil d'intégration comme `appimaged`. | +| **Windows** | `Arboretum--x64.exe` (NSIS) ou le build portable | Non signé : SmartScreen affiche « éditeur inconnu », choisissez **Informations complémentaires → Exécuter quand même**. Nécessite Windows 10 1809+ (ConPTY). | +| **macOS** | `Arboretum-.dmg` | Ni signé ni notarisé : clic droit sur l'app → **Ouvrir**, ou `xattr -dr com.apple.quarantine /Applications/Arboretum.app`. Buildé à la demande, voir `packages/desktop/README.md`. | + +Sous Windows aussi, le CLI `claude` doit être dans votre PATH ; si l'app ne le trouve pas, renseignez son +chemin dans **Réglages → CLI Claude**. Le lancement du daemon à l'ouverture de session y est également +géré (`arboretum install` enregistre une tâche planifiée). + ## Utiliser Arboretum 1. **Ajoutez un dépôt.** Depuis le dashboard, enregistrez un repo git local par son chemin. Configurez éventuellement des **hooks post-création** (ex. `npm ci`, `cp ../.env .env`) exécutés automatiquement à chaque création d'un nouveau worktree pour ce repo. @@ -164,10 +177,10 @@ Elle est distribuée en **VSIX privé**. Buildez-la et packagez-la depuis le mon ```bash npm run build:vscode -cd packages/vscode && npx @vscode/vsce package --no-dependencies # → git-arboretum-0.3.0.vsix +cd packages/vscode && npx @vscode/vsce package --no-dependencies # → git-arboretum-.vsix ``` -Puis installez-la via **Extensions : Installer à partir d'un VSIX…** (ou `code --install-extension git-arboretum-0.3.0.vsix`), lancez **Arboretum: Sign In** et collez un token. Détails complets dans [`packages/vscode/README.md`](packages/vscode/README.md). +Puis installez-la via **Extensions : Installer à partir d'un VSIX…** (ou `code --install-extension git-arboretum-.vsix`), lancez **Arboretum: Sign In** et collez un token. Détails complets dans [`packages/vscode/README.md`](packages/vscode/README.md). ## Accès distant depuis votre téléphone @@ -188,6 +201,47 @@ Ouvrez `https://..ts.net` depuis n'importe quel appareil de vo > ⚠️ Un terminal web, c'est de l'exécution de code à distance **par conception**. N'exposez jamais Arboretum directement sur l'internet public. +### Mode serveur web (réseau local, reverse proxy) + +Quel que soit le front que vous mettez devant, retenez la règle qui piège tout le monde en premier : **le +daemon rejette toute requête dont il ne connaît pas l'`Origin`**, avec un `403 BAD_ORIGIN`. L'adresse que +vous tapez dans le navigateur doit être passée en `--allow-origin` (répétable). Réglages → **Accès +distant** affiche l'origine courante, la liste autorisée, et la commande exacte pour en ajouter une. + +**Derrière un reverse proxy** (nginx, Caddy, Traefik), avec terminaison TLS sur votre domaine : + +```nginx +# nginx : l'upgrade WebSocket ET X-Forwarded-Proto sont nécessaires +location / { + proxy_pass http://127.0.0.1:7317; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-Proto $scheme; # rend le cookie de session Secure + proxy_read_timeout 3600s; # terminaux longue durée +} +``` + +```bash +npx @johanleroy/git-arboretum --allow-origin https://arboretum.exemple.com +``` + +C'est `X-Forwarded-Proto: https` qui indique à Arboretum de marquer son cookie de session `Secure` ; sans +cet en-tête, le cookie reste non-Secure derrière votre front HTTPS. Gardez un timeout de lecture large : +un WebSocket de terminal reste inactif de longs moments. + +**Sur le réseau local, sans proxy** (le moins recommandé : HTTP simple, pas de Web Push, pas d'install PWA) : + +```bash +npx @johanleroy/git-arboretum \ + --bind 0.0.0.0 --i-know-this-exposes-a-terminal \ + --allow-origin http://192.168.1.42:7317 +``` + +Le flag d'acquittement est obligatoire et n'est jamais ajouté pour vous : sortir de la boucle locale doit +être un acte délibéré. Restreignez l'accès au niveau réseau (pare-feu, VPN) et préférez Tailscale. + ## Le faire tourner en service d'arrière-plan Le plus rapide pour faire tourner Arboretum en service qui survit à la déconnexion et redémarre au boot, c'est l'installeur intégré. Installez une version figée globalement, puis lancez `install`. Il détecte votre OS, écrit le fichier de service, le démarre et affiche le token unique : @@ -197,7 +251,7 @@ npm i -g @johanleroy/git-arboretum arboretum install --allow-origin https://MACHINE.TAILNET.ts.net ``` -Cela met en place un **service systemd utilisateur** sous Linux (`~/.config/systemd/user/arboretum.service`) ou un **LaunchAgent launchd** sous macOS (`~/Library/LaunchAgents/fr.lidge.arboretum.plist`). Tous les flags du daemon (`--port`, `--allow-origin`, `--db`, …) sont propagés au service. Gérez-le avec : +Cela met en place un **service systemd utilisateur** sous Linux (`~/.config/systemd/user/arboretum.service`), un **LaunchAgent launchd** sous macOS (`~/Library/LaunchAgents/fr.lidge.arboretum.plist`), ou une **tâche planifiée** sous Windows (`Arboretum`, déclenchée à l'ouverture de session, enregistrée par `schtasks`). Toujours sous votre compte utilisateur, jamais en root ni SYSTEM. Tous les flags du daemon (`--port`, `--allow-origin`, `--db`, …) sont propagés au service. Gérez-le avec : ```bash arboretum status # état du service (+ où lire les logs) @@ -253,7 +307,9 @@ Les options du daemon sont des flags CLI : | `--allow-origin ` | aucun | Origine `Origin` autorisée supplémentaire (répétable). Nécessaire pour l'accès Tailscale/HTTPS. | | `--db ` | `/arboretum.db` | Chemin de la base SQLite. | | `--vapid-contact ` | `mailto:arboretum@localhost` | Sujet de contact VAPID pour le Web Push. | -| `--print-token` | `false` | Indication sur le réaffichage du token (les tokens sont hashés et ne peuvent pas être réaffichés). | +| `--print-token` | `false` | Affiche le jeton d'accès au démarrage (et le crée si la base n'en a aucun). | +| `--claude-home ` | `~/.claude` | Surcharge la racine d'installation de Claude (registre de sessions et transcripts). | +| `--no-discover` | `false` | Désactive la découverte auto des dépôts (scan au démarrage et re-scan périodique). | | `--i-know-this-exposes-a-terminal` | `false` | Reconnaître le bind sur une adresse non-loopback. **À éviter** : préférez Tailscale Serve. | `arboretum install` accepte tous les flags du daemon ci-dessus (propagés tels quels au service), plus : @@ -265,7 +321,18 @@ Les options du daemon sont des flags CLI : | `--dry-run` | Affiche le unit/plist et les commandes sans rien appliquer. | | `--no-enable` | Écrit le fichier de service sans l'activer/le démarrer. | -L'état (la base SQLite) vit dans `$XDG_DATA_HOME/arboretum` (par défaut `~/.local/share/arboretum`). +L'état (la base SQLite) vit dans `$XDG_DATA_HOME/arboretum`, avec pour défaut +`~/.local/share/arboretum` sous Linux et macOS, et `%APPDATA%\arboretum` sous Windows. + +Variables d'environnement : + +| Variable | Utilisée par | Description | +|---|---|---| +| `ARBORETUM_LOG` | daemon | Niveau de log (`fatal`, `error`, `warn`, `info`, `debug`, `trace`). Défaut `info`. | +| `ARBORETUM_SECRET_KEY` | daemon | Clé de 32 octets (base64 ou hex) chiffrant les identifiants git stockés. Générée et conservée en base si absente. | +| `ARBORETUM_EMIT_TOKEN_FD` | daemon | Écrit le jeton d'accès sur ce descripteur de fichier au démarrage. Utilisé par l'app de bureau pour s'auto-connecter ; pas destiné à un usage manuel. | +| `XDG_DATA_HOME` | daemon | Racine du répertoire de données (voir ci-dessus). | +| `ARBORETUM_SHELL` | daemon (Windows) | Shell utilisé pour les commandes de projet. Défaut `powershell.exe`. | Les réglages au-delà des flags CLI (les répertoires qu'Arboretum scanne pour trouver des repos et à quelle fréquence, le chemin et le home du binaire `claude`, et les fenêtres de rétention / purge des sessions) vivent dans les **Réglages** de l'UI. Ils sont diffusés via le WebSocket, donc chaque navigateur connecté reflète un changement en temps réel, sans rechargement. @@ -291,6 +358,19 @@ Tailscale Serve est **la** façon d'atteindre Arboretum depuis d'autres appareil Voir [`SECURITY.md`](SECURITY.md) pour le modèle de menace complet et [`docs/ENTERPRISE_DEPLOYMENT.md`](docs/ENTERPRISE_DEPLOYMENT.md) pour le durcissement en environnement réglementé. +## Dépannage + +| Symptôme | Cause & correction | +|---|---| +| `npm error 404 Not Found @johanleroy/git-arboretum` | Le paquet vit sur un registre privé. Déclarez le scope dans votre `~/.npmrc` : `@johanleroy:registry=https://git.lidge.fr/api/packages/johanleroy/npm/` | +| `403 BAD_ORIGIN` dans la console, interface blanche | L'adresse utilisée n'est pas dans la liste autorisée. Redémarrez avec `--allow-origin ` (schéma, hôte et port doivent correspondre). | +| `ERR_UNKNOWN_BUILTIN_MODULE node:sqlite` ou plantage au démarrage | Node est antérieur à 22.16. Vérifiez avec `node --version` : `node:sqlite` n'est stable qu'à partir de là. L'app de bureau embarque son runtime et n'est pas concernée. | +| « Claude Code CLI not found in PATH » | Le daemon tourne avec un PATH minimal (cas typique sous systemd/launchd). Renseignez le chemin du binaire dans **Réglages → CLI Claude**, ou réinstallez le service avec `arboretum install`, qui fige votre PATH interactif. | +| Impossible d'activer les notifications | Le Web Push exige HTTPS. Utilisez Tailscale Serve ou un reverse proxy ; sur iOS, installez d'abord la PWA. | +| Le lanceur affiche une icône générique (Linux) | Corrigé en desktop 0.2.0 : les paquets antérieurs installaient une taille d'icône non standard, ignorée par la spécification freedesktop. Mettez le `.deb` à jour ; si l'icône persiste, lancez `gtk-update-icon-cache -f /usr/share/icons/hicolor` ou reconnectez-vous. | +| SmartScreen ou Gatekeeper bloque l'app | Attendu : les binaires ne sont pas signés. Voir le tableau par plateforme plus haut. | +| Un terminal reste vide après « Démarrer le projet » | La commande a été tapée dans un shell de login qui n'a pas démarré. Regardez l'onglet : le shell survit volontairement à l'échec, l'erreur y est donc visible. | + ## Ce qui le distingue | | Arboretum | GitKraken Agent Mode / Conductor / Nimbalyst | Happy / CloudCLI | Anthropic Remote Control | @@ -334,8 +414,17 @@ node packages/server/scripts/acceptance-p9.mjs # commit/push avancé : staging node packages/server/scripts/acceptance-p10.mjs # archivage automatique des sessions node packages/server/scripts/acceptance-p11.mjs # synchronisation des réglages en temps réel node packages/server/scripts/acceptance-p12.mjs # services git distants + clone HTTPS +node packages/server/scripts/acceptance-p13.mjs # démarrer le projet : commandes de lancement, multi-terminaux +node packages/server/scripts/acceptance-p14.mjs # temps réel armé : watcher épinglé par session, corrélation cwd +node packages/server/scripts/acceptance-p15.mjs # historisation : log de commits & diff par commit ``` +Contrôle de rendu (Chromium headless via CDP, sans Playwright) : après `npm run build`, lancez +`node packages/server/scripts/copy-web.mjs` puis +`node packages/server/scripts/verify-ui.mjs [dossier]`. Le script démarre un daemon isolé, crée un dépôt +de démonstration et écrit des captures de l'IDE dans les deux thèmes, en largeurs desktop et mobile, en +échouant sur toute erreur console. + Le protocole s'est enrichi (de façon additive, sans bump de version) pour porter ces nouveautés : messages client `watch` / `unwatch` et signal ciblé `worktree_changes` (P7), plus les broadcasts `session_archived` (P10), `settings_update` (P11) et `clone_update` (P12). Côté serveur, le tout s'appuie sur `core/git.ts` (le moteur git pur), `core/fs-watcher.ts` (chokidar), `core/git-credentials.ts` + `core/clone-manager.ts` (identifiants chiffrés & clone), et les services d'archivage de sessions et de réglages. ## Soutenir le projet diff --git a/README.md b/README.md index 19bc22c..e834edb 100644 --- a/README.md +++ b/README.md @@ -129,6 +129,19 @@ Prefer a native app to the daemon-in-a-terminal? Arboretum ships an **Electron d The desktop app is just a shell around the same daemon and web UI, so everything below (workspace, git, sessions) works identically. +### Installing per platform + +| Platform | Artifact | Notes | +|---|---|---| +| **Debian / Ubuntu** | `Arboretum--amd64.deb` | `sudo apt install ./Arboretum-*.deb`. Pulls in `git`. Preferred over the AppImage on Debian: it installs the launcher entry and its icons. | +| **Other Linux** | `Arboretum--x86_64.AppImage` | `chmod +x` then run. No desktop entry unless you use a tool like `appimaged`. | +| **Windows** | `Arboretum--x64.exe` (NSIS) or the portable build | Not code-signed: SmartScreen shows "unknown publisher", choose **More info → Run anyway**. Needs Windows 10 1809+ (ConPTY). | +| **macOS** | `Arboretum-.dmg` | Not signed or notarized: right-click the app → **Open**, or `xattr -dr com.apple.quarantine /Applications/Arboretum.app`. Built on demand, see `packages/desktop/README.md`. | + +Windows also needs the `claude` CLI on your PATH like any other platform; if the app cannot find it, +set its path in **Settings → Claude CLI**. Running the daemon at logon is supported there too +(`arboretum install` registers a scheduled task). + ## Using Arboretum 1. **Add a repository.** From the dashboard, register a local git repo by its path. Optionally configure **post-create hooks** (e.g. `npm ci`, `cp ../.env .env`) that run automatically every time you create a new worktree for that repo. @@ -164,10 +177,10 @@ It is distributed as a **private VSIX**. Build and package it from the monorepo: ```bash npm run build:vscode -cd packages/vscode && npx @vscode/vsce package --no-dependencies # → git-arboretum-0.3.0.vsix +cd packages/vscode && npx @vscode/vsce package --no-dependencies # → git-arboretum-.vsix ``` -Then install it via **Extensions: Install from VSIX…** (or `code --install-extension git-arboretum-0.3.0.vsix`), run **Arboretum: Sign In** and paste a token. Full details in [`packages/vscode/README.md`](packages/vscode/README.md). +Then install it via **Extensions: Install from VSIX…** (or `code --install-extension git-arboretum-.vsix`), run **Arboretum: Sign In** and paste a token. Full details in [`packages/vscode/README.md`](packages/vscode/README.md). ## Remote access from your phone @@ -188,6 +201,47 @@ Open `https://..ts.net` from any device on your tailnet. **Web > ⚠️ A web terminal is remote code execution **by design**. Never expose Arboretum directly to the public internet. +### Web server mode (LAN, reverse proxy) + +Whatever front you put in place, remember the rule that trips everyone up first: **the daemon rejects any +request whose `Origin` it does not know**, with `403 BAD_ORIGIN`. The address you type in the browser must +be passed with `--allow-origin` (repeatable). Settings → **Remote access** shows the current origin, the +allowed list, and the exact command to add one. + +**Behind a reverse proxy** (nginx, Caddy, Traefik), terminating TLS on your own domain: + +```nginx +# nginx: the WebSocket upgrade and X-Forwarded-Proto are both required +location / { + proxy_pass http://127.0.0.1:7317; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-Proto $scheme; # makes the session cookie Secure + proxy_read_timeout 3600s; # long-lived terminals +} +``` + +```bash +npx @johanleroy/git-arboretum --allow-origin https://arboretum.example.com +``` + +`X-Forwarded-Proto: https` is what tells Arboretum to mark its session cookie `Secure`; without it the +cookie stays non-Secure behind your HTTPS front. Keep the proxy read timeout generous, a terminal +WebSocket is idle for long stretches. + +**On the LAN, without a proxy** (least recommended: plain HTTP, no Web Push, no PWA install): + +```bash +npx @johanleroy/git-arboretum \ + --bind 0.0.0.0 --i-know-this-exposes-a-terminal \ + --allow-origin http://192.168.1.42:7317 +``` + +The acknowledgement flag is mandatory and never added for you: binding beyond loopback must be a +deliberate act. Restrict access at the network level (firewall, VPN) and prefer Tailscale. + ## Running it as a background service The quickest way to run Arboretum as a service that survives logout and restarts on boot is the built-in installer. Install a pinned version globally, then run `install`. It detects your OS, writes the service file, starts it, and prints the one-time token: @@ -197,7 +251,7 @@ npm i -g @johanleroy/git-arboretum arboretum install --allow-origin https://MACHINE.TAILNET.ts.net ``` -This sets up a **systemd user service** on Linux (`~/.config/systemd/user/arboretum.service`) or a **launchd LaunchAgent** on macOS (`~/Library/LaunchAgents/fr.lidge.arboretum.plist`). Every daemon flag (`--port`, `--allow-origin`, `--db`, …) is propagated to the service. Manage it with: +This sets up a **systemd user service** on Linux (`~/.config/systemd/user/arboretum.service`), a **launchd LaunchAgent** on macOS (`~/Library/LaunchAgents/fr.lidge.arboretum.plist`), or a **scheduled task** on Windows (`Arboretum`, triggered at logon, registered with `schtasks`). Always as your user, never as root or SYSTEM. Every daemon flag (`--port`, `--allow-origin`, `--db`, …) is propagated to the service. Manage it with: ```bash arboretum status # service status (+ where to read logs) @@ -253,7 +307,9 @@ Daemon options are CLI flags: | `--allow-origin ` | none | Additional allowed `Origin` (repeatable). Needed for Tailscale/HTTPS access. | | `--db ` | `/arboretum.db` | SQLite database path. | | `--vapid-contact ` | `mailto:arboretum@localhost` | VAPID contact subject for Web Push. | -| `--print-token` | `false` | Hint about token re-printing (tokens are hashed and cannot be re-shown). | +| `--print-token` | `false` | Print the access token on start (bootstraps one if the database has none). | +| `--claude-home ` | `~/.claude` | Override the Claude install root (session registry and transcripts). | +| `--no-discover` | `false` | Disable repository auto-discovery (start-up scan and periodic re-scan). | | `--i-know-this-exposes-a-terminal` | `false` | Acknowledge binding to a non-loopback address. **Avoid**: prefer Tailscale Serve. | `arboretum install` accepts every daemon flag above (propagated verbatim to the service) plus: @@ -265,7 +321,18 @@ Daemon options are CLI flags: | `--dry-run` | Print the unit/plist and commands without applying anything. | | `--no-enable` | Write the service file but do not enable/start it. | -State (the SQLite database) lives in `$XDG_DATA_HOME/arboretum` (default `~/.local/share/arboretum`). +State (the SQLite database) lives in `$XDG_DATA_HOME/arboretum`, defaulting to +`~/.local/share/arboretum` on Linux and macOS and `%APPDATA%\arboretum` on Windows. + +Environment variables: + +| Variable | Used by | Description | +|---|---|---| +| `ARBORETUM_LOG` | daemon | Log level (`fatal`, `error`, `warn`, `info`, `debug`, `trace`). Default `info`. | +| `ARBORETUM_SECRET_KEY` | daemon | 32-byte key (base64 or hex) encrypting stored git credentials. Generated and stored in the database when absent. | +| `ARBORETUM_EMIT_TOKEN_FD` | daemon | Write the access token to this file descriptor at start-up. Used by the desktop app to sign itself in; not meant for manual use. | +| `XDG_DATA_HOME` | daemon | Root of the data directory (see above). | +| `ARBORETUM_SHELL` | daemon (Windows) | Shell used to run project commands. Default `powershell.exe`. | Settings beyond CLI flags (the directories Arboretum scans for repos and how often, the `claude` binary path and home, and the session retention / purge windows) live in **Settings** in the UI. They are broadcast over the WebSocket, so every connected browser reflects a change in real time, no reload needed. @@ -291,6 +358,19 @@ Tailscale Serve is **the** way to reach Arboretum from other devices, not just a See [`SECURITY.md`](SECURITY.md) for the full threat model and [`docs/ENTERPRISE_DEPLOYMENT.md`](docs/ENTERPRISE_DEPLOYMENT.md) for hardening in regulated environments. +## Troubleshooting + +| Symptom | Cause & fix | +|---|---| +| `npm error 404 Not Found @johanleroy/git-arboretum` | The package lives on a private registry. Add the scope to your `~/.npmrc`: `@johanleroy:registry=https://git.lidge.fr/api/packages/johanleroy/npm/` | +| `403 BAD_ORIGIN` in the browser console, blank UI | The address you are using is not in the allowed list. Restart with `--allow-origin ` (scheme, host and port must match). | +| `ERR_UNKNOWN_BUILTIN_MODULE node:sqlite` or a crash on start | Node is older than 22.16. Check with `node --version`; `node:sqlite` is only stable from there. The desktop app bundles its own runtime and is immune. | +| "Claude Code CLI not found in PATH" | The daemon runs with a minimal PATH (typical under systemd/launchd). Set the binary path in **Settings → Claude CLI**, or reinstall the service with `arboretum install`, which freezes your interactive PATH. | +| Notifications cannot be enabled | Web Push requires HTTPS. Use Tailscale Serve or a reverse proxy; on iOS, install the PWA first. | +| The app launcher shows a generic icon (Linux) | Fixed in desktop 0.2.0: earlier packages installed a single non-standard icon size that the freedesktop spec ignores. Upgrade the `.deb`; if the icon persists, run `gtk-update-icon-cache -f /usr/share/icons/hicolor` or log out and back in. | +| SmartScreen or Gatekeeper blocks the app | Expected: the binaries are not signed. See the per-platform table above. | +| A terminal stays blank after "Start project" | The command was typed into a login shell that failed to start. Check the tab: the shell survives the failure on purpose, so the error is visible in it. | + ## What makes it different | | Arboretum | GitKraken Agent Mode / Conductor / Nimbalyst | Happy / CloudCLI | Anthropic Remote Control | @@ -334,8 +414,17 @@ node packages/server/scripts/acceptance-p9.mjs # advanced commit/push: selecti node packages/server/scripts/acceptance-p10.mjs # automatic session archival node packages/server/scripts/acceptance-p11.mjs # real-time settings sync node packages/server/scripts/acceptance-p12.mjs # remote git services + HTTPS clone +node packages/server/scripts/acceptance-p13.mjs # start the project: launch commands & multi-terminal +node packages/server/scripts/acceptance-p14.mjs # armed real-time: session-pinned watcher, cwd correlation +node packages/server/scripts/acceptance-p15.mjs # history: commit log & per-commit diff ``` +Rendering check (headless Chromium over CDP, no Playwright): after `npm run build`, run +`node packages/server/scripts/copy-web.mjs` then +`node packages/server/scripts/verify-ui.mjs [outdir]`. It starts an isolated daemon, seeds a demo repo, +and writes screenshots of the IDE in both themes at desktop and mobile widths, failing on any console +error. + The protocol grew (additively, no version bump) to carry the new surface: client `watch` / `unwatch` messages and the targeted `worktree_changes` signal (P7), plus `session_archived` (P10), `settings_update` (P11) and `clone_update` (P12) broadcasts. Server-side, the work is backed by `core/git.ts` (the pure git engine), `core/fs-watcher.ts` (chokidar), `core/git-credentials.ts` + `core/clone-manager.ts` (encrypted credentials & clone), and the session-archive and settings services. ## Support diff --git a/brand/build-assets.py b/brand/build-assets.py index 9f8b4a0..9e623d1 100644 --- a/brand/build-assets.py +++ b/brand/build-assets.py @@ -16,9 +16,17 @@ Sorties : packages/web/public/icon-512.png icône PWA maskable (arbre, fond #09090b) packages/web/public/apple-touch-icon.png icône iOS 180 (arbre, fond #09090b) packages/web/public/favicon.ico favicon transparent (arbre, 16/32/48) + packages/web/public/screenshot-ide-{dark,light}.png captures du manifeste PWA (copiées de brand/) + packages/desktop/resources/icon.png source 1024 (electron-builder : macOS + dérivations) + packages/desktop/resources/icon.ico icône Windows multi-tailles (NSIS + fenêtre) + packages/desktop/resources/icons/NNxNN.png jeu Linux aux TAILLES STANDARD hicolor + packages/desktop/resources/trayTemplate.png (+@2x) icône de barre de menus macOS (monochrome) + packages/vscode/media/icon.png icône du VSIX (128, requise par tout marketplace) Usage : python3 brand/build-assets.py """ +import os +import shutil import sys import numpy as np from PIL import Image @@ -94,6 +102,40 @@ def main(): fav = square(tree, 0.04) fav.save("packages/web/public/favicon.ico", sizes=[(16, 16), (32, 32), (48, 48)]) print(" packages/web/public/favicon.ico 16/32/48") + # captures utilisées par le manifeste PWA (installation enrichie Chrome/Edge) + for theme in ("dark", "light"): + src = f"brand/screenshot-ide-{theme}.png" + if os.path.exists(src): + shutil.copyfile(src, f"packages/web/public/screenshot-ide-{theme}.png") + print(f" packages/web/public/screenshot-ide-{theme}.png (copié)") + + # --- app de bureau ------------------------------------------------------------------- + # electron-builder n'invente RIEN pour Linux : sans un dossier d'icônes aux tailles standard + # hicolor, il installe l'unique taille source (ex. 895x895), répertoire que la spécification + # freedesktop ignore → aucun logo au lanceur. D'où la génération explicite ci-dessous. + print("packages/desktop/resources/") + os.makedirs("packages/desktop/resources/icons", exist_ok=True) + desk = square(tree, 0.08) + save(desk, "packages/desktop/resources/icon.png", 1024) + for size in (16, 24, 32, 48, 64, 128, 256, 512): + save(desk, f"packages/desktop/resources/icons/{size}x{size}.png", size) + desk.resize((256, 256), Image.LANCZOS).save( + "packages/desktop/resources/icon.ico", sizes=[(16, 16), (24, 24), (32, 32), (48, 48), (64, 64), (128, 128), (256, 256)] + ) + print(" packages/desktop/resources/icon.ico 16→256") + # macOS : la barre de menus exige une image TEMPLATE (monochrome + alpha), sinon l'icône est + # illisible et ne suit pas le thème clair/sombre du système. + tpl = tree.copy() + tpl_alpha = tpl.getchannel("A") + template = Image.new("RGBA", tpl.size, (0, 0, 0, 0)) + template.putalpha(tpl_alpha) + save(template, "packages/desktop/resources/trayTemplate.png", 16) + save(template, "packages/desktop/resources/trayTemplate@2x.png", 32) + + # --- extension VS Code --------------------------------------------------------------- + print("packages/vscode/media/") + os.makedirs("packages/vscode/media", exist_ok=True) + save(square(tree, 0.10, bg=BG), "packages/vscode/media/icon.png", 128) if __name__ == "__main__": diff --git a/docs/CI_RUNNERS.md b/docs/CI_RUNNERS.md new file mode 100644 index 0000000..fd5e36f --- /dev/null +++ b/docs/CI_RUNNERS.md @@ -0,0 +1,134 @@ +# Runners Gitea Actions · ajouter Windows (et macOS) + +Ce document explique comment activer le build **Windows** de l'app de bureau dans la CI. Il est écrit +pour être appliqué tel quel sur `git.lidge.fr` (Gitea 1.25). + +## Pourquoi un runner Windows est obligatoire + +Le cross-build Windows depuis Linux **ne peut pas fonctionner**, pour deux raisons vérifiées dans +`node_modules/@homebridge/node-pty-prebuilt-multiarch` : + +1. `scripts/check-prebuild.js` sort en succès dès que le binaire de l'hôte existe, donc + `prebuild-install` n'est jamais appelé et aucun binaire `win32` n'est téléchargé (le tarball publié + ne contient que `prebuilds/linux-*`) ; +2. `scripts/post-install.js` ne copie `conpty.dll` et `OpenConsole.exe` **que si la plateforme de build + est win32**. Sans eux, pas de ConPTY, donc **aucun terminal** dans l'app. + +Un build produit sous Wine serait donc installable mais inutilisable. C'est pour cela que +`packages/desktop/README.md` ne propose plus cette voie. + +## État actuel + +| Plateforme | Runner | Build | +|---|---|---| +| Linux | `ubuntu-latest` (déjà en place) | automatique à chaque tag `desktop-v*` | +| Windows | **à enregistrer** | job `windows`, activé par la variable `ENABLE_WINDOWS_BUILD` | +| macOS | aucun | manuel (`npm run dist:mac` sur un Mac) | + +Le job Windows est conditionné par `if: vars.ENABLE_WINDOWS_BUILD == 'true'`. Tant que la variable +n'existe pas, le job est **sauté** : la release Linux part normalement. Sans cette condition, un job +`runs-on: windows-latest` sans runner disponible resterait en attente et bloquerait la release entière. + +## 1. Préparer la machine Windows + +Prérequis (Windows 10 1809+ ou Windows 11, x64) : + +- **Git pour Windows** (fournit aussi `bash`, utilisé par les étapes `shell: bash` du workflow) ; +- **Node.js 22.21.1** (même version que `NODE_VERSION` dans le workflow) ; +- rien d'autre : `node-pty` s'installe via des binaires précompilés, aucun compilateur C++ n'est requis. + +Vérification rapide dans PowerShell : + +```powershell +node --version # v22.21.1 +git --version +bash --version # fourni par Git for Windows +``` + +## 2. Enregistrer le runner + +Récupérer un jeton d'enregistrement dans Gitea : **Site Administration → Actions → Runners → Create new +runner** (jeton d'instance), ou au niveau du dépôt : **Settings → Actions → Runners**. + +Puis, dans PowerShell (répertoire dédié, par exemple `C:\actions-runner`) : + +```powershell +mkdir C:\actions-runner; cd C:\actions-runner +# Binaire act_runner pour Windows (adapter la version à celle de votre Gitea) +Invoke-WebRequest -Uri "https://gitea.com/gitea/act_runner/releases/download/v0.2.13/act_runner-0.2.13-windows-amd64.exe" -OutFile act_runner.exe + +.\act_runner.exe register --no-interactive ` + --instance https://git.lidge.fr ` + --token ` + --name windows-builder ` + --labels windows-latest:host +``` + +Le label **`windows-latest:host`** est essentiel : `:host` signifie « exécuter directement sur la +machine », sans conteneur (il n'y a pas d'image Docker Windows utilisable ici), et `windows-latest` est +le nom attendu par `runs-on` dans le workflow. + +Démarrage manuel pour un premier essai : + +```powershell +.\act_runner.exe daemon +``` + +## 3. Exécuter le runner en service + +Pour qu'il survive aux redémarrages, créer une tâche planifiée « à l'ouverture de session » (même +principe que `arboretum install` sur Windows) : + +```powershell +schtasks /Create /TN "GiteaActRunner" /TR "C:\actions-runner\act_runner.exe daemon" ` + /SC ONLOGON /RL LIMITED /F +schtasks /Run /TN "GiteaActRunner" +``` + +Alternative : [NSSM](https://nssm.cc/) pour un vrai service Windows, si le runner doit tourner sans +session ouverte. Attention : un service hors session n'a pas accès au profil utilisateur. + +## 4. Activer le job dans la CI + +Dans Gitea, sur le dépôt `johanleroy/arboretum` : **Settings → Actions → Variables → Add Variable** + +| Nom | Valeur | +|---|---| +| `ENABLE_WINDOWS_BUILD` | `true` | + +## 5. Vérifier sans créer de tag + +Le workflow accepte `workflow_dispatch` : **Actions → Desktop Release → Run workflow**. Dans ce mode, le +garde-fou « tag == version » est ignoré et rien n'est attaché à une release ; les installeurs sont +récupérables dans les artefacts du run (`desktop-windows`). + +Contrôles à faire sur l'installeur produit : + +1. l'installeur NSIS s'exécute et propose le répertoire d'installation ; +2. l'app démarre et affiche l'IDE **sans écran de connexion** (le token passe par le descripteur 3 ; + c'est le point le plus susceptible de différer sur Windows, cf. `packages/desktop/src/main/daemon.ts`) ; +3. un terminal s'ouvre et répond (ConPTY présent) ; +4. le CLI `claude` est trouvé (sinon renseigner son chemin dans Réglages → Claude CLI) ; +5. « Démarrer le projet » lance bien les commandes sous PowerShell. + +## 6. Signature de code + +Aucun binaire n'est signé. SmartScreen affichera « éditeur inconnu » au premier lancement : choisir +« Informations complémentaires » puis « Exécuter quand même ». Pour signer plus tard, ajouter les +secrets `CSC_LINK` (certificat .pfx encodé en base64) et `CSC_KEY_PASSWORD` au dépôt : electron-builder +les utilise automatiquement, sans changement de workflow. + +## Repli si aucun runner n'est possible + +Sur une machine Windows, avec le dépôt cloné : + +```powershell +npm ci +cd packages\desktop +npm ci +npm run dist:win +``` + +Puis attacher `packages\desktop\release\*.exe`, `latest.yml` et les `.blockmap` à la release +`desktop-vX.Y.Z` depuis l'interface Gitea. Le canal d'auto-update (`desktop-latest`) doit recevoir les +mêmes fichiers, sinon les utilisateurs Windows ne verront pas la mise à jour. diff --git a/package-lock.json b/package-lock.json index 7829dd5..3cc33a5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7933,7 +7933,7 @@ }, "packages/server": { "name": "@johanleroy/git-arboretum", - "version": "3.3.0", + "version": "3.4.0", "license": "MIT", "dependencies": { "@fastify/cookie": "^11.0.0", @@ -7967,7 +7967,7 @@ }, "packages/site": { "name": "@arboretum/site", - "version": "0.3.0", + "version": "0.4.0", "dependencies": { "vue": "^3.5.38", "vue-i18n": "^11.4.5" @@ -8063,7 +8063,7 @@ }, "packages/vscode": { "name": "git-arboretum", - "version": "0.4.0", + "version": "0.4.1", "license": "MIT", "devDependencies": { "@arboretum/shared": "0.1.0", diff --git a/package.json b/package.json index ed0ad45..b930d7a 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,9 @@ "dev:site": "npm run dev -w @arboretum/site", "preview:site": "npm run preview -w @arboretum/site", "build:vscode": "npm run build -w @arboretum/shared -w git-arboretum", - "dev:vscode": "npm run dev -w git-arboretum" + "dev:vscode": "npm run dev -w git-arboretum", + "typecheck:desktop": "npm --prefix packages/desktop run typecheck", + "build:desktop": "npm --prefix packages/desktop run build" }, "devDependencies": { "@types/node": "^22.10.0", diff --git a/packages/desktop/CHANGELOG.md b/packages/desktop/CHANGELOG.md new file mode 100644 index 0000000..9ee024c --- /dev/null +++ b/packages/desktop/CHANGELOG.md @@ -0,0 +1,55 @@ +# 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.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. diff --git a/packages/desktop/README.md b/packages/desktop/README.md index 1e6bcda..5e17f5c 100644 --- a/packages/desktop/README.md +++ b/packages/desktop/README.md @@ -15,7 +15,8 @@ not by the main `npm run build`. 2. The daemon mints a fresh token and writes `{token, url}` on file descriptor 3 (private stdio pipe). 3. The shell posts that token to `/api/v1/auth/login` from the window's session (server to server), which drops the `arb_session` cookie into the session jar, then loads the SPA on `127.0.0.1`. -4. On quit, the daemon child gets `SIGTERM` (then `SIGKILL` after a grace delay). +4. On quit, the daemon child is asked to stop (`SIGTERM` on POSIX, `taskkill /T` on Windows, which + Windows requires to take the whole process tree down rather than leaving PTY grandchildren behind). A standalone Node runtime (pinned, >= 22.16) is bundled instead of reusing Electron's Node, so `node:sqlite` works without a flag and the `node-pty` prebuild keeps the `node.` ABI prefix. @@ -56,24 +57,61 @@ Fully supported. `dist:linux` runs on a Linux host or the Gitea CI runner. ### Windows -Build on a Windows host (recommended): the `node-pty` win32 native binary and the installer -(`makensis`) are most reliable there. Cross-building from Linux via Wine is a best-effort fallback. -The app uses ConPTY (Windows 10 1809+). The installer is not code-signed yet, so SmartScreen shows +**Must be built on a Windows host.** Cross-building from Linux (including via Wine) does not work, and +the option has been removed from this document to stop people losing time on it: + +- `node-pty`'s `check-prebuild.js` exits successfully as soon as the *host* binary exists, so + `prebuild-install` never runs and no win32 binary is fetched (its published tarball only ships + `prebuilds/linux-*`); +- its `post-install.js` copies `conpty.dll` and `OpenConsole.exe` **only when the build platform is + win32**. Without them there is no ConPTY, hence no terminal at all. + +In CI this is a dedicated job on a `windows-latest` runner, enabled by the `ENABLE_WINDOWS_BUILD` +repository variable. Full procedure to register such a runner: [`docs/CI_RUNNERS.md`](../../docs/CI_RUNNERS.md). + +The app requires Windows 10 1809+ (ConPTY). The installer is not code-signed, so SmartScreen shows "unknown publisher": choose "More info" then "Run anyway". ### macOS (best-effort) -Build on a Mac (`dmg`/`zip` cannot be produced elsewhere). The app is **not** signed or notarized, -so Gatekeeper blocks the first launch: right-click the app then "Open", or run -`xattr -dr com.apple.quarantine /Applications/Arboretum.app`. +Build on a Mac (`dmg`/`zip` cannot be produced elsewhere); there is no macOS runner, so it is a manual +step. The app is **not** signed or notarized, so Gatekeeper blocks the first launch: right-click the app +then "Open", or run `xattr -dr com.apple.quarantine /Applications/Arboretum.app`. + +## What the shell adds beyond the window + +- **Tray icon** (`src/main/tray.ts`): open the window, toggle launch-at-login, quit. On macOS it uses a + monochrome *template* image so it follows the menu-bar theme. +- **Application menu** (`src/main/app-menu.ts`): required on macOS, where without it ⌘C / ⌘V / ⌘A are not + bound anywhere in the app. Closing the window hides it; `app.on('activate')` brings it back from the Dock. +- **Launch at login** (`src/main/autostart.ts`): a `.desktop` file under `~/.config/autostart` on Linux, + `app.setLoginItemSettings` on Windows/macOS. +- **Auto-update** (`src/main/updater.ts`): see below. +- **PATH enrichment** (`src/main/env.ts`): a GUI app starts with a minimal PATH. On POSIX we add + `/usr/local/bin`, `/opt/homebrew/bin`, `~/.local/bin`; on Windows `%LOCALAPPDATA%\Programs` and + `%APPDATA%\npm`, where the Claude CLI and global npm binaries actually live. ## Auto-update -electron-builder emits `latest*.yml` next to the artifacts; `electron-updater` (wired in a later -change) points at the Gitea release assets. Auto-update works for Windows (NSIS) and Linux -(AppImage); macOS updates are manual while the app is unsigned. +electron-builder emits `latest*.yml` next to the artifacts and `electron-updater` reads them from a +**floating `desktop-latest` release** on Gitea, which the release workflow recreates on every version +(that URL is baked into shipped binaries, so it must always exist). Auto-update covers Windows (NSIS) +and Linux (AppImage); macOS updates are manual while the app is unsigned. -## Icon +## Bundled Node runtime -`resources/icon.png` (square, >= 512px) is the single source; electron-builder derives every -platform icon from it. +`scripts/fetch-node.mjs` downloads a pinned Node (SHA256 verified) and **prunes it** to the binary and +its licence: headers, docs and `npm`/`corepack` are removed, since the daemon's dependencies are +installed at build time, never at runtime. That takes the embedded runtime from ~205 MB to ~118 MB. + +## Icons + +Generated by `python3 brand/build-assets.py` from the source logo, into `resources/`: + +- `icons/{16,24,32,48,64,128,256,512}x*.png` : the Linux set, at **standard hicolor sizes**. This is not + cosmetic: with a single non-standard size (the old 895×895), the directory is not declared in + `hicolor/index.theme` and the freedesktop spec makes desktops ignore it, so the launcher showed no + icon at all. +- `icon.png` (1024) : macOS source and generic fallback. +- `icon.ico` : Windows (NSIS installer and window). +- `trayTemplate.png` (+`@2x`) : monochrome macOS menu-bar icon. diff --git a/packages/desktop/electron-builder.yml b/packages/desktop/electron-builder.yml index 7d68fc2..367e368 100644 --- a/packages/desktop/electron-builder.yml +++ b/packages/desktop/electron-builder.yml @@ -21,27 +21,59 @@ extraResources: to: node - from: resources/icon.png to: icon.png + - from: resources/trayTemplate.png + to: trayTemplate.png + - from: resources/trayTemplate@2x.png + to: trayTemplate@2x.png -# Icône : electron-builder dérive toutes les tailles/formats par OS depuis resources/icon.png -# (buildResources), pas besoin de .ico/.icns séparés. +# Icônes : générées par `python3 brand/build-assets.py` depuis le logo source. +# - `resources/icons/` : jeu Linux aux TAILLES STANDARD hicolor (16→512). Indispensable : sans lui, +# electron-builder installe l'unique taille du PNG source (895x895), or `hicolor/index.theme` ne +# déclare pas ce répertoire, donc la spécification freedesktop l'ignore et AUCUN logo n'apparaît +# au lanceur (c'était le bug du .deb 0.1.x). +# - `resources/icon.png` (1024) : source macOS et dérivations. +# - `resources/icon.ico` : Windows (installeur NSIS + fenêtre). linux: target: [AppImage, deb] category: Development + icon: resources/icons + # `executableName` explicite : sinon electron-builder le dérive du `name` SCOPÉ du package + # (@arboretum/desktop → « @arboretumdesktop »), qui se retrouvait dans /usr/bin, le .desktop et son + # `Icon=` · un nom d'icône commençant par « @ » n'est pas résoluble. + executableName: arboretum artifactName: ${productName}-${version}-${arch}.${ext} + synopsis: Self-hosted multi-project AI IDE for git worktrees # Entrée .desktop (forme plate, mergée telle quelle par electron-builder 25). StartupWMClass DOIT # correspondre à l'app_id runtime (posé par app.setName('Arboretum') dans src/main/main.ts) pour # que GNOME/Wayland associe la fenêtre au lanceur et affiche le logo. Redondant avec le défaut # (productName) mais explicite et robuste à un futur changement de productName. desktop: StartupWMClass: Arboretum - # Note : le .deb installe l'icône et rafraîchit le cache (postinst electron-builder). L'AppImage, - # lui, n'installe aucun .desktop sans intégration (appimaged) : sur Debian, préférer le .deb. + GenericName: AI IDE for git worktrees + Keywords: git;worktree;claude;ide;terminal; + # Pas de `Comment` ici : electron-builder l'écrase systématiquement après la surcharge + # (LinuxTargetHelper : desktopMeta.Comment = deb.description || package.json description). C'est + # donc la description du package.json qui fait foi, et elle DOIT rester sur une seule ligne : un + # texte multi-lignes produirait une entrée .desktop invalide (lignes suivantes lues comme clés). + # Note : avec des tailles standard, GTK/KDE résolvent l'icône même sans cache d'icônes rafraîchi + # (le postinst d'electron-builder n'appelle pas gtk-update-icon-cache). L'AppImage, lui, n'installe + # aucun .desktop sans intégration (appimaged) : sur Debian, préférer le .deb. deb: # git est requis pour les operations de worktree ; claude n'est pas dans les depots (documente). depends: [git] # Mainteneur .deb explicite (electron-builder l'exige ; sinon derive de author.email du package.json). maintainer: Johan LEROY + # `synopsis` alimente la description COURTE du paquet : sans lui, `apt show` affichait une ligne + # vide (electron-builder concatène `synopsis || ''` puis la description longue). + # `synopsis` = description COURTE du paquet : sans elle, `apt show` affichait une ligne vide + # (electron-builder concatène `synopsis || ''` puis la description longue). La description longue + # reste celle du package.json, volontairement sur une seule ligne (cf. note sur Comment ci-dessus). + synopsis: Self-hosted multi-project AI IDE for git worktrees + # electron-builder nomme ce champ `packageCategory` (et non `section`) : il alimente le champ + # Section: du paquet, qui valait « default » jusqu'ici. + packageCategory: devel + priority: optional win: target: @@ -49,22 +81,33 @@ win: arch: [x64] - target: portable arch: [x64] + icon: resources/icon.ico + # Affiché par SmartScreen et dans les métadonnées de l'exécutable. Le binaire n'est PAS signé : + # SmartScreen montrera « éditeur inconnu » (documenté dans le README). + publisherName: Johan LEROY artifactName: ${productName}-${version}-${arch}.${ext} nsis: oneClick: false perMachine: false allowToChangeInstallationDirectory: true + shortcutName: Arboretum + uninstallDisplayName: Arboretum ${version} + createDesktopShortcut: true + license: ../../LICENSE mac: target: [dmg, zip] + icon: resources/icon.png category: public.app-category.developer-tools # macOS best-effort : non signe (documente : clic droit -> Ouvrir, ou xattr -dr com.apple.quarantine) identity: null hardenedRuntime: false -# Auto-update (electron-updater, cable en C5) : provider generic pointant sur les assets de release -# Gitea. Genere latest*.yml a cote des artefacts. +# Auto-update (electron-updater) : provider generic pointant sur un tag FLOTTANT `desktop-latest`, +# que la CI recrée à chaque release en y attachant les installeurs et les `latest*.yml`. Ce tag doit +# exister, sinon l'updater reçoit un 404 (c'était le cas jusqu'en 0.1.3) : voir +# .gitea/workflows/desktop-release.yml, étape « Publish floating desktop-latest release ». publish: provider: generic url: https://git.lidge.fr/johanleroy/arboretum/releases/download/desktop-latest diff --git a/packages/desktop/package-lock.json b/packages/desktop/package-lock.json index c074380..cb2361c 100644 --- a/packages/desktop/package-lock.json +++ b/packages/desktop/package-lock.json @@ -1,12 +1,12 @@ { "name": "@arboretum/desktop", - "version": "0.1.3", + "version": "0.2.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@arboretum/desktop", - "version": "0.1.3", + "version": "0.2.0", "license": "MIT", "devDependencies": { "@types/node": "^22.10.0", diff --git a/packages/desktop/package.json b/packages/desktop/package.json index 428381c..9a00064 100644 --- a/packages/desktop/package.json +++ b/packages/desktop/package.json @@ -1,9 +1,25 @@ { "name": "@arboretum/desktop", "private": true, - "version": "0.1.3", - "description": "Arboretum desktop app: Electron shell that runs the daemon and shows its web UI", + "version": "0.2.0", + "description": "Self-hosted multi-project AI IDE for git worktrees and Claude Code sessions", "homepage": "https://git-arboretum.com", + "repository": { + "type": "git", + "url": "git+https://git.lidge.fr/johanleroy/arboretum.git" + }, + "bugs": { + "url": "https://git.lidge.fr/johanleroy/arboretum/issues" + }, + "keywords": [ + "arboretum", + "git", + "worktree", + "claude", + "ide", + "electron", + "desktop" + ], "license": "MIT", "author": { "name": "Johan LEROY", diff --git a/packages/desktop/resources/icon.ico b/packages/desktop/resources/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..e248dc4e46624f9c1faa64c0e10e870e9955c8b7 GIT binary patch literal 48950 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 OEIzgQq4@tb68t|KRCQ4R literal 0 HcmV?d00001 diff --git a/packages/desktop/resources/icon.png b/packages/desktop/resources/icon.png index 442652ccc7fb660c448b80cf9fe26ec09d1a9d3b..1d2037eb98b7531a9ff02ce97840a5514d779679 100644 GIT binary patch literal 248005 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↡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

-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�JFdQd`LYFdfzFB(aD~f?WqndimeZ!qNZzX{=g30Ue64 zWH?0sALrD*Wvqujd=?x-ye|jMXQu_B~$4Z(ah>X-Dou(FJipBJyH% zxdUL)G;Zv}kd;df^g@HDtZEE?;iO?b@ql-wkKcVkl2JyrM7iXRG==}YyJ=T(@825>q`(v|8Smk3HnS`~UQolkTEr4d{g- zBPtLGY!|@+5C{ae2lB>$R{G7$PsDMDpDFWaKh`EAtrAg0WI?2ULSsPe1+60Xb>Idd z2E%}fKrPKs9W+!bMSAJ2U&IqW@j(zZ+$1U({|_S+v^>S-Lw(t+{_pqn#~V(=t#@4# zSE~KoUu{a30r0B}-t`%;V z0FZBo>P1o2LZ#BunG4FgcHMgU>rL;+o4)%Al%g7z!gN&P0uOm;nT33ap(~9n{=zqK z$6fC>qa%r#(^pbZOVwW!nf#60HzEeWu0sTgmrsdHNqtj8XO<4cL3@0xbi-*c1ubd9 zW$J`6Fc1hlAc6xR5C}YQQ~{#QeDB|%qlYazTNmtph_==>D$HeLTM*8W89-bx!^Jt6 zK!yO5iyo1i38$LrV863A{=W8`ddx@P3{`;$gO-KXZx2U~9MJoK+T~RLL3sYT!;iE}WMDtnZLwS)KfU6jg0wLxXmm zwKvb(^;~no+nx_10aM<@Bd~L!o?9UBkR><(0#i-zfcQXfTU*bTJ})p;3AcisLE*zKn5ki5Kfh}a8+r{? zW1ov0M6Mpr9PzFiEdx! zWCcPcv8DdlHrL&&-~Yu2@cb2@hiVD6gn?lEKa5d4<D#}CZM{^fZPe^Q4NcPe=x z^VO}rr}yO(7(x)S}CLMp+ zTlw&Vzk*{A+SmVD!f&P<_kCF5-lub4KxeVeSJ##yV-4TuWGDzYU2)2D%hBntcnd$} zF<+G#15K%ql}!XD762B??wcfaY5%SdJj2PnM^MBr#ajsfpS?4Wm!z!D|M$G_TUEW? zeRlRm5JW`5eL>V1LX0LRGistSW`Ss;7?&(68LpbBQDX=(`AMS2xMn6A6BYL$Y7`Y* zaYIy4kagC3d#S4Teb4WYs=l|m%nV>eV5XnXr*3ywFSn|?>(p7E^PEVE+Lnno-mnng z^oeK2-+$k~qUU9ZlrUEN-!HKK#ofd7t&QEMz3vtEvTI(^NE*3mcECEtxQYoNwwnH6 zq-vpCGHel*NF-D=DVJpQ2VU09I`fC8UC19l=9d64j1!?hTijXI{M%dL8nX$;xYICB z0F3c}#ogUFjg9Hg27+#`N)z|laEST0KlmS+NmkLjF_;iijU|OE$sLp>LuU(m+*sYe;d_+$hgwAzhTpSLHtY8ea{zeSoq=rAOA9E&E@DAyDn=Yh09>~G#xVrcBBIUHk9}qK3n#qVNhoF4%?)b>k$@73b)a8~ zyIBy6N`fLpjn!`*Lo9_DT_nrUZ+;(r*H<6K^FQ#3N?+ydobhqruW+?ID@WDt_*DCE z`=7r21uikxnAA%E@dkpcStHeLH3dLXw3>_}N|Zp9fEb+Z=HePnvRD4vf4li#d3dev zIree>@3_6k@aK7)$A0V>KU0ho0Au`La7QZhca++{^0V&@X2BS@7y2fL%*X8aPCTM@ z>9a41bB&oe*p1O(Bm|-_@lgmW1l78QyP~@a2BU&egQ%-%$VskKb6LFPyRQwGe*4dO z%6|+4|FOfnKSJiK?{)qoyUQ!Ce`xvo55LphxM)mgm1;M56;L%*3xHG<>7^>Qn(B9? z28j_Bk2D08+-lr~dC=hxv0pj+ZOnwzF``_wc_^{g0|WweBiQc<9Dw)mOt70RhAoK#@PR$aIW(5m&g2{KJhQ{Q{Q-&OOiy)L@80C z3@4*N-3~B3FDv#)m6}sDc$9!x6^R8hWgUP1@b~lgPxvK7B6|6FLdqS-ZTXjb^HFb4 z_5RMP@Q;%LWBk+@J4s{wG`KxM{2l#_eZ6K+ue-Ai>lj1m>zl|~W#?_bdR+DozxiKf zV`78P7ga+~kwP@)Xz&$FyQXYwy$pM~MIA~?R1>3X7IfBT@zY;_L-?1^zM8W?vYYtt zLxt-x_D@uyrfxR8>_4ybulvBC>fe8I-d=ItqFr@}V>bh06&#sp5LHCAR!P@dA7B`% zdT=GS>BW=_YTP2(Nr&FI^|2Sco`XA2sD#-z8#bRhma&JLjx%Zs_i&mS7>PEKC=z0|#9{Ccq7f6pAVk#=vsMi0WE#HkwSU%AU;S6S`I7CZ z+OgXI0RctkBX2r0VH-aw|LWs^%lp6lBEI><@7oOrH5kZ1D={mUO4B2!<**VaMgWg! zi4$XNw~Ry|Iq8VwoB#dCf0Mr8)E6Q1o|k{xvt?s?7wqTV61wzf1aeDbyw4=TfeC|d zvCLoW@$u-1i=KOd-fzQi`iabHujfUARpW`VAZo1S0Yng??pqP4tN&PoIzhXI=a4m) z>vl?f@1^h3^FR1P{`%uz<)Y0FMaGHH0{|j%I7WByu-Cs$FS+u0nio#88Ed>PZLpYV zs=QpC008PqsZwc25Q!8hC91~K%?oLF4o@F`;_I9L^PDFkFYcn7TX*4J-V<A)?Vi^Cv<0-WFFVE^!Z-mi#?J$0WZ4r&4cFdYdt09|#?Kl*+}uFsd$XTE z`@!V{k9uv{ntb?RXSZ)4K_f&(BWRRr-rtCL8&O6^yG1AqPqS&%CN6&ID_is-^DhCm zanWWsR{KA|aMlGS8;?&(-R|k(R@TV2oK-br%DoFvz_eyvoT9 zJM;MA%igTde%m>GeaGdT_uP!r<~`%g%Yg%tNc>BKs_8%MRp)c{PhR47?)J9XNi>GS zsA8gE>Q=gyah<9VqY|T5_EKD`3xl3^CXeUDgI?46-xoXqneTDMdD&gFgZm}+R5aRG zQR}vR+p%9e#$ARnMRJVW!oH|cdwQ&Ud4A<@PSf7j%U+(_+xi0!y4fM~ zgQ-h@>jC*86MyF?Cm)jU+PNrBI)t(+Qbno9TGj7~vJ^oGAVw+?z`_S@O}pqL@q1Uk zp9lTbAL8r|-t}b5Y4f$b`xpllwtlMs9I7#h{D=F_kGGk>dFpFr)x^nu_wJ}gE|Min zvA+y^sD&k}x&mIn5m8A*%3wph!JCI1(K2h=f6jl+*|6msZ{S%MU&p0qCY*9XdDrgr zU5Sd3gIN{hQx`%()KxQ%Z414)^^$+n7jAha)?CZW9@*gR^9Oh3?v8O6LFOaO z3wmKz$QiFnzJ5+y8V8?EtKA9R9o`z_1Vc2DrL$H?#&^al&o1ig>#u2*J9hNkT>DrK zYrM&Q^X#YjW6u6`B@8Ib$-M&`x8TN(V^S2th1xBR`ZNn2?&a` z{I;71vZ1v>L;P@h*`JKiPU5L7!ho%1^*&d@LvXv(P?x^(96I6pL*Q6zm4hwc`3|~XIqZ}Kt#l& zYPf3gd;Ozc@!;&L?LW$z(~vY&qgIOPxTWA3!EnTaM6DZGw2IXlP0`pd;{3bM*KIo_J30q%ZiE(Ms7(tb&p*oLk*3cc^Gc(%= z&BnL*=cgZi*Y4h3j-Mv@zdg$xdF|f()IIsNd-8Ml8%7$*S6*b{EA zvDuSxyS+jEz6|4SB>-%_?8~6u9)rEN{av|_2L^OYHH`g!hfTZb)(^wlnGIogKZ?f8 z#()VP6Tk$JI1Ku!D`5`ARila&G$@+eQYV{MKmE0L>u~!(ssrUr6toWd<<>9Ik<(E}pRqrOO}v|7%f^)X`DmW-s27`OKKyNZ z`u*31o3a5<-BWRbnNCrN^oU#R0BLSVbk4#4tHQjQtSK{*PDihR?kc*v+{j zTzs*=t9N&dyA|SPB0&<%j!%8=T>qb!zOvO>ZPm5PXcAN`QG|dHqo6?{gj#&JP6!Y{ zedW+t=g3Q8W)l0D6TZo-Hr=nXffqRr9KYtag5*0A$nWVj`|@S?R*>4;>uyicYvnq) z<^Jt$e-F%p))@Q5f#eL0ar>~RAb(Gl)&#lc1`wQfADqIPR?q+8;M>JMb#rwkXX$ruDHT5Fd+%|Zmzx?XUOnWjVO?$EQ zL=vJ}6pN~@ULTY?=0~FvVCA9BH$-T-ugF#~Fhy&-DxGQ<4Ee)}6g`nS8^ebKq5 z(M}?^3|?alLiC0h3>pmtsgm(AB3dsfX!XMs5mEI>r&L1Zr;^9 zdKcohg8F?u2e+?^ztXp@@2{_yl|Jq5X1ngKkac_f_A$n|1;!cxV+?V74aiD^voiZQ zdf)8%x%KsJlv?h41kr$p**d~hz4dmCj!D`+H|(^ex-|;d?P<4T%7@?)f*UHK@jjah|oE2A}@M z>-Aqg`Wm)gxuYI=bl@D*F@8EIpj&KTHvNSEe&*AS4gbJ#M?Dr>ENX9ehcu&-4$zts z8|yQ*W(7bUk$JF!kVxzeA`^&t*r5+jK7ZDyOOap3$O8JN1Uc&f5eAeM3;?~=Q$wg$ zO#w#Yfia$A^Jd4nj|MrdXno+f-lGpV>WO~Ms%Gr>q6uD%6Orhv789*)pQ(SU3W!vf zsVFFxC;=HTV0LZ8-*EMIed|Sk65sr#_W(uRgFVI=dxy+xtyi+xyZBpgXiO)A^p{R} zb>Xd#yB8EImRPkt4P6z{is2*mn80dv04$P5v>XJP%GT;*4|xY~+w=ksn!m6b@jKtU zYj^fe#omfJdwRUG$g{5?dqp8*{mA?Fup^eZqLQzo)6vJLSERPyyzLHWSbsyLD`smfbaDR zBsbzzpsafg?NSe7)oQIHmlq2-G}nMlm6?fD|M%N()Kky@Yqnl_Q#Dawv}=2eG4=u3 z6u9EK8BcuMcj86gd;wQp^C9CVI?`Fy(>$W;fP|4I>}m-tkDep|1td9=42%wT$CzqN z9&+R(XTI{M?`Soe>yficez>{8{&-%G!pKnie@UcnDH$NcDdY9yVH-O_^g{>r$o==c zz4T29uXwpfPV=*$eBS@Fk2v-zVZ&V0mwj)-qOn;Ju>mC1KeI|fZ8(0dmSY1os9Lm) z#J=r^*$oYU?N6=>U;OTK;$M91-$-o1W=vI{9oxY%_6bGil`R`BuzPUE`ETH3UpvPR za56Dv8AwU2SSZ9Q7L_4;M{A9g`eTp+TtL#o(%YWPRB~)``cbd5AA9N(k@+6iy|8^( z?&zI_eK9%r^`6o9?&&jXe|ELhzHD8+_mxjOSJ*xJv@3nvDR1#Bd|Xwz#cO9v3x!?b z&+cve_LjuBz56`I0g7<~V2qyzdonUBtNryd49dgE;;R6D7{m|nd+$&+#Au1p)QcT? zYze^;g1g1@AuPYX`uu(MSB>Jp{{8ED88Y9Sxa{nQa?*WX7bfQ(QTB=+5>l}ND1o>n z61L>FF7^Hoi5G(U;Au6DWSQlnE4J{6H~a;{b}riNknyO$G43FaIX~w|uW#~4ANYFm zw*P&xUiqUBVv?3j&6ZkdB-F)^IQ%WfS{MtK%})dh#CgPup*xTeV;)aB_=)x#&wqXT z+y@=c5%Yt(5_90#0=W&p??5?IFW;PU%30;wsO`CLz38vvBMv*On4a~%+xOy2C#eD@ zs-dpwEw|k+AEHWvQi$L^gfwSvt{HB){#)T2-+m!a{MUa+RVafU)BeY}15h??jcnOs zai-|~;y=EUD{h##yZT;cW)dx=KrNzD{q|ra89Mw30a1u0hzBDX+qyloX6m@~zDNDd z#6{100_$JjMK`A$n8D!Q*sPXQzA+ht$YuJCcqEs_D% z<2t)@oBr$_3HZkt;}#gV0E}@*E8%;~JPuJCrPY;zobghRlUjaFjE1NNZOd{qd5x8n ze~p!6KBSMU3L=V_SW|x$7O6$VgsHmHylXZ>65xj6Hm$6@?2T3>`*?0|>+X5b%?>#` zpZe+x?jJU+J}*qKePA)zxtNIQL}Ti&VR*e$q)r3K@as{j`dv+gJP&jxoDqY5?^hK<9LW%>KnGX^+9T^m|HJ697Dc*CB^Hc{ zOvUQ)E*q+z0W54A`msaPJo=f#=VavZ@HKn;UiS}wc8s42;{?Egi@jwEZ;LK}Tht?g zIRg=tx@zfmUyOhmehF@dQd z>=K353OB)?ec8SBP|1q>`Sk5u#=-5tl{z^0glekNBH2QQgJ4V%W5G?DUTDf5XGx(C5PEW<24I*Xsjc z^9#KDcRp`VJ>h9x6lFHKhNGu@leEfUiXAm#lw#}C*0@A=N5!6 z3q?D%ikeUpOWbl8pt5uYkzw3FyfpZrYEr>9tloITRr=Q#K8rVAd?|WihDgEwcKsOR z=ZkqF^P=dMW-gmv+Wf@xqkZrZXP1p+A{6~-tQas$IsikPxBS=CNvudM+S@92FXZm9 zsrBOXkMfz{e;^{?tdj^*XHM^lxINYHefh7WOtAX7x{y^_1Yt&{Vw%b>1xT6arx3|X_-g6D6Naf{! z_Qex2$N&0+XV-_=D{P=ujbjhB6QNbWFiZeMQ-8@d%~};gB;u6GX``RH@}uFgulhq& zuSbU7#u#J#3~%%8%`Pk)zt#v^_`u5G7&_X1*L^^=oYVa>1{r7;ZD zs$OjY#5rQnmLF`(?L&@vK+KYV=8IQ9n=5brH22i=`Zgd)bw0CfyoM*}aw1@bKHX3| zfFJBnv{J=cc<~b_ic^j}-#p}mrxtN>Uam_1N6eIFK3+7`uKCY=_8MwFMMfZ2#7I= z3?~2xqd#40{$8~@f+VQbtQ;(ObFazFwz)j~ z95I-|FcT}ve+Uk3S3!O=F(fvr`ktI6GYQtXYO(b=F1Ku0oxOGN??o}O8hYz}B-j9@ z5~9bNIss5dO6SR(XVCV9t|LZe$^>>nmBn4Hx6^QrR{vL0s@TiAyEk;RgL4DF^XM!+ zXyS+Q;B|9^Jesmh#X>Zp8fOJ8G1=;hf(TVbP^BuAMnwxLICM6R7hd{d{e!o^2$8Ef zSN3xn^%!>vM%X0bnwy@fFZ;mPn=d*2Pwnxmr}OJ?45pbl#8MH2YWJ%?dqsx7=}1JY z zv5GOPpKJYtmHK*aBUlTPx>%~phSk_#ZG0^(4jzPj;Opo`4mr)=)jRt$!oFCnqke4N zYhMTHRi(eKc?^U8kwR888ltf%29r55XNlGkjiY5Pss@tkzu94N%T??F69d6S992Qf zw-oUaNn$l`w2YJzNZSEZ1_q6Q*noDWwk?raV0%I4W6Q@$fCCKU1i*oZ zJ!ML7EBIeYjj98Gf6I}5Ay`69k84NMAIOFh=(r_6eP07Szl7yt`5SwD6!CE1T z#hB&b--xN@mLnlXj0U2KB%vUdfhe93A|@#?TH;N>rGkr<7niqu)$H2imf6!K!?`CG zz)GEfQKNXzHIP5t+`!Ba_^X@e%qyR8X*g)roGH7wq7)+$Zvw&CYUi|86*krAKSZj- zs9Lesf}*)8IAV1g|MSuh=y{)f3D+-vs~%l+&pbY3+%upEa#UUhft*W)ungA%(2(1(y6h_OPnB&$R={|DK1^zew?vId#3)!;K zvUMwL-4BTHQDskRQ5A0KCoZQ1l>Mj&K-jX;@U-^^if~{1g_ryjCmr_i&|8EuM;s`D z7=4u-8cr;gIt?I(Xf099(y`H9CCp9r1#RkwFTYCj-H+xkKD1-_@5UJ8PJ#;O8aDk$ zSabAI7ih;cbkHyViQ@gC9`DWn7&Ffm{fkBJ@^Jl>Y1ohlKKw@PA9 zD!)vX85MST_TbCzs{k|V%Z@%?d922M+yQ`b0$_}NWk^Twk36oc{Ld7{LN!s{}w|z8ASRm&?PEWWX5Q1IAe89xNcv^=bqmV@YScc zIbyz>z45nD$xWvVkV9M zdFh3E-lzVOi+^xAI`o?F=Eq`;do~1R<3`KYt$qL2&%Rkw*=BxEUuGY8^u5b%*XO3` zGE9QtfogX9tvp1nI*2NEKq3rOAxG}L=J4b_e|Ua*&el0LZGAhchDVFzV(zKcusW(= zY7D*|#_Co)fqObEx)Ee+08VcF?~C8)PdfC$!S^wX-Dnaq5(7cQGHpcaLZG2yiikr+ zP-}?>WcwhpW-794XH!4%osa1ccKjKC`d?Sq3DBB{J;oS!5@bHIWsALX)25tFSH5}b z-Op|(zk1?pebM)^-ℑ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¥ZkD||2^MaZMSnU$hwI!(o#u4 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 CyBHn- literal 187905 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

?3JyutSvIupko0dX^D6{3CKk_o~io(3& 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 literal 0 HcmV?d00001 diff --git a/packages/desktop/resources/icons/24x24.png b/packages/desktop/resources/icons/24x24.png new file mode 100644 index 0000000000000000000000000000000000000000..fb328837b33d495b78c0c1db25819bfd90ac7da7 GIT binary patch literal 1150 zcmV-^1cCdBP)L@m1qzD1ERoVu=m#21AzlNaAAD%>!-V)jg2Z@dgj%r1 z5A;Wr80rhBA`zk?kx0M-AxKE9K!~l_Qs~saOPS8hz4vTCrq#BLEkup$@0@+sI{WO` z0qy~2D5RO8kajPe{~63=hFG&KO8~&i559f6{KIc50l=~>VTM=(GyN+U0l@0e$^8`# zrw#%D=%470c)a5M!}Hf1IKH#0s%{z>BwP0^me=c^1cNH7>ZYx!Ke4Oyy~7K}awa0_ zW+}>q$*lRLF+HB8t^MJp=?{azPPSqvEyf`5l3D$G++m9~(47A??gXaoI?*V|H{GGY>Ory?|GJOFoOPCGgHUBn5-qUpt z#2<~8E01#&>A`Nj=Zzu=xj}(Q#OMnzTQK>g;-^Yr#T}!4jJ~5@1EUo?M zLBQ0aPi<>eQ5+XhZ8ZScS+8GGq#B{~89Q%#695PguhJbpF(NKXcJ7;n>T3Ot3oMHh zW%+E;oRmijPcJ^WVIcr43eN~bLU_8ZxnL$&QHKk46U^l4s+p}38HL@^b^uuN$>GO* zMRU%qDyo)72qyXUdU|&lN#^$CKEejETwe3RQmQDblIbAz90dxhPT@oZT z0AP(4*_k^&z6=02YjQ5)TJaO-A31-Zf|r)jJX~4 zt(}org)>8L$l?OO88V*$>lD+k_;vKQbx!M;yk;uM4AOIi$T!&xyGqFtngk^~Y>CS_2br;M&FjAm!r=5Zd%rtSTPCe|H36}!8r@*^5-qPJJCF|m$ z%-ndIeG~}TW9LpXBptEi#EIA_@aDS=$CquiISbxtbZs?^0eL@&c&Z;wPG%f^V63ap zk&KR5M*2d%cXylJ5*~o0=;Yk73U_nPD%F58g)N>eG=vAS_1)NAa{pWW0bM4?M$MCx Q^Z)<=07*qoM6N<$g3XT}djJ3c literal 0 HcmV?d00001 diff --git a/packages/desktop/resources/icons/256x256.png b/packages/desktop/resources/icons/256x256.png new file mode 100644 index 0000000000000000000000000000000000000000..f8a3286f1745dc614aac1c786b2beb0349aa5a91 GIT binary patch literal 28745 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

6DM~J2j6)OqePhpa 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 literal 0 HcmV?d00001 diff --git a/packages/desktop/resources/icons/32x32.png b/packages/desktop/resources/icons/32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..1d5562c979ea09961535e1a040be412273385f78 GIT binary patch literal 1686 zcmV;H25I?;P)f=DjgbZ)i6!4RGSV+aoRu-T1y>g-0gs)sDl+0Cdi1Ev2yn& zY0`H1fldKip##iFao4efRf*%&v>>z{LWI%;Nv9NTBMqBm(|qpkJ@>r+xV!0=Zkxn$ zba?*UJNKURzR!8yk8=+2QHISd!ZDWrZyx_6FcWNB_^(XiSWMou`^5(uo@xI{*tRWZ zCIEnK3*_Es05M|%L=4B#U?w31f6zBxYLMb^WXZ^q1gBGzg@fSiBB)P@1Y8R>hww&)4FFM5(&%E<*OdE z46F8=&3o54i1q=%yVtzg3#cg@8=Chn9A8xVf~s2b&hqqNq!UonF_<<4QGnt#HEei% zI9cgV{OQ(HRUk(LfJ}#qWTq?t08K>tuMO`lNLIRO>FPu4c3$p9ff?sQVdNytJ&)co zR}632Y>qb70suzaZp3iQEdYQ-(^X=q^{42#y}aPui{R1<_{n5}h{Lg%q@~X#i&OX| zr|3&yTR>?7{OT}-TxU&qPgDJ#fiTBpcCI;HLKY+tj>RMZtls^H4eR$FIk>(hUKj7~ zW(}rsBQpu649L+S2oU?3@3ET-s&Nfa9Nm1I9bdZcw}%hhv}@lt@@>vgfiM7|NDIpi znhQ>>qLpwQUDx@#fsbJVq)a1W*TLWf3{IH+Ez7`|gVPwR>)dI89Nl}1_`Dl3tE4cC z@@-xq^2HShBOW1d@w1OtzPomCgY?vKZ@$wG4ojd$7A4KQl%z_n0a8fl$-r(b97%&5 zEeF~fJffvn?hiiqkI21e^6kxtz!aDXL`(o=fAm2`ydM=kZvtU}BAz+Yx?O8wd6#Xv zA8ZStmdyUY*LcFbO;@D0g8asHsXREZ4=^)DqfvUfYQ-I565h&a^w$TtLms4hMJ(D4 zp|4jI??UelMF2ck>)$}QCII00JQLNCH2PcXgv$I`lcSe+?lfPIM!lOKf8ndz5~Vks z>U=sHjWXpC%Fh83Lhvia3rdSi%YH9rig@ZCi+ew#G$= zWB0Dz@%wA@eH07H+NyUtpVhjDBJv^Ik>f!N&gT<)P=OtB;^vg)a8~xw7ce5%<8#1k}2fp z9D!`M*0nvgI5;=7=)m3K{pNVva-N`@mB~9%mO2XnI2$OFZsrG)^z#|h41vhB*f`^5 z^qrooe}>C5gMN65OD$F#wPC!h$~GNd^+bGiDlyu3 zs`Rdz^SM{9co1XbFa7cM`Y$sxa+NTZ15tn-0O_&hvxZV{UGb|^KmS)_(@4@cMIiX4 z!yN{wenP!(|4ooy3MoCMGjCzOGm`zMFg3>+)4-$iVmpF59fV3{-Uh(=3!fs8WAvBr zd}SYieN$lpVahoGAi-b|J`g6DU3f}ED+3Gy66eMd{BdCP5RLT!TR!XyD6kjU%p%Mz z0r+t`&-ppy5&&e@gft4LGl6rl4l~Q#sVN^9oQRwcmB~es(JoBGfP|K;T@M9_<{?fO z?gLr+vqd+9ZG(!f&tQ0T2=9*$QNUV)-usGx?*Hatv;f#|K4zk2qcO5=6##*nil8yE z^?D-_y(fRnOfgFZ90mX;S)>v}Z<6f@c;k- literal 0 HcmV?d00001 diff --git a/packages/desktop/resources/icons/48x48.png b/packages/desktop/resources/icons/48x48.png new file mode 100644 index 0000000000000000000000000000000000000000..e73576fd813417333a703d79b033dc554622a8e9 GIT binary patch literal 2784 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 ^Giu-r2n+*(fmp*D#p>$93?H=D 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 literal 0 HcmV?d00001 diff --git a/packages/desktop/resources/icons/64x64.png b/packages/desktop/resources/icons/64x64.png new file mode 100644 index 0000000000000000000000000000000000000000..c282449599afb2d49c3a41bc2acf687bf6fa8d87 GIT binary patch literal 3838 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 AO8@`> literal 0 HcmV?d00001 diff --git a/packages/desktop/resources/trayTemplate.png b/packages/desktop/resources/trayTemplate.png new file mode 100644 index 0000000000000000000000000000000000000000..a889a893a8e573836fc9fbe7cc91d6165fca373f GIT binary patch literal 433 zcmV;i0Z#sjP)V!i>O_#6Diz85V){EM8SWdMK0X8Ndgx} zMB+|dr64y6q}#`B@t(oAn>sKsbLM%@Jm)zx96p}o#bJQTKCv@sppJf2Q9?J`@b#c% z<(O|V8?no{66;wk7H~x7)-i}-yu(ps_=Yijz-lWYi$u5aDq=@4j`O&HTj-3lm$)CC zERmZ*8bKd^;3sb2I{si6XE7Sen#BsL1vQV+75fQH2Cx%P>>1yY$S1Lk2L%uAMY2nB zBQxBwXXst5;BX8s_mC>k+TTZB6;(Sqf$S7{XJmlyEboFNFK4D-}G8{hYij>8ve0+pOSyp^O9& z(tkxPi&$!118)*28C3*8Pb6r@y7hu`A@M&W-S`LtIF5%w`0wfO_Zw6FTeygJ`OnPo byA}Kwf@nkQB?0cc00000NkvXXu0mjf-sZw* literal 0 HcmV?d00001 diff --git a/packages/desktop/resources/trayTemplate@2x.png b/packages/desktop/resources/trayTemplate@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4e9e6fcce53a39d498c4309e62ff1500548a79ea GIT binary patch literal 1076 zcmV-41k3x0P)pPrUoHAw1%i5P0Xs2(x}-3!b2k^Ma1x+^&o^0;z12jQX-M? z(6kSxgoqSPcpyQQ7$Sxcv{G8`bdHB_t?qsHJ-7GVTfXFEudMy8Z~TA%y$%zX8s=jG zdiKChS5i+7m7WXn1-`+hm3OtunNg+DWdP06x`q}G#sSIEA(eOe_n*jQoPl|jAbRmA z)?jb#+0Mo3NoT^64c>qs@sa2`OiIs-a7AVB#H9NZZmHNBA-iiqE@z*}I8GM^Wy}aaCG3 zuoBD1W3WET{{A>w0j_#-@Em4fPDwXs*N21fl;DLthP?t82aXj$HZ&8@VmE6P+N)WfF^;e?Yb1)V6SM)BxQhbQbc+WTiISG#lpyjNxgA4I4 z-d9j@eqT#_t2<>qn)HfNNd|gK(LRmC6yVBJa3gLj1)Ib2{oRzD=b+$XEXGaPRz8#i z$N=fVpDBZtxI0y+CmCBTsJLb12)FPX7GZ1Y%#ngoSBMrj1SX)BL715B!$$73y+l6H+?!?PDOO*az+^VyjjTZ#1F2$8%ik?@1 zv?|N-plIKzcoC~GJzp%}NLhV`SMYgKYG`Myy1>h^xJEEsU3{w7;{yS->J@GXmn2_{ z#F+krB@IERYXtp1AgDJx8`3VrqPL&m5A2%)+>xB;0IO0LbiOVnyGl&K=7#9?O6-Nd z6|+Cw!4L%r<$!WO8yy1fbY`QV@j*266tt4_ydKSY*&ywc(Cnl*%9;MWSubsld514a z`J3M=?R6u0glpwPxk2wu}2==7#@8a<-?5 zsUbembJM%kI7b2Eu8odIw build/node/ -execFileSync('bash', ['-c', `cp -R "${join(BUILD, name)}/." "${NODE_DIR}/" && rm -rf "${join(BUILD, name)}" "${archive}"`], { stdio: 'inherit' }); +// `tar` de Windows 10+ (bsdtar) lit aussi les .zip : une seule commande pour les trois plateformes, +// là où `unzip` n'existe pas sur un Windows standard. +execFileSync('tar', [ext === 'zip' ? '-xf' : '-xJf', archive, '-C', BUILD], { stdio: 'inherit' }); -console.log(`fetch-node: Node ${NODE_VERSION} (${OS}-${arch}) -> build/node`); +// Aplatir node-vX-os-arch/ -> build/node/ avec l'API Node (l'ancien `bash -c 'cp -R … && rm -rf …'` +// rendait ce script inexécutable sur Windows, où il n'y a ni bash, ni cp, ni rm). +const extracted = join(BUILD, name); +cpSync(extracted, NODE_DIR, { recursive: true }); +rmSync(extracted, { recursive: true, force: true }); +rmSync(archive, { force: true }); + +// --- élagage --------------------------------------------------------------------------------- +// On n'embarque QUE de quoi exécuter le daemon. La distribution complète pèse ~205 Mo, dont l'essentiel +// est inutile ici : en-têtes de compilation, docs, et surtout npm/corepack (le `npm install --omit=dev` +// du daemon a lieu au BUILD, jamais au runtime). +const PRUNE = ['include', 'share', 'lib', 'CHANGELOG.md', 'README.md']; +for (const rel of PRUNE) rmSync(join(NODE_DIR, rel), { recursive: true, force: true }); +// les shims npm/npx/corepack (POSIX : bin/, Windows : racine) +for (const shim of ['npm', 'npx', 'corepack', 'npm.cmd', 'npx.cmd', 'corepack.cmd', 'npm.ps1', 'npx.ps1', 'corepack.ps1']) { + rmSync(join(NODE_DIR, 'bin', shim), { force: true }); + rmSync(join(NODE_DIR, shim), { force: true }); +} + +// Garde-fou : le binaire doit avoir survécu à l'élagage. +const nodeBin = platform === 'win32' ? join(NODE_DIR, 'node.exe') : join(NODE_DIR, 'bin', 'node'); +if (!existsSync(nodeBin)) throw new Error(`binaire Node introuvable apres extraction: ${nodeBin}`); + +console.log(`fetch-node: Node ${NODE_VERSION} (${OS}-${arch}) -> build/node (${duMb(NODE_DIR)} Mo)`); + +/** Taille approximative d'un dossier, en Mo (diagnostic de l'élagage). */ +function duMb(dir) { + let total = 0; + const walk = (d) => { + for (const entry of readdirSync(d, { withFileTypes: true })) { + const p = join(d, entry.name); + if (entry.isDirectory()) walk(p); + else if (entry.isFile()) total += statSync(p).size; + } + }; + walk(dir); + return Math.round(total / 1024 / 1024); +} diff --git a/packages/desktop/scripts/prepare-server.mjs b/packages/desktop/scripts/prepare-server.mjs index adb8dee..d52b8d4 100644 --- a/packages/desktop/scripts/prepare-server.mjs +++ b/packages/desktop/scripts/prepare-server.mjs @@ -20,8 +20,12 @@ const arg = (name) => args.find((a) => a.startsWith(`--${name}=`))?.split('=')[1 const platform = arg('platform'); const arch = arg('arch'); +// Sur Windows, `npm`/`npx` sont des shims `.cmd` : `execFileSync` ne les résout pas (ENOENT), il faut +// leur nom complet. Sans ça, tout le chemin de build documenté échouait sur un hôte Windows. +const winShim = (cmd) => (process.platform === 'win32' && (cmd === 'npm' || cmd === 'npx') ? `${cmd}.cmd` : cmd); + const run = (cmd, cmdArgs, cwd, env) => - execFileSync(cmd, cmdArgs, { cwd, stdio: 'inherit', env: { ...process.env, ...env } }); + execFileSync(winShim(cmd), cmdArgs, { cwd, stdio: 'inherit', env: { ...process.env, ...env } }); rmSync(SERVER_DIR, { recursive: true, force: true }); mkdirSync(SERVER_DIR, { recursive: true }); diff --git a/packages/desktop/src/main/app-menu.ts b/packages/desktop/src/main/app-menu.ts new file mode 100644 index 0000000..6872681 --- /dev/null +++ b/packages/desktop/src/main/app-menu.ts @@ -0,0 +1,82 @@ +import { app, Menu, shell, type MenuItemConstructorOptions } from 'electron'; + +/** + * Menu applicatif. Sur macOS il n'est PAS optionnel : sans lui, aucun raccourci d'édition n'est + * enregistré et ⌘C / ⌘V / ⌘A / ⌘Z ne fonctionnent nulle part dans l'app (y compris dans les terminaux + * et l'éditeur). Sur Linux/Windows on garde un menu minimal, masqué par défaut (`setMenuBarVisibility` + * côté fenêtre) mais qui enregistre quand même les accélérateurs standard. + */ +export function installAppMenu(opts: { url: string; onQuit: () => void }): void { + const isMac = process.platform === 'darwin'; + + const macAppMenu: MenuItemConstructorOptions[] = isMac + ? [ + { + label: app.name, + submenu: [ + { role: 'about' }, + { type: 'separator' }, + { role: 'hide' }, + { role: 'hideOthers' }, + { role: 'unhide' }, + { type: 'separator' }, + { label: 'Quit Arboretum', accelerator: 'Command+Q', click: opts.onQuit }, + ], + }, + ] + : []; + + const template: MenuItemConstructorOptions[] = [ + ...macAppMenu, + { + label: 'File', + submenu: isMac ? [{ role: 'close' }] : [{ label: 'Quit', accelerator: 'Ctrl+Q', click: opts.onQuit }], + }, + { + label: 'Edit', + submenu: [ + { role: 'undo' }, + { role: 'redo' }, + { type: 'separator' }, + { role: 'cut' }, + { role: 'copy' }, + { role: 'paste' }, + { role: 'selectAll' }, + ], + }, + { + label: 'View', + submenu: [ + { role: 'reload' }, + { role: 'forceReload' }, + { type: 'separator' }, + { role: 'resetZoom' }, + { role: 'zoomIn' }, + { role: 'zoomOut' }, + { type: 'separator' }, + { role: 'togglefullscreen' }, + { role: 'toggleDevTools' }, + ], + }, + { + label: 'Window', + submenu: isMac ? [{ role: 'minimize' }, { role: 'zoom' }, { type: 'separator' }, { role: 'front' }] : [{ role: 'minimize' }], + }, + { + role: 'help', + submenu: [ + { label: 'Open in browser', click: () => void shell.openExternal(opts.url) }, + { label: 'Website', click: () => void shell.openExternal('https://git-arboretum.com') }, + ], + }, + ]; + + Menu.setApplicationMenu(Menu.buildFromTemplate(template)); + + app.setAboutPanelOptions({ + applicationName: 'Arboretum', + applicationVersion: app.getVersion(), + copyright: 'Copyright © 2026 Johan Leroy', + website: 'https://git-arboretum.com', + }); +} diff --git a/packages/desktop/src/main/env.ts b/packages/desktop/src/main/env.ts index 769dd96..7608bc5 100644 --- a/packages/desktop/src/main/env.ts +++ b/packages/desktop/src/main/env.ts @@ -6,10 +6,30 @@ import { homedir } from 'node:os'; // `claude`. Le réglage `claude_bin_path` (UI) reste le filet de secours. export function buildChildEnv(extra: Record): NodeJS.ProcessEnv { const env: NodeJS.ProcessEnv = { ...process.env, ...extra }; - if (process.platform !== 'win32') { - const extras = ['/usr/local/bin', '/opt/homebrew/bin', join(homedir(), '.local', 'bin'), '/usr/bin', '/bin']; + const extras = pathExtras(process.platform, env); + if (extras.length > 0) { const current = env.PATH ? env.PATH.split(delimiter) : []; env.PATH = [...new Set([...extras, ...current])].join(delimiter); } return env; } + +/** + * Répertoires à ajouter au PATH du daemon, par plateforme. Windows était entièrement ignoré : or + * l'installeur natif de Claude Code se pose dans %LOCALAPPDATA%\Programs et npm global dans + * %APPDATA%\npm, deux emplacements absents du PATH d'une app lancée depuis le menu Démarrer. + */ +export function pathExtras(platform: NodeJS.Platform, env: NodeJS.ProcessEnv = process.env): string[] { + const home = env.USERPROFILE ?? homedir(); + if (platform === 'win32') { + const local = env.LOCALAPPDATA ?? join(home, 'AppData', 'Local'); + const roaming = env.APPDATA ?? join(home, 'AppData', 'Roaming'); + return [ + join(local, 'Programs'), + join(local, 'Programs', 'claude'), + join(roaming, 'npm'), + join(home, '.local', 'bin'), + ]; + } + return ['/usr/local/bin', '/opt/homebrew/bin', join(home, '.local', 'bin'), '/usr/bin', '/bin']; +} diff --git a/packages/desktop/src/main/main.ts b/packages/desktop/src/main/main.ts index a3e699f..3aa886f 100644 --- a/packages/desktop/src/main/main.ts +++ b/packages/desktop/src/main/main.ts @@ -4,6 +4,7 @@ import { startDaemon, type DaemonHandle } from './daemon'; import { seedSessionCookie } from './auth'; import { loadWindowState, saveWindowState } from './window-state'; import { createTray } from './tray'; +import { installAppMenu } from './app-menu'; import { initUpdater } from './updater'; import { resolveIconPath } from './paths'; @@ -39,10 +40,15 @@ async function bootstrap(): Promise { daemon = await startDaemon({ dataDir, port: PORT, onLog: (l) => process.stdout.write(l) }); await seedSessionCookie(PARTITION, daemon.url, daemon.token); createWindow(daemon.url); + installAppMenu({ url: daemon.url, onQuit: quitApp }); tray = createTray({ show: showWindow, quit: quitApp }); initUpdater(); } +// macOS : la fenêtre est cachée (pas détruite) à la fermeture. Sans ce handler, cliquer l'icône du +// Dock ne la ramenait jamais et l'app paraissait bloquée en arrière-plan. +app.on('activate', showWindow); + function showWindow(): void { if (!win) return; if (win.isMinimized()) win.restore(); diff --git a/packages/desktop/src/main/paths.ts b/packages/desktop/src/main/paths.ts index 5c7b84c..2ba31c2 100644 --- a/packages/desktop/src/main/paths.ts +++ b/packages/desktop/src/main/paths.ts @@ -1,5 +1,6 @@ import { app } from 'electron'; import { join } from 'node:path'; +import { existsSync } from 'node:fs'; // Résolution des chemins runtime : dev (depuis le repo) vs packagé (extraResources). // __dirname pointe sur dist/ (bundle esbuild) une fois construit. @@ -23,6 +24,19 @@ export function resolveIconPath(): string { : join(__dirname, '..', 'resources', 'icon.png'); } +/** + * Icône de barre système. macOS exige une image « template » (monochrome) dans la barre de menus ; + * ailleurs on retombe sur le logo couleur. `null` si l'asset n'est pas présent (build sans + * régénération des icônes) : l'appelant utilise alors resolveIconPath(). + */ +export function resolveTrayIconPath(): string | null { + if (process.platform !== 'darwin') return null; + const path = app.isPackaged + ? join(process.resourcesPath, 'trayTemplate.png') + : join(__dirname, '..', 'resources', 'trayTemplate.png'); + return existsSync(path) ? path : null; +} + /** Binaire Node qui exécute le daemon (>= 22.16 : node:sqlite + ABI node-pty maîtrisé). */ export function resolveNodeBin(): string { if (app.isPackaged) { diff --git a/packages/desktop/src/main/tray.ts b/packages/desktop/src/main/tray.ts index 93c4782..526c2d4 100644 --- a/packages/desktop/src/main/tray.ts +++ b/packages/desktop/src/main/tray.ts @@ -1,11 +1,17 @@ import { Menu, Tray, nativeImage } from 'electron'; import { isAutoStartEnabled, setAutoStart } from './autostart'; -import { resolveIconPath } from './paths'; +import { resolveIconPath, resolveTrayIconPath } from './paths'; /** Icône de barre système : ouvrir la fenêtre, basculer le lancement au login, quitter. */ export function createTray(opts: { show: () => void; quit: () => void }): Tray { - const image = nativeImage.createFromPath(resolveIconPath()); - const tray = new Tray(image.isEmpty() ? nativeImage.createEmpty() : image.resize({ width: 18, height: 18 })); + // macOS exige une image TEMPLATE (monochrome + alpha) dans la barre de menus : elle s'inverse + // automatiquement selon le thème système. Une icône couleur y est illisible. Windows attend 16px. + const trayPath = resolveTrayIconPath() ?? resolveIconPath(); + const raw = nativeImage.createFromPath(trayPath); + const size = process.platform === 'darwin' ? 16 : process.platform === 'win32' ? 16 : 18; + const image = raw.isEmpty() ? nativeImage.createEmpty() : raw.resize({ width: size, height: size }); + if (process.platform === 'darwin' && !image.isEmpty()) image.setTemplateImage(true); + const tray = new Tray(image); tray.setToolTip('Arboretum'); const buildMenu = (): void => { diff --git a/packages/server/CHANGELOG.md b/packages/server/CHANGELOG.md index d68b7dc..616e05f 100644 --- a/packages/server/CHANGELOG.md +++ b/packages/server/CHANGELOG.md @@ -3,6 +3,44 @@ Notable changes to `@johanleroy/git-arboretum` (the Arboretum daemon). The VS Code extension keeps its own changelog in `packages/vscode/CHANGELOG.md`. +## 3.4.0 + +Visibility release: the real-time machinery is now actually armed, worktrees show what they are worth, +and history is served. Fully additive, no protocol version bump. + +- **Real-time that no longer depends on which panel is open.** A live session now pins the FS watcher of + its worktree, so a worktree an agent is writing into refreshes on its own even when nobody is looking at + it (`pinSession` existed but was never called). On the client side, `watch` subscriptions moved out of + the Git panel, which was unmounted as soon as you left its tab, taking the app's only subscription with + it; they now follow what you actually look at (active worktree plus expanded repositories). +- **Reconnection no longer loses state.** The protocol replays nothing, so every event missed during a + WebSocket outage was lost for good. The client reloads repos, worktrees, sessions and settings whenever + the connection comes back. +- **Session correlation by containment.** A terminal started in a *subdirectory* of a worktree (which + "Start the project" allows) and a group session covering a worktree through `--add-dir` are now listed + under that worktree, instead of vanishing from the tree. The rule lives in `@arboretum/shared`, shared by + the daemon, the web UI and the VS Code extension; the most specific worktree wins. +- **History API.** `GET /api/v1/repos/:id/worktrees/log` serves the branch commits with the count of + unpushed ones, and `GET .../worktrees/diff?commit=` the full diff of a commit (hash strictly + validated, same size limits as file diffs). The UI unfolds them in place under the Git panel. +- **Full git counters where they matter.** `ahead`/`behind`, staged, unstaged and conflict counts were + only visible in the status bar, for the active worktree. They are now on every worktree row of the tree + and of the Groups panel, with upstream and last commit in the tooltip. `locked`, `prunable` and an + invalid repository are surfaced too. +- **Groups show their composition.** A group lists its repositories with their worktrees and git state, + its sessions (live and recent) and the directories a group session spans. Its colour tints those repos + in the explorer. +- **Actionable `403 BAD_ORIGIN`.** The error now names the exact `--allow-origin` flag to add, and logs + it. It is the first wall of any LAN or reverse-proxy access. +- **Windows support in the daemon.** `where.exe` for CLI discovery, PowerShell as the project launch + shell, a `.cmd` askpass so token-based HTTPS clone/push works, `taskkill /T` for process-tree + termination, `%APPDATA%` for the data directory, and `arboretum install` registering a scheduled task. +- **UI fixes.** Error toasts were painted behind modals (they are sticky, so they piled up invisible); + on mobile, opening a terminal or switching activity had no visible effect; the dock could push the + status bar out of the viewport; panels showed "nothing here" instead of a loading or error state; + modals had no dialog role, focus trap or focus restore; the splitters are now keyboard operable; diff + line numbers stay pinned while scrolling. + ## 3.3.0 "Start the project": boot a project's long-running commands (dev server, API, database) in one click. Fully additive, no protocol or API change. diff --git a/packages/server/package.json b/packages/server/package.json index 6af27f3..f2ffad2 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "name": "@johanleroy/git-arboretum", - "version": "3.3.0", - "description": "Self-hosted web dashboard for git worktrees and the Claude Code sessions running on them", + "version": "3.4.0", + "description": "Self-hosted multi-project AI IDE for git worktrees and the Claude Code sessions running on them", "license": "MIT", "type": "module", "author": "Johan LEROY ", diff --git a/packages/server/scripts/acceptance-p14.mjs b/packages/server/scripts/acceptance-p14.mjs new file mode 100644 index 0000000..a70b3d8 --- /dev/null +++ b/packages/server/scripts/acceptance-p14.mjs @@ -0,0 +1,174 @@ +#!/usr/bin/env node +// Acceptation P14 (sans navigateur, sans quota Claude) : temps réel « armé ». Vrai daemon + vrai repo +// git tmp + vrai client WS. Couvre les trois trous de visibilité corrigés : +// 1. une session vivante épingle le watcher FS de SON worktree → les compteurs git d'un worktree +// secondaire restent temps réel même si AUCUN client ne le regarde (avant : point « modifié » figé +// sur le dernier listing REST) ; +// 2. corrélation par contenance : un terminal lancé dans un SOUS-répertoire du worktree y est +// rattaché (« Démarrer le projet »), et pas au checkout principal ; +// 3. `watch` explicite → `worktree_changes` ciblé sur ce worktree secondaire. +import { spawn, execFileSync } from 'node:child_process'; +import { mkdtempSync, rmSync, writeFileSync, mkdirSync, appendFileSync } from 'node:fs'; +import { tmpdir } from 'node:os'; +import { join, dirname } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { createRequire } from 'node:module'; + +const require = createRequire(import.meta.url); +const WebSocket = require('ws'); + +const PORT = 7554; +const ORIGIN = `http://127.0.0.1:${PORT}`; +const sleep = (ms) => new Promise((r) => setTimeout(r, ms)); +const serverDir = join(dirname(fileURLToPath(import.meta.url)), '..'); +const results = []; +const check = (name, ok, detail = '') => { + results.push({ name, ok, detail }); + console.log(`${ok ? '✅' : '❌'} ${name}${detail ? `: ${detail}` : ''}`); +}; + +const tmp = mkdtempSync(join(tmpdir(), 'arb-accept-p14-')); +const repo = join(tmp, 'demo-repo'); +mkdirSync(repo, { recursive: true }); +const git = (...args) => execFileSync('git', args, { cwd: repo, stdio: 'pipe' }); +git('init', '-b', 'main'); +git('config', 'user.email', 'test@arboretum.dev'); +git('config', 'user.name', 'Test'); +mkdirSync(join(repo, 'packages', 'api'), { recursive: true }); +writeFileSync(join(repo, 'README.md'), '# demo\n'); +writeFileSync(join(repo, 'packages', 'api', 'index.js'), 'console.log(1)\n'); +git('add', '-A'); +git('commit', '-m', 'init'); + +const srv = spawn( + 'node', + [join(serverDir, 'dist', 'index.js'), '--port', String(PORT), '--db', join(tmp, 'a.db'), '--claude-home', join(tmp, 'claude'), '--no-discover'], + { env: { ...process.env, ARBORETUM_LOG: 'warn' }, stdio: ['ignore', 'pipe', 'pipe'] }, +); +let srvOut = ''; +srv.stdout.on('data', (d) => (srvOut += d)); +srv.stderr.on('data', (d) => (srvOut += d)); + +function wsClient(cookie) { + const ws = new WebSocket(`ws://127.0.0.1:${PORT}/ws`, { headers: { Origin: ORIGIN, Cookie: cookie } }); + const state = { msgs: [] }; + ws.on('message', (data, isBinary) => { + if (!isBinary) state.msgs.push(JSON.parse(String(data))); + }); + const waitMsg = async (pred, timeout = 8000) => { + const t0 = Date.now(); + while (Date.now() - t0 < timeout) { + const m = state.msgs.find(pred); + if (m) return m; + await sleep(50); + } + return null; + }; + return { ws, state, waitMsg, send: (m) => ws.send(JSON.stringify(m)) }; +} + +const j = (path, method, cookie, body) => + fetch(`${ORIGIN}${path}`, { + method, + headers: { Origin: ORIGIN, Cookie: cookie, ...(body ? { 'Content-Type': 'application/json' } : {}) }, + ...(body ? { body: JSON.stringify(body) } : {}), + }); + +try { + await sleep(1500); + const token = /arb_[0-9a-f]+/.exec(srvOut)?.[0]; + check('boot + token bootstrap', !!token); + + const login = await fetch(`${ORIGIN}/api/v1/auth/login`, { + method: 'POST', + headers: { 'Content-Type': 'application/json', Origin: ORIGIN }, + body: JSON.stringify({ token }), + }); + const cookie = login.headers.get('set-cookie')?.split(';')[0] ?? ''; + check('login → cookie', login.status === 200); + + const c = wsClient(cookie); + await new Promise((res, rej) => (c.ws.on('open', res), c.ws.on('error', rej))); + c.send({ type: 'hello', protocol: 1 }); + await c.waitMsg((m) => m.type === 'hello_ok'); + c.send({ type: 'sub', topics: ['worktrees', 'sessions'] }); + + const addRepo = await j('/api/v1/repos', 'POST', cookie, { path: repo }); + const repoId = (await addRepo.json()).repo.id; + check('POST /repos → 201', addRepo.status === 201 && !!repoId); + + // ---- worktree secondaire (feature) avec un sous-répertoire ---- + const created = await j(`/api/v1/repos/${repoId}/worktrees`, 'POST', cookie, { branch: 'feature/live', runHooks: false }); + const wtPath = (await created.json()).worktree?.path; + check('POST /worktrees → worktree secondaire créé', created.status === 201 && !!wtPath); + const subDir = join(wtPath, 'packages', 'api'); + + // ---- 2. corrélation par contenance : session lancée DANS un sous-répertoire ---- + const sess = await j('/api/v1/sessions', 'POST', cookie, { cwd: subDir, command: 'bash' }); + const session = (await sess.json()).session; + check('POST /sessions (cwd = sous-répertoire) → 201', sess.status === 201 && !!session?.id); + await sleep(600); + + const list = await (await j('/api/v1/worktrees', 'GET', cookie)).json(); + const secondary = (list.worktrees ?? []).find((w) => w.path === wtPath); + const main = (list.worktrees ?? []).find((w) => w.isMain); + check( + 'la session du sous-répertoire est rattachée au worktree secondaire', + (secondary?.sessions ?? []).some((s) => s.id === session.id), + `sessions=${(secondary?.sessions ?? []).length}`, + ); + check( + 'elle n’est PAS rattachée au checkout principal (désambiguïsation)', + !(main?.sessions ?? []).some((s) => s.id === session.id), + ); + + // ---- 1. session vivante → watcher épinglé SANS aucun watch client ---- + // Aucun `watch` n'a été envoyé : seul `pinSession` peut produire cet événement. + await sleep(900); // laisse chokidar finir son scan initial + c.state.msgs.length = 0; + const t0 = Date.now(); + appendFileSync(join(wtPath, 'README.md'), 'edited by the agent\n'); + const upd = await c.waitMsg((m) => m.type === 'worktree_update' && m.worktree?.path === wtPath && m.worktree?.git?.dirtyCount > 0, 6000); + check('worktree secondaire non regardé : worktree_update reçu (pinSession)', !!upd, upd ? `${Date.now() - t0}ms` : 'timeout'); + check('les compteurs git du worktree secondaire sont frais', (upd?.worktree?.git?.unstagedCount ?? 0) >= 1); + + // ---- pas de worktree_changes sans watch (le détail reste ciblé) ---- + const changesWithoutWatch = c.state.msgs.find((m) => m.type === 'worktree_changes'); + check('sans watch : aucun worktree_changes (push ciblé préservé)', !changesWithoutWatch); + + // ---- 3. watch explicite → worktree_changes ciblé ---- + c.send({ type: 'watch', repoId, path: wtPath }); + await sleep(900); + c.state.msgs.length = 0; + writeFileSync(join(wtPath, 'live.txt'), 'live\n'); + const changesMsg = await c.waitMsg((m) => m.type === 'worktree_changes' && m.path === wtPath, 6000); + check('watch → worktree_changes ciblé sur le worktree secondaire', !!changesMsg); + + c.send({ type: 'unwatch', repoId, path: wtPath }); + await j(`/api/v1/sessions/${session.id}`, 'DELETE', cookie); + await sleep(500); + + // ---- contraposée : le temps réel reste PILOTÉ (ni session, ni watch → pas de surveillance) ---- + // Un watcher déjà ouvert est volontairement conservé en cache (évincé par la LRU) : on vérifie donc + // sur un worktree neuf, jamais épinglé ni regardé, qu'aucun événement n'est émis. + const idle = await j(`/api/v1/repos/${repoId}/worktrees`, 'POST', cookie, { branch: 'feature/idle', runHooks: false }); + const idlePath = (await idle.json()).worktree?.path; + check('POST /worktrees → second worktree (sans session)', idle.status === 201 && !!idlePath); + await sleep(700); + c.state.msgs.length = 0; + writeFileSync(join(idlePath, 'unwatched.txt'), 'x\n'); + const idleMsg = await c.waitMsg((m) => m.type === 'worktree_update' && m.worktree?.path === idlePath, 2500); + check('worktree sans session ni watch → aucune surveillance (coût piloté par l’attention)', !idleMsg); + + c.ws.close(); +} catch (err) { + check('exception', false, String(err)); +} finally { + srv.kill('SIGTERM'); + await sleep(1500); + check('arrêt propre du daemon (SIGTERM)', srv.exitCode === 0 || srv.signalCode === null || srv.exitCode === null); + rmSync(tmp, { recursive: true, force: true }); + const failed = results.filter((r) => !r.ok); + console.log(failed.length === 0 ? '\nACCEPTANCE P14: ALL GREEN' : `\nACCEPTANCE P14: ${failed.length} FAILURE(S)`); + process.exit(failed.length === 0 ? 0 : 1); +} diff --git a/packages/server/scripts/acceptance-p15.mjs b/packages/server/scripts/acceptance-p15.mjs new file mode 100644 index 0000000..ea211e6 --- /dev/null +++ b/packages/server/scripts/acceptance-p15.mjs @@ -0,0 +1,117 @@ +#!/usr/bin/env node +// Acceptation P15 (sans navigateur, sans quota Claude) : historisation. Vrai daemon + vrai repo git +// tmp. Couvre GET /worktrees/log (ordre, champs, limit/skip, marquage non poussé) et la forme +// `diff?commit=` (diff unifié complet d'un commit, hash invalide et inconnu rejetés). +import { spawn, execFileSync } from 'node:child_process'; +import { mkdtempSync, rmSync, writeFileSync, appendFileSync, mkdirSync } from 'node:fs'; +import { tmpdir } from 'node:os'; +import { join, dirname } from 'node:path'; +import { fileURLToPath } from 'node:url'; + +const PORT = 7555; +const ORIGIN = `http://127.0.0.1:${PORT}`; +const sleep = (ms) => new Promise((r) => setTimeout(r, ms)); +const serverDir = join(dirname(fileURLToPath(import.meta.url)), '..'); +const results = []; +const check = (name, ok, detail = '') => { + results.push({ name, ok, detail }); + console.log(`${ok ? '✅' : '❌'} ${name}${detail ? `: ${detail}` : ''}`); +}; + +const tmp = mkdtempSync(join(tmpdir(), 'arb-accept-p15-')); +const repo = join(tmp, 'demo-repo'); +mkdirSync(repo, { recursive: true }); +const git = (...args) => execFileSync('git', args, { cwd: repo, stdio: 'pipe' }); +git('init', '-b', 'main'); +git('config', 'user.email', 'test@arboretum.dev'); +git('config', 'user.name', 'Test'); +writeFileSync(join(repo, 'README.md'), '# demo\n'); +git('add', '-A'); +git('commit', '-m', 'init'); +// un sujet contenant un guillemet et un caractère accentué : piège classique de parsing +appendFileSync(join(repo, 'README.md'), 'deuxième ligne\n'); +git('commit', '-am', 'ajoute la « deuxième » ligne'); +writeFileSync(join(repo, 'feature.txt'), 'contenu de la feature\n'); +git('add', '-A'); +git('commit', '-m', 'ajoute feature.txt'); + +const srv = spawn( + 'node', + [join(serverDir, 'dist', 'index.js'), '--port', String(PORT), '--db', join(tmp, 'a.db'), '--claude-home', join(tmp, 'claude'), '--no-discover'], + { env: { ...process.env, ARBORETUM_LOG: 'warn' }, stdio: ['ignore', 'pipe', 'pipe'] }, +); +let srvOut = ''; +srv.stdout.on('data', (d) => (srvOut += d)); +srv.stderr.on('data', (d) => (srvOut += d)); + +const j = (path, method, cookie, body) => + fetch(`${ORIGIN}${path}`, { + method, + headers: { Origin: ORIGIN, Cookie: cookie, ...(body ? { 'Content-Type': 'application/json' } : {}) }, + ...(body ? { body: JSON.stringify(body) } : {}), + }); + +try { + await sleep(1500); + const token = /arb_[0-9a-f]+/.exec(srvOut)?.[0]; + check('boot + token bootstrap', !!token); + + const login = await fetch(`${ORIGIN}/api/v1/auth/login`, { + method: 'POST', + headers: { 'Content-Type': 'application/json', Origin: ORIGIN }, + body: JSON.stringify({ token }), + }); + const cookie = login.headers.get('set-cookie')?.split(';')[0] ?? ''; + check('login → cookie', login.status === 200); + + const addRepo = await j('/api/v1/repos', 'POST', cookie, { path: repo }); + const repoId = (await addRepo.json()).repo.id; + check('POST /repos → 201', addRepo.status === 201 && !!repoId); + const enc = encodeURIComponent(repo); + + // ---- GET /log : ordre, champs, sujet non trivial ---- + const log = await (await j(`/api/v1/repos/${repoId}/worktrees/log?path=${enc}`, 'GET', cookie)).json(); + const subjects = (log.commits ?? []).map((c) => c.subject); + check('GET /log : 3 commits, du plus récent au plus ancien', subjects.length === 3 && subjects[0] === 'ajoute feature.txt' && subjects[2] === 'init'); + check('GET /log : sujet accentué et guillemets préservés', subjects[1] === 'ajoute la « deuxième » ligne'); + const head = log.commits?.[0]; + check('GET /log : champs hash/shortHash/auteur/date remplis', /^[0-9a-f]{40}$/.test(head?.hash ?? '') && (head?.shortHash?.length ?? 0) >= 7 && head?.author === 'Test' && !Number.isNaN(Date.parse(head?.date ?? ''))); + check('GET /log : branche locale sans remote → hasUpstream=false', log.hasUpstream === false && log.unpushedCount === 0); + + // ---- limit / skip ---- + const page = await (await j(`/api/v1/repos/${repoId}/worktrees/log?path=${enc}&limit=1&skip=1`, 'GET', cookie)).json(); + check('GET /log : limit + skip bornent la fenêtre', page.commits?.length === 1 && page.commits[0].subject === 'ajoute la « deuxième » ligne'); + const bad = await j(`/api/v1/repos/${repoId}/worktrees/log?path=${enc}&limit=abc`, 'GET', cookie); + check('GET /log : limit non numérique → 400', bad.status === 400); + const noPath = await j(`/api/v1/repos/${repoId}/worktrees/log`, 'GET', cookie); + check('GET /log : path manquant → 400', noPath.status === 400); + + // ---- diff d'un commit ---- + const cd = await (await j(`/api/v1/repos/${repoId}/worktrees/diff?path=${enc}&commit=${head.hash}`, 'GET', cookie)).json(); + check('GET /diff?commit= : diff unifié du commit', typeof cd.diff === 'string' && cd.diff.includes('feature.txt') && cd.diff.includes('+contenu de la feature')); + check('GET /diff?commit= : ni binaire ni tronqué', cd.binary === false && cd.tooLarge === false); + const shortHash = await (await j(`/api/v1/repos/${repoId}/worktrees/diff?path=${enc}&commit=${head.shortHash}`, 'GET', cookie)).json(); + check('GET /diff?commit= : hash court accepté', typeof shortHash.diff === 'string' && shortHash.diff.includes('feature.txt')); + + const invalid = await j(`/api/v1/repos/${repoId}/worktrees/diff?path=${enc}&commit=${encodeURIComponent('--upload-pack=x')}`, 'GET', cookie); + check('GET /diff?commit= : révision non hexadécimale refusée', invalid.status === 400); + const unknown = await j(`/api/v1/repos/${repoId}/worktrees/diff?path=${enc}&commit=deadbeef`, 'GET', cookie); + check('GET /diff?commit= : commit inconnu → 404', unknown.status === 404); + const neither = await j(`/api/v1/repos/${repoId}/worktrees/diff?path=${enc}`, 'GET', cookie); + check('GET /diff : ni file ni commit → 400', neither.status === 400); + + // ---- la forme fichier reste intacte (non-régression P7/P9) ---- + appendFileSync(join(repo, 'README.md'), 'travail en cours\n'); + const fileDiff = await (await j(`/api/v1/repos/${repoId}/worktrees/diff?path=${enc}&file=README.md`, 'GET', cookie)).json(); + check('GET /diff?file= : toujours fonctionnel', typeof fileDiff.diff === 'string' && fileDiff.diff.includes('+travail en cours')); +} catch (err) { + check('exception', false, String(err)); +} finally { + srv.kill('SIGTERM'); + await sleep(1500); + check('arrêt propre du daemon (SIGTERM)', srv.exitCode === 0 || srv.signalCode === null || srv.exitCode === null); + rmSync(tmp, { recursive: true, force: true }); + const failed = results.filter((r) => !r.ok); + console.log(failed.length === 0 ? '\nACCEPTANCE P15: ALL GREEN' : `\nACCEPTANCE P15: ${failed.length} FAILURE(S)`); + process.exit(failed.length === 0 ? 0 : 1); +} diff --git a/packages/server/scripts/verify-ui.mjs b/packages/server/scripts/verify-ui.mjs new file mode 100644 index 0000000..518c564 --- /dev/null +++ b/packages/server/scripts/verify-ui.mjs @@ -0,0 +1,232 @@ +#!/usr/bin/env node +// Vérification VISUELLE de la SPA authentifiée, sans Playwright : daemon temporaire isolé + Chromium +// headless piloté en CDP + cookie de session injecté. Produit des captures PNG (thème sombre et clair, +// largeurs desktop et mobile) et échoue si une erreur console / exception Vue survient. +// +// Usage : node packages/server/scripts/verify-ui.mjs [dossier-de-sortie] +// Prérequis : `npm run build` puis `node packages/server/scripts/copy-web.mjs` (le daemon sert la SPA +// depuis packages/server/public, que le build NE rafraîchit PAS). +import { spawn, execFileSync } from 'node:child_process'; +import { mkdtempSync, mkdirSync, rmSync, writeFileSync, existsSync } from 'node:fs'; +import { tmpdir } from 'node:os'; +import { join, dirname, resolve as resolvePath } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { createRequire } from 'node:module'; + +const require = createRequire(import.meta.url); +const WebSocket = require('ws'); + +const PORT = 7998; +const CDP_PORT = 9333; +const ORIGIN = `http://127.0.0.1:${PORT}`; +const serverDir = join(dirname(fileURLToPath(import.meta.url)), '..'); +const outDir = resolvePath(process.argv[2] ?? join(serverDir, '..', '..', '.ui-shots')); +const sleep = (ms) => new Promise((r) => setTimeout(r, ms)); +const results = []; +const check = (name, ok, detail = '') => { + results.push({ name, ok, detail }); + console.log(`${ok ? '✅' : '❌'} ${name}${detail ? `: ${detail}` : ''}`); +}; + +function findChromium() { + for (const bin of ['chromium', 'chromium-browser', 'google-chrome', 'google-chrome-stable']) { + try { + return execFileSync('which', [bin]).toString().trim(); + } catch { + /* essai suivant */ + } + } + return null; +} + +/** Client CDP minimal : un seul socket, corrélation par id, sessionId pour la cible attachée. */ +function cdp(url) { + const ws = new WebSocket(url, { perMessageDeflate: false, maxPayload: 256 * 1024 * 1024 }); + let nextId = 1; + const pending = new Map(); + const events = []; + ws.on('message', (raw) => { + const msg = JSON.parse(String(raw)); + if (msg.id && pending.has(msg.id)) { + const { resolve, reject } = pending.get(msg.id); + pending.delete(msg.id); + msg.error ? reject(new Error(JSON.stringify(msg.error))) : resolve(msg.result); + return; + } + if (msg.method) events.push(msg); + }); + const ready = new Promise((res, rej) => (ws.on('open', res), ws.on('error', rej))); + const send = (method, params = {}, sessionId) => + new Promise((resolve, reject) => { + const id = nextId++; + pending.set(id, { resolve, reject }); + ws.send(JSON.stringify({ id, method, params, ...(sessionId ? { sessionId } : {}) })); + setTimeout(() => pending.has(id) && (pending.delete(id), reject(new Error(`CDP timeout: ${method}`))), 30_000); + }); + return { ws, ready, send, events }; +} + +const tmp = mkdtempSync(join(tmpdir(), 'arb-verify-ui-')); +mkdirSync(outDir, { recursive: true }); +let srv = null; +let browser = null; + +try { + // La SPA servie vient de packages/server/public : garde-fou contre la vérification d'un ancien build. + const publicIndex = join(serverDir, 'public', 'index.html'); + check('SPA copiée dans packages/server/public', existsSync(publicIndex), publicIndex); + + // --- dépôt de démonstration : un checkout principal, un worktree de feature, du travail en cours --- + const repo = join(tmp, 'demo-repo'); + mkdirSync(repo, { recursive: true }); + const git = (...args) => execFileSync('git', args, { cwd: repo, stdio: 'pipe' }); + git('init', '-b', 'main'); + git('config', 'user.email', 'test@arboretum.dev'); + git('config', 'user.name', 'Test'); + writeFileSync(join(repo, 'README.md'), '# demo\n'); + mkdirSync(join(repo, 'src'), { recursive: true }); + writeFileSync(join(repo, 'src', 'app.ts'), 'export const version = 1\n'); + git('add', '-A'); + git('commit', '-m', 'commit initial'); + writeFileSync(join(repo, 'src', 'app.ts'), 'export const version = 2\n'); + + srv = spawn( + 'node', + [join(serverDir, 'dist', 'index.js'), '--port', String(PORT), '--db', join(tmp, 't.db'), '--claude-home', join(tmp, 'claude'), '--no-discover'], + { env: { ...process.env, XDG_DATA_HOME: join(tmp, 'xdg'), ARBORETUM_LOG: 'warn' }, stdio: ['ignore', 'pipe', 'pipe'] }, + ); + let srvOut = ''; + srv.stdout.on('data', (d) => (srvOut += d)); + srv.stderr.on('data', (d) => (srvOut += d)); + + for (let i = 0; i < 60 && !/arb_[0-9a-f]{16,}/.test(srvOut); i++) await sleep(150); + const token = /arb_[0-9a-f]{16,}/.exec(srvOut)?.[0]; + check('daemon temporaire démarré + token', !!token); + + const login = await fetch(`${ORIGIN}/api/v1/auth/login`, { + method: 'POST', + headers: { 'Content-Type': 'application/json', Origin: ORIGIN }, + body: JSON.stringify({ token }), + }); + const setCookie = login.headers.getSetCookie?.() ?? []; + const sessionCookie = setCookie.map((c) => c.split(';')[0]).find((c) => c.startsWith('arb_session=')); + check('login → cookie de session', !!sessionCookie); + const cookieValue = sessionCookie?.slice('arb_session='.length) ?? ''; + + const j = (path, method, body) => + fetch(`${ORIGIN}${path}`, { + method, + headers: { Origin: ORIGIN, Cookie: sessionCookie ?? '', ...(body ? { 'Content-Type': 'application/json' } : {}) }, + ...(body ? { body: JSON.stringify(body) } : {}), + }); + + const repoId = (await (await j('/api/v1/repos', 'POST', { path: repo })).json()).repo?.id; + check('dépôt de démonstration enregistré', !!repoId); + const wtRes = await (await j(`/api/v1/repos/${repoId}/worktrees`, 'POST', { branch: 'feature/demo', runHooks: false })).json(); + check('worktree de feature créé', !!wtRes.worktree?.path); + // du travail non commité dans le worktree de feature, pour peupler les compteurs git de l'arbre + if (wtRes.worktree?.path) writeFileSync(join(wtRes.worktree.path, 'wip.txt'), 'travail en cours\n'); + const groupRes = await (await j('/api/v1/groups', 'POST', { label: 'Démo', color: '#34d399', repoIds: [repoId] })).json(); + check('groupe de démonstration créé', !!groupRes.group?.id); + const sess = await (await j('/api/v1/sessions', 'POST', { cwd: repo, command: 'bash' })).json(); + check('session bash de démonstration', !!sess.session?.id); + + // --- Chromium headless en CDP --- + const chromeBin = findChromium(); + check('Chromium disponible', !!chromeBin, chromeBin ?? 'introuvable'); + if (!chromeBin) throw new Error('Chromium introuvable : impossible de vérifier le rendu'); + browser = spawn( + chromeBin, + [ + '--headless=new', + `--remote-debugging-port=${CDP_PORT}`, + `--user-data-dir=${join(tmp, 'chrome')}`, + '--no-first-run', + '--no-default-browser-check', + '--disable-gpu', + '--hide-scrollbars', + ], + { stdio: ['ignore', 'pipe', 'pipe'] }, + ); + let wsUrl = null; + for (let i = 0; i < 80 && !wsUrl; i++) { + await sleep(200); + try { + wsUrl = (await (await fetch(`http://127.0.0.1:${CDP_PORT}/json/version`)).json()).webSocketDebuggerUrl; + } catch { + /* pas encore prêt */ + } + } + check('Chromium en écoute CDP', !!wsUrl); + + const client = cdp(wsUrl); + await client.ready; + + // État de vue injecté avant le premier paint : on veut des captures qui MONTRENT le contenu + // (arbre déplié, worktree actif), pas un IDE vide. + const expanded = JSON.stringify(JSON.stringify([repoId])); + const context = JSON.stringify(JSON.stringify({ repoId, wtPath: repo })); + const seedExplorer = `localStorage.setItem('arb.ide.expandedRepos', ${expanded});localStorage.setItem('arb.ide.context', ${context});`; + const seedGit = `${seedExplorer}localStorage.setItem('arb.ide.activity', '"git"');localStorage.setItem('arb.history.open', 'true');`; + + const shots = [ + { name: 'ide-dark-desktop', theme: 'dark', width: 1440, height: 900, seed: seedExplorer }, + { name: 'ide-light-desktop', theme: 'light', width: 1440, height: 900, seed: seedExplorer }, + { name: 'git-dark-desktop', theme: 'dark', width: 1440, height: 900, seed: seedGit }, + { name: 'git-light-desktop', theme: 'light', width: 1440, height: 900, seed: seedGit }, + { name: 'ide-dark-mobile', theme: 'dark', width: 390, height: 844, seed: seedExplorer }, + { name: 'ide-light-mobile', theme: 'light', width: 390, height: 844, seed: seedExplorer }, + { name: 'dashboard-dark-mobile', theme: 'dark', width: 390, height: 844, path: '/dashboard' }, + ]; + + for (const shot of shots) { + const { targetId } = await client.send('Target.createTarget', { url: 'about:blank' }); + const { sessionId } = await client.send('Target.attachToTarget', { targetId, flatten: true }); + await client.send('Runtime.enable', {}, sessionId); + await client.send('Log.enable', {}, sessionId); + await client.send('Network.enable', {}, sessionId); + await client.send('Emulation.setDeviceMetricsOverride', { width: shot.width, height: shot.height, deviceScaleFactor: 1, mobile: shot.width < 500 }, sessionId); + await client.send('Network.setCookie', { name: 'arb_session', value: cookieValue, domain: '127.0.0.1', path: '/', httpOnly: true }, sessionId); + // Thème : la SPA lit `arb.theme` avant le premier paint (script anti-FOUC). + await client.send('Page.enable', {}, sessionId); + await client.send( + 'Page.addScriptToEvaluateOnNewDocument', + { source: `localStorage.setItem('arb.theme', ${JSON.stringify(JSON.stringify(shot.theme))});${shot.seed ?? ''}` }, + sessionId, + ); + const before = client.events.length; + await client.send('Page.navigate', { url: `${ORIGIN}${shot.path ?? '/ide'}` }, sessionId); + await sleep(3500); // laisse le temps au bootstrap REST + WS et au rendu + + const text = await client.send('Runtime.evaluate', { expression: 'document.body.innerText', returnByValue: true }, sessionId); + const rendered = String(text.result?.value ?? ''); + check(`${shot.name} : page rendue`, rendered.length > 20, `${rendered.length} caractères`); + + const errs = client.events + .slice(before) + .filter((e) => e.sessionId === sessionId) + .filter((e) => (e.method === 'Runtime.consoleAPICalled' && e.params?.type === 'error') || e.method === 'Runtime.exceptionThrown') + .map((e) => e.params?.exceptionDetails?.text ?? (e.params?.args ?? []).map((a) => a.value ?? a.description).join(' ')) + // Les erreurs réseau des favicons/manifest en headless ne concernent pas l'app. + .filter((m) => m && !/favicon|manifest\.webmanifest/i.test(m)); + check(`${shot.name} : aucune erreur console`, errs.length === 0, errs.slice(0, 3).join(' | ')); + + const { data } = await client.send('Page.captureScreenshot', { format: 'png', captureBeyondViewport: false }, sessionId); + const file = join(outDir, `${shot.name}.png`); + writeFileSync(file, Buffer.from(data, 'base64')); + check(`${shot.name} : capture écrite`, true, file); + await client.send('Target.closeTarget', { targetId }); + } + + client.ws.close(); +} catch (err) { + check('exception', false, String(err)); +} finally { + browser?.kill('SIGTERM'); + srv?.kill('SIGTERM'); + await sleep(1200); + rmSync(tmp, { recursive: true, force: true }); + const failed = results.filter((r) => !r.ok); + console.log(failed.length === 0 ? `\nVERIFY UI: ALL GREEN (captures dans ${outDir})` : `\nVERIFY UI: ${failed.length} FAILURE(S)`); + process.exit(failed.length === 0 ? 0 : 1); +} diff --git a/packages/server/src/app.ts b/packages/server/src/app.ts index 19cd5ad..0280013 100644 --- a/packages/server/src/app.ts +++ b/packages/server/src/app.ts @@ -183,7 +183,12 @@ export function buildApp(config: Config, db: Db, serverVersion: string): AppBund if (!isApi && !isWs) return; // statique : public (la SPA gère son écran de login) const origin = req.headers.origin; if (origin && !allowedOrigins.has(origin)) { - return reply.status(403).send({ error: { code: 'BAD_ORIGIN', message: `Origin not allowed: ${origin}` } }); + // Message ACTIONNABLE : c'est le premier mur de tout accès non-loopback (LAN, reverse proxy, + // Tailscale). Un « Origin not allowed » sec laissait chercher pendant des heures, alors que la + // correction tient en un flag. Le log serveur porte la même consigne. + const hint = `Origin not allowed: ${origin}. Restart the daemon with --allow-origin ${origin} (repeatable) to permit it.`; + req.log.warn({ origin, allowed: [...allowedOrigins] }, hint); + return reply.status(403).send({ error: { code: 'BAD_ORIGIN', message: hint } }); } req.authContext = authenticate(req); if (req.routeOptions.config.public) return; diff --git a/packages/server/src/cli/install.ts b/packages/server/src/cli/install.ts index 3a95c24..5d0c620 100644 --- a/packages/server/src/cli/install.ts +++ b/packages/server/src/cli/install.ts @@ -12,7 +12,7 @@ import { AuthService } from '../auth/service.js'; const SERVICE_NAME = 'arboretum'; const LAUNCHD_LABEL = 'fr.lidge.arboretum'; -export type SupportedPlatform = 'linux' | 'darwin'; +export type SupportedPlatform = 'linux' | 'darwin' | 'win32'; export interface InstallFlags { port?: string | undefined; @@ -29,15 +29,31 @@ export interface InstallFlags { // ─── Fonctions pures (génération de contenu / chemins) ──────────────────────────────── -/** macOS (launchd) et Linux (systemd) uniquement ; sinon throw avec un message pédagogique. */ +/** + * Superviseur par plateforme : systemd (Linux), launchd (macOS), Planificateur de tâches (Windows). + * Toujours en tant qu'utilisateur, jamais en root/SYSTEM. + */ export function detectPlatform(platform: NodeJS.Platform = process.platform): SupportedPlatform { - if (platform === 'linux' || platform === 'darwin') return platform; + if (platform === 'linux' || platform === 'darwin' || platform === 'win32') return platform; throw new Error( - `Automatic service installation is supported on Linux (systemd) and macOS (launchd) only.\n` + - `On ${platform}, run \`arboretum\` manually or set up your own supervisor.`, + `Automatic service installation is supported on Linux (systemd), macOS (launchd) and Windows ` + + `(Task Scheduler) only.\nOn ${platform}, run \`arboretum\` manually or set up your own supervisor.`, ); } +/** Nom de la tâche planifiée Windows (visible dans taskschd.msc). */ +export const WINDOWS_TASK_NAME = 'Arboretum'; + +/** + * Arguments `schtasks /Create` d'une tâche « au démarrage de session utilisateur ». `/RL LIMITED` + * garde les privilèges de l'utilisateur (jamais d'élévation), `/F` rend la commande idempotente. + * `/TR` attend UNE chaîne de commande : chaque token à espaces est donc quoté. + */ +export function windowsCreateArgs(input: { taskName: string; exec: string; scriptArgs: string[] }): string[] { + const command = [input.exec, ...input.scriptArgs].map(quoteIfNeeded).join(' '); + return ['/Create', '/TN', input.taskName, '/TR', command, '/SC', 'ONLOGON', '/RL', 'LIMITED', '/F']; +} + export function parseInstallArgs(argv: string[]): InstallFlags { const { values } = parseArgs({ args: argv, @@ -207,7 +223,8 @@ export function printUsage(version: string): void { Usage: arboretum [flags] Start the daemon (default) arboretum serve [flags] Start the daemon (explicit alias) - arboretum install [flags] Install & start a user service (systemd on Linux, launchd on macOS) + arboretum install [flags] Install & start a user service (systemd on Linux, launchd on macOS, + Task Scheduler on Windows) arboretum uninstall Stop & remove the user service arboretum status Show the service status arboretum help Show this help @@ -218,6 +235,9 @@ Daemon flags: --allow-origin Additional allowed Origin (repeatable) --db SQLite database path --vapid-contact VAPID contact subject for Web Push + --claude-home Override the Claude install root (default ~/.claude) + --print-token Print the access token on start (bootstrap it if missing) + --no-discover Disable repository auto-discovery (startup + periodic scan) --i-know-this-exposes-a-terminal Acknowledge a non-loopback bind (avoid, prefer Tailscale Serve) Install flags (daemon flags above are propagated to the service): @@ -301,6 +321,23 @@ export async function runInstall(argv: string[]): Promise { return; } + if (platform === 'win32') { + // Windows : Planificateur de tâches, déclenchement à l'ouverture de session. Pas de service NT + // (il tournerait hors session utilisateur, donc sans accès au profil ni au CLI `claude`). + const createArgs = windowsCreateArgs({ taskName: WINDOWS_TASK_NAME, exec, scriptArgs }); + if (flags.dryRun) { + console.log(`# commands:\nschtasks ${createArgs.join(' ')}`); + if (!flags.noEnable) console.log(`schtasks /Run /TN ${WINDOWS_TASK_NAME}`); + return; + } + bootstrapToken(serviceArgs); + run('schtasks.exe', createArgs, { check: true }); + console.log(`Registered scheduled task "${WINDOWS_TASK_NAME}" (runs at logon).`); + if (!flags.noEnable) run('schtasks.exe', ['/Run', '/TN', WINDOWS_TASK_NAME], { check: true }); + console.log(`\nArboretum task installed. Manage it with: schtasks /Query /TN ${WINDOWS_TASK_NAME}`); + return; + } + // macOS (launchd) const logs = launchdLogPaths(); const programArguments = [exec, ...scriptArgs]; @@ -352,6 +389,12 @@ export async function runUninstall(argv: string[]): Promise { console.log('Arboretum service removed.'); return; } + if (platform === 'win32') { + run('schtasks.exe', ['/End', '/TN', WINDOWS_TASK_NAME]); // best-effort : arrête l'instance courante + run('schtasks.exe', ['/Delete', '/TN', WINDOWS_TASK_NAME, '/F']); + console.log('Arboretum scheduled task removed.'); + return; + } const plistPath = launchAgentPlistPath(flags.label); const uid = process.getuid?.() ?? 0; run('launchctl', ['bootout', `gui/${uid}/${flags.label}`]); // best-effort @@ -371,6 +414,10 @@ export async function runStatus(argv: string[]): Promise { process.exitCode = code; return; } + if (platform === 'win32') { + process.exitCode = run('schtasks.exe', ['/Query', '/TN', WINDOWS_TASK_NAME, '/V', '/FO', 'LIST']); + return; + } const uid = process.getuid?.() ?? 0; const code = run('launchctl', ['print', `gui/${uid}/${flags.label}`]); console.log(`\nLogs: ${launchdLogPaths().out}`); diff --git a/packages/server/src/config.ts b/packages/server/src/config.ts index f2828a8..c02f9cb 100644 --- a/packages/server/src/config.ts +++ b/packages/server/src/config.ts @@ -25,6 +25,21 @@ export interface Config { autoDiscover: boolean; } +/** + * Racine des données applicatives, par plateforme. `XDG_DATA_HOME` reste prioritaire partout (l'app de + * bureau s'en sert pour isoler ses données). Sinon : `%APPDATA%` sur Windows (`~/.local/share` n'y a + * aucun sens et n'est ni sauvegardé ni migré par l'OS), `~/.local/share` ailleurs. + */ +export function defaultDataRoot( + platform: NodeJS.Platform = process.platform, + env: NodeJS.ProcessEnv = process.env, + home: string = homedir(), +): string { + if (env.XDG_DATA_HOME) return env.XDG_DATA_HOME; + if (platform === 'win32') return env.APPDATA ?? join(home, 'AppData', 'Roaming'); + return join(home, '.local', 'share'); +} + export function loadConfig(argv = process.argv.slice(2)): Config { const { values } = parseArgs({ args: argv, @@ -55,7 +70,7 @@ export function loadConfig(argv = process.argv.slice(2)): Config { ); } - const dataDir = join(process.env.XDG_DATA_HOME ?? join(homedir(), '.local', 'share'), 'arboretum'); + const dataDir = join(defaultDataRoot(), 'arboretum'); mkdirSync(dataDir, { recursive: true }); // La DB contient des secrets (server_secret, clé privée VAPID, hashs de tokens) : le dossier de // données ne doit jamais être lisible par d'autres utilisateurs du système. chmod best-effort diff --git a/packages/server/src/core/claude-launcher.ts b/packages/server/src/core/claude-launcher.ts index 6df84dd..28236f5 100644 --- a/packages/server/src/core/claude-launcher.ts +++ b/packages/server/src/core/claude-launcher.ts @@ -1,5 +1,5 @@ import { execFileSync } from 'node:child_process'; -import { accessSync, constants } from 'node:fs'; +import { accessSync, constants, existsSync } from 'node:fs'; export interface SpawnSpec { file: string; @@ -13,7 +13,7 @@ export interface SpawnOptions { resume?: { claudeSessionId: string; fork?: boolean }; /** répertoires supplémentaires à relier dans une seule session (P6) : `--add-dir ` répété. */ addDirs?: string[]; - /** chemin explicite du binaire `claude` (réglage UI) ; sinon résolution via PATH (`which`). */ + /** chemin explicite du binaire `claude` (réglage UI) ; sinon résolution via le PATH. */ claudeBinPath?: string | null; /** * Lancement de projet (« Démarrer le projet ») : au lieu de `bash --norc`, lance le shell de @@ -22,6 +22,8 @@ export interface SpawnOptions { * (PATH minimal, cf. resolveClaudeBin) : sinon `npm`/`docker` seraient introuvables. Ignoré pour claude. */ login?: boolean; + /** plateforme cible (injectable pour les tests) ; défaut `process.platform`. */ + platform?: NodeJS.Platform; } /** Diagnostic de résolution du binaire `claude` (exposé en lecture dans Réglages). */ @@ -36,16 +38,32 @@ export interface ClaudeBinDiagnostic { let cachedClaudeBin: string | null = null; +/** + * Commande de recherche dans le PATH selon la plateforme : `which` n'existe PAS sur Windows, c'est + * `where.exe` (qui peut renvoyer plusieurs lignes, la première étant la retenue). + */ +export function whichCommand(platform: NodeJS.Platform = process.platform): { file: string; args: string[] } { + return platform === 'win32' ? { file: 'where.exe', args: ['claude'] } : { file: 'which', args: ['claude'] }; +} + /** Recherche `claude` dans le PATH (sans throw). null si absent. */ -function findClaudeOnPath(): string | null { +function findClaudeOnPath(platform: NodeJS.Platform = process.platform): string | null { + const { file, args } = whichCommand(platform); try { - return execFileSync('which', ['claude'], { encoding: 'utf8' }).trim() || null; + const out = execFileSync(file, args, { encoding: 'utf8' }); + // `where.exe` liste toutes les correspondances : on garde la première. + return out.split(/\r?\n/).map((l) => l.trim()).find((l) => l.length > 0) ?? null; } catch { return null; } } -function isExecutable(path: string): boolean { +/** + * « Est-ce lançable ? ». Sur Windows, le bit d'exécution POSIX n'a aucun sens (NTFS n'en a pas) et + * `accessSync(X_OK)` y répond au hasard : on se contente donc de l'existence du fichier. + */ +function isExecutable(path: string, platform: NodeJS.Platform = process.platform): boolean { + if (platform === 'win32') return existsSync(path); try { accessSync(path, constants.X_OK); return true; @@ -57,9 +75,9 @@ function isExecutable(path: string): boolean { /** * Résout le binaire `claude`. Si `configuredPath` est fourni (réglage UI), il est utilisé tel quel * (validé exécutable, message clair sinon) et JAMAIS mis en cache (modifiable à chaud). Sinon : - * `which claude`, mis en cache. Un service systemd/launchd démarre avec un PATH minimal sans - * ~/.local/bin → `which claude` y échoue ; d'où le réglage de chemin explicite (et le PATH figé par - * `arboretum install`). + * recherche dans le PATH (`which` / `where.exe`), mise en cache. Un service systemd/launchd démarre + * avec un PATH minimal sans ~/.local/bin → la recherche y échoue ; d'où le réglage de chemin explicite + * (et le PATH figé par `arboretum install`). */ export function resolveClaudeBin(configuredPath?: string | null): string { if (configuredPath) { @@ -92,32 +110,48 @@ export function diagnoseClaudeBin(configuredPath?: string | null): ClaudeBinDiag const KNOWN_LOGIN_SHELLS = new Set(['bash', 'zsh', 'fish']); /** - * Shell de login pour « Démarrer le projet » : `$SHELL` s'il est un shell interactif connu - * (bash/zsh/fish), sinon fallback `bash`. Évite qu'un `$SHELL` exotique (dash…) sorte aussitôt - * avec `-l -i` et laisse un terminal vide. + * Shell interactif pour « Démarrer le projet ». + * + * POSIX : `$SHELL -l -i` s'il fait partie des shells connus supportant ces options (bash/zsh/fish), + * sinon `bash` (un `$SHELL=dash` sortirait aussitôt avec `-l -i`, laissant un terminal vide). + * + * Windows : PowerShell, en restant attaché après la commande auto-tapée (`-NoExit`), avec repli sur + * `cmd.exe /K`. `%COMSPEC%` n'est PAS utilisé comme shell de lancement : il pointe cmd.exe, qui ne + * charge aucun profil utilisateur. La commande est ensuite auto-tapée par le PtyManager, exactement + * comme sous POSIX · le mécanisme est indépendant du shell. */ -function loginShell(): string { - const shell = process.env.SHELL; - if (shell && KNOWN_LOGIN_SHELLS.has(shell.split('/').pop() ?? '')) return shell; - return 'bash'; +export function resolveInteractiveShell( + platform: NodeJS.Platform = process.platform, + env: NodeJS.ProcessEnv = process.env, +): { file: string; args: string[] } { + if (platform === 'win32') { + const pwsh = env.ARBORETUM_SHELL ?? 'powershell.exe'; + return { file: pwsh, args: ['-NoLogo', '-NoExit'] }; + } + const shell = env.SHELL; + const file = shell && KNOWN_LOGIN_SHELLS.has(shell.split('/').pop() ?? '') ? shell : 'bash'; + return { file, args: ['-l', '-i'] }; +} + +/** Shell non interactif « neutre » (terminal simple, hors lancement de projet). */ +export function resolvePlainShell(platform: NodeJS.Platform = process.platform): { file: string; args: string[] } { + if (platform === 'win32') return { file: 'powershell.exe', args: ['-NoLogo', '-NoExit'] }; + return { file: 'bash', args: ['--norc'] }; } /** Module volontairement abstrait : le plan B « BYO API key / Agent SDK » se brancherait ici. */ export function buildSpawnSpec(opts: SpawnOptions): SpawnSpec { + const platform = opts.platform ?? process.platform; const env: NodeJS.ProcessEnv = { ...process.env, TERM: 'xterm-256color', COLORTERM: 'truecolor', }; if (opts.command === 'bash') { - // Lancement de projet : shell de login interactif de l'utilisateur (charge PATH/nvm/asdf). - // `-l` (login) exécute les profils, `-i` (interactif) reste attaché après la commande auto-tapée. - // On n'utilise `$SHELL` que s'il fait partie des shells interactifs connus supportant `-l -i` - // (bash/zsh/fish) ; sinon fallback bash (ex. `$SHELL=dash` sortirait avec `-l -i`). - if (opts.login) { - return { file: loginShell(), args: ['-l', '-i'], env }; - } - return { file: 'bash', args: ['--norc'], env }; + // `'bash'` désigne « le shell de la machine », pas littéralement bash : le contrat d'API reste + // stable (claude|bash) et c'est ici qu'on choisit le shell réel par plateforme. + const { file, args } = opts.login ? resolveInteractiveShell(platform) : resolvePlainShell(platform); + return { file, args, env }; } const args: string[] = []; if (opts.resume) { diff --git a/packages/server/src/core/fs-watcher.ts b/packages/server/src/core/fs-watcher.ts index a50936a..efd196b 100644 --- a/packages/server/src/core/fs-watcher.ts +++ b/packages/server/src/core/fs-watcher.ts @@ -7,9 +7,33 @@ import { resolve, sep, join } from 'node:path'; import chokidar, { type FSWatcher } from 'chokidar'; import { resolveGitDir } from './git.js'; -const DEFAULT_MAX_WATCHERS = 32; +// Plafond du pool : l'arbre de projets peut désormais « regarder » tous les worktrees des dépôts +// dépliés (et non plus le seul worktree du panneau Git), il faut donc de la marge. Les entrées +// épinglées (session vivante, checkout principal) ne sont jamais évincées, cf. evictIfNeeded. +const DEFAULT_MAX_WATCHERS = 64; const DEBOUNCE_MS = 200; +/** + * Répertoires lourds ignorés en plus de `.git` : ils concentrent l'essentiel des descripteurs inotify + * sans jamais rien apprendre sur le statut git. Liste volontairement CONSERVATRICE (pas de `dist`, + * `build`, `out` ni `vendor`, qui sont versionnés dans certains projets : les ignorer ferait manquer + * un vrai changement). + */ +const IGNORED_DIRS = [ + 'node_modules', + '.venv', + 'venv', + '__pycache__', + '.turbo', + '.cache', + '.pnpm-store', + 'coverage', + '.next', + '.nuxt', + '.output', + 'target', +]; + export interface FsWatcherEvents { /** le contenu d'un worktree surveillé a changé (édition, staging, checkout externe…). */ worktree_fs_change: [{ repoId: string; path: string }]; @@ -33,11 +57,14 @@ interface WatchEntry { /** * Ignore tout sous `.git/` SAUF `HEAD` et `index` (⇒ on détecte le `git checkout` externe et le - * staging) ainsi que `node_modules`. chokidar n'ignore pas le dossier `.git` lui-même afin de - * pouvoir descendre jusqu'à `HEAD`/`index`, mais saute ses sous-dossiers volumineux (objects…). + * staging) ainsi que les répertoires de `IGNORED_DIRS`. chokidar n'ignore pas le dossier `.git` + * lui-même afin de pouvoir descendre jusqu'à `HEAD`/`index`, mais saute ses sous-dossiers + * volumineux (objects…). */ export function isIgnoredPath(p: string): boolean { - if (p.includes(`${sep}node_modules${sep}`) || p.endsWith(`${sep}node_modules`)) return true; + for (const dir of IGNORED_DIRS) { + if (p.includes(`${sep}${dir}${sep}`) || p.endsWith(`${sep}${dir}`)) return true; + } if (p.includes(`${sep}.git${sep}`)) { return !(p.endsWith(`${sep}HEAD`) || p.endsWith(`${sep}index`)); } diff --git a/packages/server/src/core/git-auth.ts b/packages/server/src/core/git-auth.ts index 4072b96..f5d9ab9 100644 --- a/packages/server/src/core/git-auth.ts +++ b/packages/server/src/core/git-auth.ts @@ -1,7 +1,7 @@ // Préparation d'un environnement d'authentification git ÉPHÉMÈRE (P12). HTTPS (pat/app_password) : -// les identifiants sont fournis via GIT_ASKPASS (script 0o700 lisant deux variables d'env), JAMAIS -// dans l'URL ni dans `.git/config`. GIT_TERMINAL_PROMPT=0 (pas d'invite bloquante). Le script est -// supprimé en `finally` ; le secret ne transite que par l'env du process enfant (jamais loggé). +// les identifiants sont fournis via GIT_ASKPASS (script à permissions restreintes lisant deux variables +// d'env), JAMAIS dans l'URL ni dans `.git/config`. GIT_TERMINAL_PROMPT=0 (pas d'invite bloquante). Le +// script est supprimé en `finally` ; le secret ne transite que par l'env du process enfant (jamais loggé). import { mkdtemp, writeFile, rm, chmod } from 'node:fs/promises'; import { tmpdir } from 'node:os'; import { join } from 'node:path'; @@ -11,20 +11,40 @@ import type { GitAuth } from './git-clients/index.js'; // Identité HTTPS par défaut quand l'utilisateur n'a pas fourni de username (token-as-password). const SERVICE_DEFAULT_USER: Record = { github: 'x-access-token', gitlab: 'oauth2', gitea: 'oauth2' }; +const ASKPASS_SH = "#!/bin/sh\ncase \"$1\" in\n Username*) printf '%s' \"$ARB_GIT_USER\" ;;\n *) printf '%s' \"$ARB_GIT_PASS\" ;;\nesac\n"; + +// Équivalent Windows : git appelle GIT_ASKPASS avec l'invite en argument. `echo` de cmd.exe ajoute un +// saut de ligne que git tolère (il trime la réponse). `~1` = premier argument sans les guillemets. +const ASKPASS_CMD = [ + '@echo off', + 'echo %~1 | findstr /b /i "Username" >nul', + 'if %errorlevel%==0 (echo %ARB_GIT_USER%) else (echo %ARB_GIT_PASS%)', + '', +].join('\r\n'); + +/** + * Nom et contenu du script askpass selon la plateforme. Un `.sh` avec shebang n'est PAS exécutable sur + * Windows : sans cette variante `.cmd`, tout clone/push HTTPS par jeton y échouait silencieusement + * (git n'obtenait aucun identifiant et abandonnait, GIT_TERMINAL_PROMPT étant à 0). + */ +export function askpassScript(platform: NodeJS.Platform = process.platform): { name: string; content: string; mode: number } { + return platform === 'win32' + ? { name: 'askpass.cmd', content: ASKPASS_CMD, mode: 0o700 } + : { name: 'askpass.sh', content: ASKPASS_SH, mode: 0o700 }; +} + export async function withGitAuth( service: GitService, auth: GitAuth, fn: (env: NodeJS.ProcessEnv) => Promise, ): Promise { const dir = await mkdtemp(join(tmpdir(), 'arb-gitauth-')); - const askpass = join(dir, 'askpass.sh'); + const script = askpassScript(); + const askpass = join(dir, script.name); const user = auth.username || SERVICE_DEFAULT_USER[service]; - await writeFile( - askpass, - "#!/bin/sh\ncase \"$1\" in\n Username*) printf '%s' \"$ARB_GIT_USER\" ;;\n *) printf '%s' \"$ARB_GIT_PASS\" ;;\nesac\n", - { mode: 0o700 }, - ); - await chmod(askpass, 0o700); + await writeFile(askpass, script.content, { mode: script.mode }); + // chmod best-effort : sans effet sur NTFS (comme ailleurs dans le code, cf. config.ts). + await chmod(askpass, script.mode).catch(() => {}); const env: NodeJS.ProcessEnv = { ...process.env, GIT_ASKPASS: askpass, diff --git a/packages/server/src/core/git.ts b/packages/server/src/core/git.ts index 1cad80d..d060de6 100644 --- a/packages/server/src/core/git.ts +++ b/packages/server/src/core/git.ts @@ -2,7 +2,7 @@ // les chemins/refs utilisateur. Fonctions pures sans état, prenant un cwd déjà validé par l'appelant. import { execFile, spawn } from 'node:child_process'; import { resolve, sep } from 'node:path'; -import type { WorktreeGitStatus, WorktreeBranchAction, WorktreeBranchMode, FileChange } from '@arboretum/shared'; +import type { WorktreeGitStatus, WorktreeBranchAction, WorktreeBranchMode, FileChange, CommitEntry } from '@arboretum/shared'; const GIT_TIMEOUT_MS = 10_000; // `push` peut dialoguer avec un remote (réseau) : on lui laisse une marge bien plus large. @@ -502,6 +502,81 @@ export async function lastCommit(worktreePath: string): Promise<{ hash: string; return { hash: r.stdout.slice(0, idx), subject: r.stdout.slice(idx + 1).replace(/\n$/, '') }; } +const MAX_LOG_LIMIT = 200; + +/** + * Hash de commit : hexadécimal, 4 à 64 caractères. Bornage strict AVANT de le passer à git · un + * identifiant libre ouvrirait la porte à des révisions arbitraires ou à des options déguisées (`-…`). + */ +export function isValidCommitish(hash: string): boolean { + return /^[0-9a-f]{4,64}$/i.test(hash); +} + +/** + * Découpe la sortie de `git log -z --format=` en enregistrements. Isolée et + * pure pour être testable sans dépôt : c'est le point délicat (avec `-z`, les séparateurs de champs et + * d'enregistrements sont tous des NUL, il faut donc compter les champs). + */ +export function parseLogZ(stdout: string, fieldsPerCommit: number): string[][] { + const fields = stdout.split('\0'); + const out: string[][] = []; + for (let i = 0; i + fieldsPerCommit - 1 < fields.length; i += fieldsPerCommit) { + const rec = fields.slice(i, i + fieldsPerCommit); + if ((rec[0] ?? '').trim() === '') continue; + out.push(rec); + } + return out; +} + +/** + * Historique de la branche du worktree. `-z` + champs séparés par NUL : un sujet contenant un saut de + * ligne ne peut pas casser le parsing. `unpushedCount` = commits de tête pas encore poussés + * (`@{u}..HEAD`) ; `hasUpstream: false` signifie qu'AUCUN commit n'est publié (branche purement locale), + * ce que l'UI marque en bloc plutôt que de compter tout l'historique. + */ +export async function commitLog( + worktreePath: string, + opts: { limit?: number; skip?: number } = {}, +): Promise<{ commits: CommitEntry[]; unpushedCount: number; hasUpstream: boolean }> { + const limit = Math.min(Math.max(1, Math.trunc(opts.limit ?? 30)), MAX_LOG_LIMIT); + const skip = Math.max(0, Math.trunc(opts.skip ?? 0)); + const r = await gitRaw(worktreePath, [ + 'log', + `--max-count=${limit}`, + `--skip=${skip}`, + '-z', + '--format=%H%x00%h%x00%an%x00%aI%x00%s', + ]); + if (r.code !== 0) return { commits: [], unpushedCount: 0, hasUpstream: false }; // dépôt sans commit + const commits: CommitEntry[] = parseLogZ(r.stdout, 5).map((f) => ({ + hash: (f[0] ?? '').trim(), + shortHash: f[1] ?? '', + author: f[2] ?? '', + date: f[3] ?? '', + subject: (f[4] ?? '').replace(/\n$/, ''), + })); + const upstream = await gitRaw(worktreePath, ['rev-parse', '--abbrev-ref', '--symbolic-full-name', '@{u}']); + if (upstream.code !== 0) return { commits, unpushedCount: 0, hasUpstream: false }; + const count = await gitRaw(worktreePath, ['rev-list', '--count', '@{u}..HEAD']); + return { commits, unpushedCount: count.code === 0 ? Number(count.stdout.trim()) || 0 : 0, hasUpstream: true }; +} + +/** + * Diff complet d'un commit (`git show`), borné exactement comme `fileDiff` : refus des binaires, + * troncature au-delà de MAX_DIFF_BYTES. Le résultat étant un diff unifié, il passe dans le même + * parseur et la même vue que les diffs de fichiers. + */ +export async function commitDiff(worktreePath: string, hash: string): Promise<{ diff: string; binary: boolean; tooLarge: boolean }> { + if (!isValidCommitish(hash)) throw new Error(`Invalid commit hash: ${hash}`); + const out = await gitRaw(worktreePath, ['show', '--no-color', '--format=', hash]); + if (out.code !== 0) throw new Error(`Unknown commit: ${hash}`); + const raw = out.stdout; + const binary = /^Binary files .* differ$/m.test(raw) || raw.includes('GIT binary patch'); + if (binary) return { diff: '', binary: true, tooLarge: false }; + if (raw.length > MAX_DIFF_BYTES) return { diff: raw.slice(0, MAX_DIFF_BYTES), binary: false, tooLarge: true }; + return { diff: raw, binary: false, tooLarge: false }; +} + /** true si le HEAD courant n'est pas encore poussé (amend autorisé). Sans upstream → true. */ export async function isUnpushed(worktreePath: string): Promise { try { diff --git a/packages/server/src/core/pty-manager.ts b/packages/server/src/core/pty-manager.ts index 0584597..3b38461 100644 --- a/packages/server/src/core/pty-manager.ts +++ b/packages/server/src/core/pty-manager.ts @@ -1,4 +1,5 @@ import { EventEmitter } from 'node:events'; +import { execFile } from 'node:child_process'; import { existsSync, statSync } from 'node:fs'; import { randomUUID } from 'node:crypto'; import { homedir } from 'node:os'; @@ -372,17 +373,24 @@ export class PtyManager extends EventEmitter { const s = this.live.get(id); if (!s || s.exited) return false; try { - process.kill(s.proc.pid, 'SIGTERM'); + // Windows n'a pas de signaux : node-pty traduit `kill()` en fermeture de la pseudo-console, ce + // qui laisse échapper les petits-enfants (un `npm run dev` lancé dans le shell). Le SIGKILL + // différé est donc remplacé par un `taskkill /T` qui tue l'ARBRE complet. + if (process.platform === 'win32') s.proc.kill(); + else process.kill(s.proc.pid, 'SIGTERM'); } catch { return false; } s.killTimer ??= setTimeout(() => { - if (!s.exited) { - try { + if (s.exited) return; + try { + if (process.platform === 'win32') { + execFile('taskkill.exe', ['/PID', String(s.proc.pid), '/T', '/F'], () => {}); + } else { process.kill(s.proc.pid, 'SIGKILL'); - } catch { - /* déjà mort */ } + } catch { + /* déjà mort */ } }, KILL_GRACE_MS); return true; diff --git a/packages/server/src/core/session-match.ts b/packages/server/src/core/session-match.ts new file mode 100644 index 0000000..ceb97d8 --- /dev/null +++ b/packages/server/src/core/session-match.ts @@ -0,0 +1,33 @@ +// Adaptateur serveur de la corrélation session ↔ worktree : la RÈGLE vit dans `@arboretum/shared` +// (`path-match.ts`, partagée avec le front et l'extension) ; ici on se contente de normaliser les +// chemins avec `resolve()` avant de la lui passer, puisque le serveur manipule des chemins venant de +// git, de la base et de requêtes (fins de slash, `..`, chemins relatifs au cwd du process). +import { resolve } from 'node:path'; +import { + containsPath as sharedContains, + findWorktreeForCwd as sharedFind, + sessionBelongsToWorktree as sharedBelongs, +} from '@arboretum/shared'; + +export function containsPath(parent: string, child: string): boolean { + return sharedContains(resolve(parent), resolve(child)); +} + +export function sessionBelongsToWorktree( + session: { cwd: string; addedDirs?: string[] }, + worktreePath: string, + others: string[] = [], +): boolean { + return sharedBelongs( + { cwd: resolve(session.cwd), ...(session.addedDirs ? { addedDirs: session.addedDirs.map((d) => resolve(d)) } : {}) }, + resolve(worktreePath), + others.map((p) => resolve(p)), + ); +} + +export function findWorktreeForCwd(cwd: string, worktrees: T[]): T | null { + // On résout une copie pour la comparaison, puis on renvoie l'objet d'origine (le chemin brut est ce + // que le reste du code attend, notamment les clés du watcher FS). + const normalized = worktrees.map((w) => ({ w, path: resolve(w.path) })); + return sharedFind(resolve(cwd), normalized)?.w ?? null; +} diff --git a/packages/server/src/core/worktree-manager.ts b/packages/server/src/core/worktree-manager.ts index f3aa48f..51179d3 100644 --- a/packages/server/src/core/worktree-manager.ts +++ b/packages/server/src/core/worktree-manager.ts @@ -28,6 +28,8 @@ import { amendCommit, cleanFiles, commitAll, + commitDiff, + commitLog, commitStaged, defaultBranch, fetchRemote, @@ -38,6 +40,7 @@ import { isSafeRelativePath, isUnpushed, isValidBranchName, + isValidCommitish, listBranches, listChanges, listWorktrees, @@ -53,7 +56,8 @@ import { type ParsedWorktree, } from './git.js'; import type { FsWatcherService } from './fs-watcher.js'; -import type { FileChange, FileDiffResponse } from '@arboretum/shared'; +import { findWorktreeForCwd, sessionBelongsToWorktree } from './session-match.js'; +import type { CommitDiffResponse, FileChange, FileDiffResponse, WorktreeLogResponse } from '@arboretum/shared'; const FACTS_TTL_MS = 2500; const HOOK_TIMEOUT_MS = 5 * 60_000; @@ -153,6 +157,8 @@ export class WorktreeManager extends EventEmitter { private readonly locks = new Map>(); /** Scan de découverte en cours : coalesce boot + bouton + périodique sur un seul scan. */ private scanInFlight: Promise | null = null; + /** Worktree épinglé au watcher FS pour chaque session vivante (clé = id de session). */ + private readonly pinnedSessions = new Map(); constructor( private readonly db: Db, @@ -170,6 +176,46 @@ export class WorktreeManager extends EventEmitter { if (row) void this.emitWorktree(row, path).catch(() => {}); this.emit('worktree_changes', { repoId, path }); }); + // Une session vivante rend son worktree « actif » : on épingle son watcher FS pour que les + // compteurs git restent temps réel même si aucun client ne regarde ce worktree. C'est le cas + // nominal du travail en CLI : l'agent écrit dans un worktree de feature pendant qu'on regarde + // ailleurs. Sans cette épingle, le point « modifié » de l'arbre restait figé sur le dernier + // listing REST. + this.ptyManager.on('session_update', (s) => { + void this.syncSessionPin(s).catch(() => {}); + }); + } + + /** Épingle (session vivante) ou libère (session terminée) le watcher FS du worktree d'une session. */ + private async syncSessionPin(s: SessionSummary): Promise { + if (!this.fsWatcher) return; + const pinned = this.pinnedSessions.get(s.id); + if (!s.live) { + if (!pinned) return; + this.pinnedSessions.delete(s.id); + this.fsWatcher.unpinSession(pinned.repoId, pinned.path); + return; + } + if (pinned) return; // déjà épinglé : `session_update` bat au rythme de l'activité + const target = await this.resolveWorktreeForCwd(s.cwd); + if (!target) return; // session hors de tout repo enregistré + this.pinnedSessions.set(s.id, target); + this.fsWatcher.pinSession(target.repoId, target.path); + } + + /** + * Worktree connu (tous repos non masqués) contenant ce cwd, le plus spécifique. Un worktree lié vit + * souvent HORS de l'arborescence de son repo : on ne peut donc pas écarter un repo sur son seul + * chemin, il faut ses worktrees réels (servis par le cache court partagé avec les listings). + */ + private async resolveWorktreeForCwd(cwd: string): Promise<{ repoId: string; path: string } | null> { + const rows = this.db.prepare('SELECT id, path FROM repos WHERE hidden = 0').all() as unknown as Array<{ id: string; path: string }>; + const candidates: Array<{ repoId: string; path: string }> = []; + for (const row of rows) { + const facts = await this.repoFacts(row).catch(() => []); + for (const f of facts) candidates.push({ repoId: row.id, path: f.w.path }); + } + return findWorktreeForCwd(cwd, candidates); } // ---- repos ---- @@ -336,20 +382,28 @@ export class WorktreeManager extends EventEmitter { // ---- worktrees ---- /** - * Sessions (managées + découvertes) dont le cwd correspond à ce chemin de worktree. + * Sessions (managées + découvertes) rattachées à ce worktree : cwd dans le worktree (y compris un + * sous-répertoire de « Démarrer le projet ») ou worktree relié en `--add-dir` par une session de + * groupe · voir `sessionBelongsToWorktree`. `siblings` = les autres worktrees du repo, indispensables + * pour qu'un worktree imbriqué ne voie pas ses sessions attribuées aussi au checkout principal. * Les sessions explicitement masquées (`hidden`) sont exclues, cohérent avec `/api/v1/sessions` * (sans quoi le masquage était ignoré dans les fiches worktree). Le tri managées/externes est laissé * au client (interrupteur « afficher les externes »), qui dispose du champ `source`. La garde de * suppression réclame en revanche TOUTES les sessions vivantes (`includeHidden`) pour rester sûre. */ - private sessionsForCwd(path: string, opts?: { includeHidden?: boolean }): SessionSummary[] { - const rp = resolve(path); + private sessionsForCwd(path: string, opts?: { includeHidden?: boolean; siblings?: string[] }): SessionSummary[] { return mergeSessions(this.ptyManager.list(), this.discovery.list()) - .filter((s) => resolve(s.cwd) === rp) + .filter((s) => sessionBelongsToWorktree(s, path, opts?.siblings ?? [])) .filter((s) => opts?.includeHidden || !s.hidden); } - private toSummary(repoId: string, repoPath: string, w: ParsedWorktree, status: WorktreeGitStatus): WorktreeSummary { + private toSummary( + repoId: string, + repoPath: string, + w: ParsedWorktree, + status: WorktreeGitStatus, + siblings: string[] = [], + ): WorktreeSummary { return { repoId, path: w.path, @@ -360,11 +414,11 @@ export class WorktreeManager extends EventEmitter { prunable: w.prunable, isMain: resolve(w.path) === resolve(repoPath), git: status, - sessions: this.sessionsForCwd(w.path), + sessions: this.sessionsForCwd(w.path, { siblings }), }; } - private async repoFacts(row: RepoRow, noCache = false): Promise> { + private async repoFacts(row: { id: string; path: string }, noCache = false): Promise> { const cached = this.factsCache.get(row.id); if (!noCache && cached && Date.now() - cached.at < FACTS_TTL_MS) return cached.facts; const parsed = (await listWorktrees(row.path)).filter((w) => !w.bare); @@ -377,7 +431,8 @@ export class WorktreeManager extends EventEmitter { const row = this.getRepoRow(repoId); if (!row) return []; const facts = await this.repoFacts(row, noCache); - return facts.map(({ w, status }) => this.toSummary(row.id, row.path, w, status)); + const paths = facts.map(({ w }) => w.path); + return facts.map(({ w, status }) => this.toSummary(row.id, row.path, w, status, paths)); } async listAllWorktrees(): Promise { @@ -411,9 +466,19 @@ export class WorktreeManager extends EventEmitter { } private async emitWorktree(row: RepoRow, path: string): Promise { - const w = await this.findWorktree(row, path); + // On liste tous les worktrees du repo (et pas seulement celui visé) pour désambiguïser la + // corrélation des sessions entre worktrees imbriqués (cf. sessionsForCwd). + const all = (await listWorktrees(row.path)).filter((w) => !w.bare); + const rp = resolve(path); + const w = all.find((x) => resolve(x.path) === rp); if (!w) return null; - const summary = this.toSummary(row.id, row.path, w, await worktreeStatus(w.path)); + const summary = this.toSummary( + row.id, + row.path, + w, + await worktreeStatus(w.path), + all.map((x) => x.path), + ); this.emit('worktree_update', { repoId: row.id, worktree: summary }); return summary; } @@ -520,6 +585,25 @@ export class WorktreeManager extends EventEmitter { return listChanges(w.path); } + /** Historique de la branche du worktree (lecture, hors lock) : « ce qui a déjà été acté ». */ + async getWorktreeLog(repoId: string, path: string, opts: { limit?: number; skip?: number }): Promise { + const { w } = await this.requireWorktree(repoId, path); + const { commits, unpushedCount, hasUpstream } = await commitLog(w.path, opts); + return { repoId, path: w.path, commits, unpushedCount, hasUpstream }; + } + + /** Diff unifié complet d'un commit (lecture, hors lock). Le hash est validé par la couche git. */ + async getCommitDiff(repoId: string, path: string, hash: string): Promise { + const { w } = await this.requireWorktree(repoId, path); + if (!isValidCommitish(hash)) throw httpError(400, 'BAD_COMMIT', 'Invalid commit hash'); + try { + const d = await commitDiff(w.path, hash); + return { path: w.path, commit: hash, binary: d.binary, tooLarge: d.tooLarge, diff: d.diff }; + } catch (err) { + throw httpError(404, 'NOT_FOUND', (err as Error).message); + } + } + /** Diff unifié d'un fichier (détecte untracked → `git diff --no-index`). Lecture, hors lock. */ async getFileDiff(repoId: string, path: string, file: string, staged: boolean): Promise { const { w } = await this.requireWorktree(repoId, path); @@ -813,8 +897,10 @@ export class WorktreeManager extends EventEmitter { const w = await this.findWorktree(row, path); if (!w) throw httpError(404, 'NOT_FOUND', 'No such worktree under this repo'); if (resolve(w.path) === resolve(row.path)) throw httpError(400, 'IS_MAIN_WORKTREE', 'Cannot remove the main worktree'); - // garde-fou : une session vivante tourne dans ce worktree → exiger une confirmation explicite. - if (!force && this.sessionsForCwd(w.path, { includeHidden: true }).some((s) => s.live)) { + // garde-fou : une session vivante tourne dans ce worktree (ou dans un de ses sous-répertoires, ou + // le relie en `--add-dir`) → exiger une confirmation explicite. + const siblings = (await listWorktrees(row.path)).map((x) => x.path); + if (!force && this.sessionsForCwd(w.path, { includeHidden: true, siblings }).some((s) => s.live)) { throw httpError(409, 'SESSION_LIVE_IN_WORKTREE', 'A live session runs in this worktree: pass force to delete anyway'); } return this.withLock(repoId, async () => { diff --git a/packages/server/src/routes/git.ts b/packages/server/src/routes/git.ts index 2ea04d4..105aa14 100644 --- a/packages/server/src/routes/git.ts +++ b/packages/server/src/routes/git.ts @@ -5,7 +5,9 @@ import type { FastifyInstance } from 'fastify'; import type { WorktreeChangesResponse, + CommitDiffResponse, FileDiffResponse, + WorktreeLogResponse, WorktreeFilesRequest, DiscardFilesRequest, FetchWorktreeRequest, @@ -33,12 +35,48 @@ export function registerGitRoutes(app: FastifyInstance, wt: WorktreeManager, db: } }); - // Diff unifié d'un fichier (staged ou non ; untracked détecté côté manager). + // Historique de la branche du worktree (« ce qui a déjà été acté », + ce qui n'est pas poussé). + app.get('/api/v1/repos/:id/worktrees/log', async (req, reply) => { + const { id } = req.params as { id: string }; + const q = req.query as { path?: string; limit?: string; skip?: string }; + if (typeof q.path !== 'string' || q.path === '') { + return reply.status(400).send({ error: { code: 'BAD_REQUEST', message: 'path is required' } }); + } + // Bornes appliquées côté couche git (limite dure) : ici on se contente de convertir. + const limit = q.limit !== undefined ? Number(q.limit) : undefined; + const skip = q.skip !== undefined ? Number(q.skip) : undefined; + if ((limit !== undefined && !Number.isFinite(limit)) || (skip !== undefined && !Number.isFinite(skip))) { + return reply.status(400).send({ error: { code: 'BAD_REQUEST', message: 'limit and skip must be numbers' } }); + } + try { + const res = await wt.getWorktreeLog(id, q.path, { + ...(limit !== undefined ? { limit } : {}), + ...(skip !== undefined ? { skip } : {}), + }); + return reply.send(res satisfies WorktreeLogResponse); + } catch (err) { + return sendManagerError(reply, err); + } + }); + + // Diff unifié : d'un fichier (`file`), ou d'un commit entier (`commit`). Les deux formes renvoient un + // diff unifié, donc le même parseur et la même vue côté client. app.get('/api/v1/repos/:id/worktrees/diff', async (req, reply) => { const { id } = req.params as { id: string }; - const q = req.query as { path?: string; file?: string; staged?: string }; - if (typeof q.path !== 'string' || q.path === '' || typeof q.file !== 'string' || q.file === '') { - return reply.status(400).send({ error: { code: 'BAD_REQUEST', message: 'path and file are required' } }); + const q = req.query as { path?: string; file?: string; staged?: string; commit?: string }; + if (typeof q.path !== 'string' || q.path === '') { + return reply.status(400).send({ error: { code: 'BAD_REQUEST', message: 'path is required' } }); + } + if (typeof q.commit === 'string' && q.commit !== '') { + try { + const res = await wt.getCommitDiff(id, q.path, q.commit); + return reply.send(res satisfies CommitDiffResponse); + } catch (err) { + return sendManagerError(reply, err); + } + } + if (typeof q.file !== 'string' || q.file === '') { + return reply.status(400).send({ error: { code: 'BAD_REQUEST', message: 'file or commit is required' } }); } const staged = q.staged === '1' || q.staged === 'true'; try { diff --git a/packages/server/test/cli-install.test.ts b/packages/server/test/cli-install.test.ts index 9b714fd..a75f600 100644 --- a/packages/server/test/cli-install.test.ts +++ b/packages/server/test/cli-install.test.ts @@ -12,6 +12,7 @@ import { xmlEscape, systemdUnitPath, launchAgentPlistPath, + windowsCreateArgs, } from '../src/cli/install.js'; describe('cli install · detectPlatform', () => { @@ -20,9 +21,10 @@ describe('cli install · detectPlatform', () => { expect(detectPlatform('darwin')).toBe('darwin'); }); - it('rejette les autres plateformes avec un message clair', () => { - expect(() => detectPlatform('win32')).toThrow(/Linux \(systemd\) and macOS \(launchd\)/); + it('rejette les plateformes sans superviseur connu, avec un message clair', () => { + // win32 est désormais SUPPORTÉ (Planificateur de tâches) : cf. la suite dédiée plus bas. expect(() => detectPlatform('freebsd')).toThrow(/freebsd/); + expect(() => detectPlatform('aix')).toThrow(/Task Scheduler/); }); }); @@ -192,3 +194,30 @@ describe('cli install · chemins', () => { ); }); }); + +describe('P14 · Windows (Planificateur de tâches)', () => { + it('detectPlatform accepte win32', () => { + expect(detectPlatform('win32')).toBe('win32'); + expect(() => detectPlatform('freebsd')).toThrow(/Task Scheduler/); + }); + + it('windowsCreateArgs : tâche à l’ouverture de session, sans élévation, idempotente', () => { + const args = windowsCreateArgs({ + taskName: 'Arboretum', + exec: 'C:\\Program Files\\nodejs\\node.exe', + scriptArgs: ['C:\\app\\dist\\index.js', '--port', '7317'], + }); + expect(args).toEqual([ + '/Create', + '/TN', + 'Arboretum', + '/TR', + '"C:\\Program Files\\nodejs\\node.exe" C:\\app\\dist\\index.js --port 7317', + '/SC', + 'ONLOGON', + '/RL', + 'LIMITED', + '/F', + ]); + }); +}); diff --git a/packages/server/test/git.test.ts b/packages/server/test/git.test.ts index 281d192..e9b4aa0 100644 --- a/packages/server/test/git.test.ts +++ b/packages/server/test/git.test.ts @@ -32,6 +32,10 @@ import { amendCommit, lastCommit, isUnpushed, + commitLog, + commitDiff, + isValidCommitish, + parseLogZ, } from '../src/core/git.js'; import { appendFileSync } from 'node:fs'; @@ -318,3 +322,79 @@ describe('addWorktree : résolution auto (créer / réutiliser)', () => { await expect(addWorktree(repo, { path: wt, branch: 'dup', mode: 'create' })).rejects.toBeDefined(); }); }); + +describe('P14 · historique (commitLog / commitDiff)', () => { + it('parseLogZ : découpe par paquets de champs et tolère un sujet multi-lignes', () => { + const stdout = ['h1', 's1', 'auteur', '2026-01-01T00:00:00Z', 'sujet\navec saut', 'h2', 's2', 'a2', 'd2', 'sujet 2'].join('\0'); + const recs = parseLogZ(stdout, 5); + expect(recs).toHaveLength(2); + expect(recs[0]?.[4]).toBe('sujet\navec saut'); + expect(recs[1]?.[0]).toBe('h2'); + }); + + it('parseLogZ : ignore un enregistrement final vide (NUL de fin)', () => { + expect(parseLogZ(['h', 's', 'a', 'd', 'sub', ''].join('\0'), 5)).toHaveLength(1); + }); + + it('isValidCommitish : hex 4-64 uniquement (refuse une option déguisée)', () => { + expect(isValidCommitish('abc1234')).toBe(true); + expect(isValidCommitish('ABCDEF12')).toBe(true); + expect(isValidCommitish('abc')).toBe(false); + expect(isValidCommitish('--upload-pack=x')).toBe(false); + expect(isValidCommitish('HEAD')).toBe(false); + expect(isValidCommitish('main..HEAD')).toBe(false); + }); + + it('commitLog : ordre récent → ancien, champs remplis, sans upstream tout est local', async () => { + const repo = makeTmpRepo(); + appendFileSync(join(repo, 'README.md'), 'second\n'); + await commitAll(repo, 'deuxième commit'); + + const { commits, hasUpstream, unpushedCount } = await commitLog(repo); + expect(commits).toHaveLength(2); + expect(commits[0]?.subject).toBe('deuxième commit'); + expect(commits[1]?.subject).toBe('init'); + expect(commits[0]?.hash).toMatch(/^[0-9a-f]{40}$/); + expect(commits[0]?.shortHash.length).toBeGreaterThanOrEqual(7); + expect(commits[0]?.author).toBe('Test'); + expect(Number.isNaN(Date.parse(commits[0]?.date ?? ''))).toBe(false); + // branche locale sans remote : aucun commit n'est publié + expect(hasUpstream).toBe(false); + expect(unpushedCount).toBe(0); + }); + + it('commitLog : limit et skip bornent la fenêtre', async () => { + const repo = makeTmpRepo(); + for (const n of [1, 2, 3]) { + appendFileSync(join(repo, 'README.md'), `line ${n}\n`); + await commitAll(repo, `commit ${n}`); + } + expect((await commitLog(repo, { limit: 2 })).commits.map((c) => c.subject)).toEqual(['commit 3', 'commit 2']); + expect((await commitLog(repo, { limit: 1, skip: 2 })).commits.map((c) => c.subject)).toEqual(['commit 1']); + }); + + it('commitLog : dépôt sans aucun commit → liste vide, pas d’exception', async () => { + const dir = mkdtempSync(join(tmpdir(), 'arb-git-empty-')); + dirs.push(dir); + execFileSync('git', ['init', '-b', 'main'], { cwd: dir, stdio: 'pipe' }); + const res = await commitLog(dir); + expect(res.commits).toEqual([]); + expect(res.hasUpstream).toBe(false); + }); + + it('commitDiff : diff unifié du commit demandé, hash invalide et inconnu rejetés', async () => { + const repo = makeTmpRepo(); + writeFileSync(join(repo, 'nouveau.txt'), 'contenu\n'); + await commitAll(repo, 'ajout fichier'); + const [head] = (await commitLog(repo)).commits; + + const d = await commitDiff(repo, head?.hash ?? ''); + expect(d.binary).toBe(false); + expect(d.tooLarge).toBe(false); + expect(d.diff).toContain('nouveau.txt'); + expect(d.diff).toContain('+contenu'); + + await expect(commitDiff(repo, 'HEAD')).rejects.toThrow(/Invalid commit hash/); + await expect(commitDiff(repo, 'deadbeef')).rejects.toThrow(/Unknown commit/); + }); +}); diff --git a/packages/server/test/session-match.test.ts b/packages/server/test/session-match.test.ts new file mode 100644 index 0000000..7f2abda --- /dev/null +++ b/packages/server/test/session-match.test.ts @@ -0,0 +1,79 @@ +import { describe, expect, it } from 'vitest'; +import { containsPath, findWorktreeForCwd, sessionBelongsToWorktree } from '../src/core/session-match.js'; + +describe('containsPath', () => { + it('vrai pour le répertoire lui-même', () => { + expect(containsPath('/p/repo', '/p/repo')).toBe(true); + }); + + it('vrai pour un descendant', () => { + expect(containsPath('/p/repo', '/p/repo/packages/api')).toBe(true); + }); + + it('compare par segment, pas par préfixe de chaîne', () => { + // /p/repo ne contient PAS /p/repo-wt-feature (piège du startsWith nu) + expect(containsPath('/p/repo', '/p/repo-wt-feature')).toBe(false); + }); + + it('faux pour un ancêtre', () => { + expect(containsPath('/p/repo/api', '/p/repo')).toBe(false); + }); + + it('normalise les chemins non résolus', () => { + expect(containsPath('/p/repo', '/p/repo/./api/../api')).toBe(true); + }); +}); + +describe('sessionBelongsToWorktree', () => { + it('rattache une session lancée à la racine du worktree', () => { + expect(sessionBelongsToWorktree({ cwd: '/p/repo' }, '/p/repo')).toBe(true); + }); + + it('rattache une session lancée dans un sous-répertoire (« Démarrer le projet »)', () => { + // LaunchCommand.cwd autorise un sous-dossier : le terminal doit rester visible sous son worktree. + expect(sessionBelongsToWorktree({ cwd: '/p/repo/packages/api' }, '/p/repo')).toBe(true); + }); + + it('ne rattache pas une session d’un worktree frère', () => { + expect(sessionBelongsToWorktree({ cwd: '/p/repo-wt-feat' }, '/p/repo')).toBe(false); + }); + + it('donne un worktree imbriqué au plus spécifique, pas au principal', () => { + const session = { cwd: '/p/repo/.worktrees/feat/src' }; + const all = ['/p/repo', '/p/repo/.worktrees/feat']; + expect(sessionBelongsToWorktree(session, '/p/repo/.worktrees/feat', all)).toBe(true); + expect(sessionBelongsToWorktree(session, '/p/repo', all)).toBe(false); + }); + + it('rattache une session de groupe via ses répertoires reliés', () => { + // cwd = parent commun (hors des repos), les worktrees couverts vivent dans addedDirs. + const session = { cwd: '/p', addedDirs: ['/p/api', '/p/web'] }; + expect(sessionBelongsToWorktree(session, '/p/api')).toBe(true); + expect(sessionBelongsToWorktree(session, '/p/web')).toBe(true); + expect(sessionBelongsToWorktree(session, '/p/docs')).toBe(false); + }); + + it('ignore un addedDirs absent', () => { + expect(sessionBelongsToWorktree({ cwd: '/p/api' }, '/p/api', [])).toBe(true); + }); +}); + +describe('findWorktreeForCwd', () => { + const worktrees = [ + { repoId: 'r1', path: '/p/api' }, + { repoId: 'r1', path: '/p/api-wt-feat' }, + { repoId: 'r2', path: '/p/api/vendor/web' }, + ]; + + it('choisit le worktree le plus spécifique', () => { + expect(findWorktreeForCwd('/p/api/vendor/web/src', worktrees)?.repoId).toBe('r2'); + }); + + it('choisit le worktree frère exact et non le préfixe de chaîne', () => { + expect(findWorktreeForCwd('/p/api-wt-feat/src', worktrees)?.path).toBe('/p/api-wt-feat'); + }); + + it('renvoie null hors de tout worktree connu', () => { + expect(findWorktreeForCwd('/tmp/ailleurs', worktrees)).toBeNull(); + }); +}); diff --git a/packages/server/test/windows-support.test.ts b/packages/server/test/windows-support.test.ts new file mode 100644 index 0000000..777eb9b --- /dev/null +++ b/packages/server/test/windows-support.test.ts @@ -0,0 +1,94 @@ +// Support Windows du daemon : helpers purs, testés avec la plateforme INJECTÉE (ils doivent donc être +// vérifiables depuis Linux). Chacun corrige un point qui rendait le daemon inutilisable sur Windows. +import { describe, expect, it } from 'vitest'; +import { buildSpawnSpec, resolveInteractiveShell, resolvePlainShell, whichCommand } from '../src/core/claude-launcher.js'; +import { askpassScript } from '../src/core/git-auth.js'; +import { defaultDataRoot } from '../src/config.js'; + +describe('recherche du binaire claude dans le PATH', () => { + it('utilise where.exe sur Windows, which ailleurs', () => { + expect(whichCommand('win32')).toEqual({ file: 'where.exe', args: ['claude'] }); + expect(whichCommand('linux')).toEqual({ file: 'which', args: ['claude'] }); + expect(whichCommand('darwin').file).toBe('which'); + }); +}); + +describe('shell de lancement', () => { + it('POSIX : $SHELL connu en login interactif, sinon bash', () => { + expect(resolveInteractiveShell('linux', { SHELL: '/usr/bin/zsh' })).toEqual({ file: '/usr/bin/zsh', args: ['-l', '-i'] }); + expect(resolveInteractiveShell('linux', { SHELL: '/bin/dash' })).toEqual({ file: 'bash', args: ['-l', '-i'] }); + expect(resolveInteractiveShell('linux', {})).toEqual({ file: 'bash', args: ['-l', '-i'] }); + }); + + it('Windows : PowerShell qui reste attaché après la commande auto-tapée', () => { + const shell = resolveInteractiveShell('win32', {}); + expect(shell.file).toBe('powershell.exe'); + expect(shell.args).toContain('-NoExit'); + }); + + it('Windows : le shell est surchargeable par ARBORETUM_SHELL', () => { + expect(resolveInteractiveShell('win32', { ARBORETUM_SHELL: 'pwsh.exe' }).file).toBe('pwsh.exe'); + }); + + it('terminal simple : bash --norc sur POSIX, PowerShell sur Windows', () => { + expect(resolvePlainShell('linux')).toEqual({ file: 'bash', args: ['--norc'] }); + expect(resolvePlainShell('win32').file).toBe('powershell.exe'); + }); +}); + +describe('buildSpawnSpec · plateforme injectée', () => { + it('command=bash sur Windows lance PowerShell (le contrat d’API reste claude|bash)', () => { + const spec = buildSpawnSpec({ command: 'bash', platform: 'win32' }); + expect(spec.file).toBe('powershell.exe'); + expect(spec.env.TERM).toBe('xterm-256color'); + }); + + it('command=bash avec login sur Windows reste attaché', () => { + expect(buildSpawnSpec({ command: 'bash', login: true, platform: 'win32' }).args).toContain('-NoExit'); + }); + + it('command=bash sur Linux inchangé', () => { + expect(buildSpawnSpec({ command: 'bash', platform: 'linux' })).toMatchObject({ file: 'bash', args: ['--norc'] }); + }); +}); + +describe('script askpass git', () => { + it('Windows : .cmd (un .sh à shebang n’y est pas exécutable)', () => { + const s = askpassScript('win32'); + expect(s.name).toBe('askpass.cmd'); + expect(s.content).toContain('@echo off'); + expect(s.content).toContain('ARB_GIT_USER'); + expect(s.content).toContain('ARB_GIT_PASS'); + }); + + it('POSIX : .sh avec shebang', () => { + const s = askpassScript('linux'); + expect(s.name).toBe('askpass.sh'); + expect(s.content.startsWith('#!/bin/sh')).toBe(true); + expect(s.mode).toBe(0o700); + }); + + it('les deux variantes distinguent Username du mot de passe', () => { + for (const p of ['win32', 'linux'] as const) { + const c = askpassScript(p).content; + expect(c).toMatch(/Username/i); + } + }); +}); + +describe('racine des données', () => { + it('XDG_DATA_HOME est prioritaire partout (l’app de bureau s’en sert pour isoler)', () => { + expect(defaultDataRoot('win32', { XDG_DATA_HOME: '/iso' }, '/home/u')).toBe('/iso'); + expect(defaultDataRoot('linux', { XDG_DATA_HOME: '/iso' }, '/home/u')).toBe('/iso'); + }); + + it('Windows : %APPDATA%, avec repli sur AppData/Roaming', () => { + expect(defaultDataRoot('win32', { APPDATA: 'C:\\Users\\u\\AppData\\Roaming' }, 'C:\\Users\\u')).toBe('C:\\Users\\u\\AppData\\Roaming'); + expect(defaultDataRoot('win32', {}, '/home/u')).toBe('/home/u/AppData/Roaming'); + }); + + it('POSIX : ~/.local/share', () => { + expect(defaultDataRoot('linux', {}, '/home/u')).toBe('/home/u/.local/share'); + expect(defaultDataRoot('darwin', {}, '/Users/u')).toBe('/Users/u/.local/share'); + }); +}); diff --git a/packages/shared/src/api.ts b/packages/shared/src/api.ts index 8d42ff1..57c62ce 100644 --- a/packages/shared/src/api.ts +++ b/packages/shared/src/api.ts @@ -237,6 +237,37 @@ export interface FileDiffResponse { /** texte du diff unifié git (vide si binaire ou tooLarge). */ diff: string; } +/** Un commit de l'historique d'un worktree (GET .../worktrees/log). */ +export interface CommitEntry { + /** hash complet (clé stable, utilisée pour demander le diff du commit). */ + hash: string; + /** hash court tel que git l'abrège (affichage). */ + shortHash: string; + author: string; + /** date d'auteur ISO 8601 (%aI). */ + date: string; + subject: string; +} +/** + * GET /api/v1/repos/:id/worktrees/log?path=&limit=&skip= : historique de la branche du worktree. + * `unpushedCount` compte les commits de tête pas encore poussés ; `hasUpstream: false` signifie qu'aucun + * commit n'est publié (branche purement locale) et que TOUS sont donc à considérer comme non poussés. + */ +export interface WorktreeLogResponse { + repoId: string; + path: string; + commits: CommitEntry[]; + unpushedCount: number; + hasUpstream: boolean; +} +/** GET /api/v1/repos/:id/worktrees/diff?path=&commit= : diff unifié complet d'un commit. */ +export interface CommitDiffResponse { + path: string; + commit: string; + binary: boolean; + tooLarge: boolean; + diff: string; +} /** GET /api/v1/repos/:id/files/content?wt=&path= : contenu d'un fichier (pour l'éditeur Monaco). */ export interface FileContentResponse { /** chemin relatif au worktree (POSIX). */ diff --git a/packages/shared/src/index.ts b/packages/shared/src/index.ts index 00798b5..812af34 100644 --- a/packages/shared/src/index.ts +++ b/packages/shared/src/index.ts @@ -1,3 +1,4 @@ export * from './protocol.js'; export * from './api.js'; export * from './wt-key.js'; +export * from './path-match.js'; diff --git a/packages/shared/src/path-match.ts b/packages/shared/src/path-match.ts new file mode 100644 index 0000000..746a014 --- /dev/null +++ b/packages/shared/src/path-match.ts @@ -0,0 +1,71 @@ +// Corrélation session ↔ worktree par contenance de chemin. Source unique partagée par le daemon, le +// front web et l'extension VS Code : la règle doit être identique partout, sinon un terminal apparaît +// sous un worktree côté serveur et sous un autre côté UI. +// +// Historiquement la corrélation était une égalité stricte `session.cwd === worktree.path`. Deux cas +// réels y échappent : +// 1. « Démarrer le projet » autorise un sous-répertoire par commande (`LaunchCommand.cwd`, borné par +// `resolveLaunchSubdir`) : le terminal tourne DANS le worktree, mais pas à sa racine ; +// 2. une session de groupe (P6) couvre plusieurs repos via `--add-dir` : son cwd est le parent commun +// et les worktrees couverts n'apparaissent que dans `addedDirs`. +// Dans les deux cas la session appartient bel et bien au worktree. +// +// Aucune dépendance à `node:path` (le front tourne dans un navigateur) : la comparaison se fait par +// segments, en tolérant les deux séparateurs pour rester correcte sur Windows. La comparaison reste +// SENSIBLE à la casse : les chemins comparés viennent tous de la même source (git et la base), et +// insensibiliser casserait deux répertoires ne différant que par la casse sous Linux. + +/** Segments non vides d'un chemin, séparateurs POSIX et Windows confondus. */ +function segments(p: string): string[] { + return p.split(/[\\/]+/).filter((s) => s.length > 0 && s !== '.'); +} + +/** true si `child` est `parent` lui-même ou un descendant. */ +export function containsPath(parent: string, child: string): boolean { + const p = segments(parent); + const c = segments(child); + if (c.length < p.length) return false; + return p.every((seg, i) => c[i] === seg); +} + +/** Répertoires qu'une session occupe : son cwd, plus les répertoires reliés d'une session de groupe. */ +export function sessionDirs(session: { cwd: string; addedDirs?: string[] }): string[] { + return [session.cwd, ...(session.addedDirs ?? [])]; +} + +/** + * Attribue une session au worktree `worktreePath`. `others` = les autres worktrees connus (au moins + * ceux du même repo) : sans eux, une session lancée dans un worktree imbriqué (`repo/.worktrees/x`) + * serait aussi listée sous le checkout principal `repo`. Le worktree le plus spécifique gagne. + */ +export function sessionBelongsToWorktree( + session: { cwd: string; addedDirs?: string[] }, + worktreePath: string, + others: string[] = [], +): boolean { + const depth = segments(worktreePath).length; + return sessionDirs(session).some((dir) => { + if (!containsPath(worktreePath, dir)) return false; + // un autre worktree plus profond contient aussi ce répertoire → il est le propriétaire légitime. + return !others.some((o) => segments(o).length > depth && containsPath(o, dir)); + }); +} + +/** + * Worktree auquel rattacher un répertoire, parmi une liste hétérogène (tous repos confondus) : le plus + * spécifique qui le contient. Sert à épingler le watcher FS du worktree d'une session vivante et à + * étiqueter un terminal. + */ +export function findWorktreeForCwd(cwd: string, worktrees: T[]): T | null { + let best: T | null = null; + let bestDepth = -1; + for (const w of worktrees) { + if (!containsPath(w.path, cwd)) continue; + const depth = segments(w.path).length; + if (depth > bestDepth) { + best = w; + bestDepth = depth; + } + } + return best; +} diff --git a/packages/shared/test/path-match.test.ts b/packages/shared/test/path-match.test.ts new file mode 100644 index 0000000..d685136 --- /dev/null +++ b/packages/shared/test/path-match.test.ts @@ -0,0 +1,75 @@ +import { describe, expect, it } from 'vitest'; +import { containsPath, findWorktreeForCwd, sessionBelongsToWorktree } from '../src/path-match.js'; + +describe('containsPath', () => { + it('vrai pour le répertoire lui-même et ses descendants', () => { + expect(containsPath('/p/repo', '/p/repo')).toBe(true); + expect(containsPath('/p/repo', '/p/repo/packages/api')).toBe(true); + }); + + it('compare par segment, pas par préfixe de chaîne', () => { + // piège du startsWith nu : /p/repo n'est pas le parent de /p/repo-wt-feature + expect(containsPath('/p/repo', '/p/repo-wt-feature')).toBe(false); + }); + + it('faux pour un ancêtre', () => { + expect(containsPath('/p/repo/api', '/p/repo')).toBe(false); + }); + + it('tolère les deux séparateurs (chemins Windows)', () => { + expect(containsPath('C:\\dev\\repo', 'C:\\dev\\repo\\packages\\api')).toBe(true); + expect(containsPath('C:\\dev\\repo', 'C:/dev/repo/packages')).toBe(true); + expect(containsPath('C:\\dev\\repo', 'C:\\dev\\repo2')).toBe(false); + }); + + it('reste sensible à la casse', () => { + expect(containsPath('/p/Repo', '/p/repo/api')).toBe(false); + }); + + it('ignore les séparateurs redondants et un slash final', () => { + expect(containsPath('/p/repo/', '/p//repo/api')).toBe(true); + }); +}); + +describe('sessionBelongsToWorktree', () => { + it('rattache une session lancée dans un sous-répertoire', () => { + expect(sessionBelongsToWorktree({ cwd: '/p/repo/packages/api' }, '/p/repo')).toBe(true); + }); + + it('donne un worktree imbriqué au plus spécifique, pas au principal', () => { + const session = { cwd: '/p/repo/.worktrees/feat/src' }; + const all = ['/p/repo', '/p/repo/.worktrees/feat']; + expect(sessionBelongsToWorktree(session, '/p/repo/.worktrees/feat', all)).toBe(true); + expect(sessionBelongsToWorktree(session, '/p/repo', all)).toBe(false); + }); + + it('rattache une session de groupe via ses répertoires reliés', () => { + const session = { cwd: '/p', addedDirs: ['/p/api', '/p/web'] }; + expect(sessionBelongsToWorktree(session, '/p/api')).toBe(true); + expect(sessionBelongsToWorktree(session, '/p/docs')).toBe(false); + }); + + it('ne rattache pas une session d’un worktree frère', () => { + expect(sessionBelongsToWorktree({ cwd: '/p/repo-wt-feat' }, '/p/repo')).toBe(false); + }); +}); + +describe('findWorktreeForCwd', () => { + const worktrees = [ + { repoId: 'r1', path: '/p/api' }, + { repoId: 'r1', path: '/p/api-wt-feat' }, + { repoId: 'r2', path: '/p/api/vendor/web' }, + ]; + + it('choisit le worktree le plus spécifique', () => { + expect(findWorktreeForCwd('/p/api/vendor/web/src', worktrees)?.repoId).toBe('r2'); + }); + + it('choisit le worktree frère exact', () => { + expect(findWorktreeForCwd('/p/api-wt-feat/src', worktrees)?.path).toBe('/p/api-wt-feat'); + }); + + it('renvoie null hors de tout worktree connu', () => { + expect(findWorktreeForCwd('/tmp/ailleurs', worktrees)).toBeNull(); + }); +}); diff --git a/packages/site/index.html b/packages/site/index.html index 266e4d9..ec31627 100644 --- a/packages/site/index.html +++ b/packages/site/index.html @@ -5,12 +5,12 @@ - + + diff --git a/packages/site/src/components/AppFooter.vue b/packages/site/src/components/AppFooter.vue index c46fc89..dbb6355 100644 --- a/packages/site/src/components/AppFooter.vue +++ b/packages/site/src/components/AppFooter.vue @@ -1,7 +1,7 @@ diff --git a/packages/web/src/components/CommandPalette.vue b/packages/web/src/components/CommandPalette.vue index 816781e..2d3fd42 100644 --- a/packages/web/src/components/CommandPalette.vue +++ b/packages/web/src/components/CommandPalette.vue @@ -102,7 +102,7 @@ const basename = (p: string): string => p.split('/').filter(Boolean).pop() ?? p; const items = computed(() => { const out: PaletteItem[] = []; - for (const r of worktrees.repos) { + for (const r of worktrees.visibleRepos) { out.push({ id: `repo-${r.id}`, type: 'repo', label: r.label, sublabel: r.path, icon: GitBranch as Component, keywords: `${r.label} ${r.path}`.toLowerCase(), run: () => revealRepo(r.id) }); out.push({ id: `launch-${r.id}`, diff --git a/packages/web/src/components/ToastContainer.vue b/packages/web/src/components/ToastContainer.vue index de62100..aa67a24 100644 --- a/packages/web/src/components/ToastContainer.vue +++ b/packages/web/src/components/ToastContainer.vue @@ -1,26 +1,31 @@ diff --git a/packages/web/src/components/ide/PanelSplitter.vue b/packages/web/src/components/ide/PanelSplitter.vue index b6bd4c1..554118a 100644 --- a/packages/web/src/components/ide/PanelSplitter.vue +++ b/packages/web/src/components/ide/PanelSplitter.vue @@ -1,20 +1,34 @@ diff --git a/packages/web/src/components/ide/PrimarySidebar.vue b/packages/web/src/components/ide/PrimarySidebar.vue index 3b088ae..f9d2a15 100644 --- a/packages/web/src/components/ide/PrimarySidebar.vue +++ b/packages/web/src/components/ide/PrimarySidebar.vue @@ -3,6 +3,10 @@ class="flex min-h-0 shrink-0 flex-col border-r border-border bg-surface-1" :style="{ width: `${ide.leftWidth}px` }" > + + @@ -12,6 +16,7 @@ diff --git a/packages/web/src/components/ide/modals/GroupCreateModal.vue b/packages/web/src/components/ide/modals/GroupCreateModal.vue index 31169a8..78dd584 100644 --- a/packages/web/src/components/ide/modals/GroupCreateModal.vue +++ b/packages/web/src/components/ide/modals/GroupCreateModal.vue @@ -19,10 +19,10 @@
{{ t('groups.reposLabel') }} -

{{ t('groups.noReposRegistered') }}

+

{{ t('groups.noReposRegistered') }}