fix: recherche worktrees, sessions externes masquées, rendu/historique terminal & plein écran grille

- Recherche : le watcher débouncé du singleton useWorktreeView est créé dans un effectScope
  détaché → ne gèle plus après une navigation ; recherche aussi par label de dépôt ; accès à
  la palette depuis le MoreSheet mobile (sidebar/⌘K indisponibles sur mobile).
- Sessions : sessionsForCwd exclut désormais toujours les sessions masquées ; les sessions
  externes (discovered) sont masquées par défaut côté UI, avec puce de révélation par carte et
  case globale dans le dashboard.
- Terminal : ACK découplé du callback de rendu (armé à la réception + flush au retour de
  visibilité) → plus de pause PTY quand l'onglet passe en arrière-plan ; repaint forcé sur
  perte de contexte WebGL / resize / retour en avant-plan. Historique élargi : REPLAY_TAIL_BYTES
  1 Mo, RING_CAPACITY 4 Mo, scrollback xterm 20k.
- Grille de groupe : bouton « plein écran » sur chaque cellule ouvrant /sessions/:id.
This commit is contained in:
2026-06-23 17:42:49 +02:00
parent 5ebe3a0f37
commit 663ae7ace1
15 changed files with 192 additions and 30 deletions

View File

@@ -23,6 +23,9 @@ export const useWorktreesStore = defineStore('worktrees', () => {
const worktrees = ref<WorktreeSummary[]>([]);
const loading = ref(false);
const loadError = ref<string | null>(null);
// Préférence d'affichage (purement client) : révéler les sessions externes (lancées hors Arboretum)
// dans les fiches worktree. Par défaut masquées pour éviter les listes à rallonge.
const showExternalSessions = ref(false);
let unsubscribe: (() => void) | null = null;
function upsertRepo(repo: RepoSummary): void {
@@ -168,6 +171,7 @@ export const useWorktreesStore = defineStore('worktrees', () => {
worktrees,
loading,
loadError,
showExternalSessions,
worktreesForRepo,
fetchAll,
addRepo,