• v3.5.0 bde5358ea8

    release: git-arboretum 3.5.0 (cache SPA, copier/coller terminal, fichiers des groupes), desktop 0.2.1
    CI / No em/en dashes (push) Successful in 3s
    CI / Build & test (Node 24) (push) Successful in 10m50s
    CI / Build & test (Node 22) (push) Successful in 11m2s
    Release / Publish to Gitea npm registry (push) Successful in 10m56s
    Desktop Release / Build Linux (AppImage + deb) (push) Successful in 13m21s
    Desktop Release / Publish floating desktop-latest release (push) Successful in 11s
    CI / Pack & boot smoke (Node 22) (push) Successful in 9m53s
    Desktop Release / Build Windows (NSIS + portable) (push) Canceled after 0s

    johanleroy released this 2026-08-04 14:23:33 +00:00 | 9 commits to main since this release

    Cause racine de l'ecran noir apres mise a jour : l'etag faible de @fastify/static derive de
    taille+mtime, et npm pack fige le mtime de tout le tarball a une date constante (1985-10-26). Deux
    index.html de versions differentes mais de meme taille partageaient donc le meme etag : le client
    recevait un 304, gardait son index perime, et demandait des /assets/ disparus ; le fallback SPA
    repondait index.html en text/html pour ces modules, le navigateur refusait le script, rien ne peignait.

    • fix(server): index.html et tous les fichiers non haches servis en no-store, validation
      conditionnelle desactivee (etag/lastModified) pour qu'un client bloque sur un index perime se
      repare seul ; /assets/ (noms haches) passent en immutable un an
    • feat(web): copier/coller dans le terminal xterm, dont la selection n'est pas une selection DOM :
      Ctrl+Maj+C / Ctrl+Maj+V, Cmd+C / Cmd+V sur macOS, Ctrl+Inser / Maj+Inser, plus interception de
      l'evenement DOM copy pour que le Copier natif fonctionne. Ctrl+C reste SIGINT
    • fix(web): script anti-FOUC sorti dans /theme-boot.js, la CSP script-src 'self' du daemon refusait
      de l'executer inline (le theme n'etait donc pose qu'au montage de la SPA)
    • feat(web): les worktrees d'un groupe se deplient sur leur arborescence de fichiers dans le panneau
      Groupes (meme composant et meme etat d'expansion que l'Explorateur), et un worktree ainsi deplie
      est desormais surveille en temps reel
    • fix: octet nul litteral remplace par \0 dans trois sources (stores/ide.ts, GitPanel.vue,
      vscode/repos-tree.ts) : git et grep les traitaient comme binaires, leurs diffs etaient
      illisibles en revue et la garde CI lint-dashes (git grep -I) les sautait en silence
    • test: cacheControlFor et clipboardIntent en tests purs, verify-clipboard.mjs (E2E Chromium CDP :
      copie, collage et SIGINT prouves par le presse-papier reel et par le systeme de fichiers),
      capture groups-dark-desktop ajoutee a verify-ui.mjs
    Downloads