diff --git a/.gitignore b/.gitignore index f534d40..7b66ee8 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ dist/ *.db *.db-* .DS_Store +.idea/ spikes/**/tmp/ spikes/**/captures/ packages/server/public/ diff --git a/CLAUDE.md b/CLAUDE.md index 8923b58..dcf1480 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -4,7 +4,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co ## Projet -Arboretum : un daemon Node.js unique (`npx git-arboretum`) qui sert un dashboard web pour piloter les worktrees git et les sessions Claude Code qui tournent dessus, depuis n'importe quel appareil. Pré-MVP. L'étape **P1** (colonne vertébrale : monorepo, protocole WS, daemon, front, tests, CI) est terminée ; voir les `VERDICT.md` dans `spikes/` pour les décisions techniques actées avant implémentation. +Arboretum : un daemon Node.js unique (`npx git-arboretum`) qui sert un dashboard web pour piloter les worktrees git et les sessions Claude Code qui tournent dessus, depuis n'importe quel appareil. **MVP atteint** : P1 (colonne vertébrale : monorepo, protocole WS, daemon, front, tests, CI), P2 (découverte & reprise des sessions), P3 (worktrees multi-repo, états fins busy/waiting/idle via `claude-adapter`, dashboard worktree-first) sont livrés. La phase en cours est **P4** (« supervision mobile & push » : répondre aux dialogues sans ouvrir le terminal, notifications Web Push, PWA installable). Voir les `VERDICT.md` dans `spikes/` pour les décisions techniques actées avant implémentation. Les commentaires du code et la doc interne sont en **français** ; le README et les messages utilisateur en anglais. Conserver cette convention. @@ -75,6 +75,6 @@ SPA Vue 3. Un **singleton `wsClient`** (`src/lib/ws-client.ts`) gère l'unique c Les `spikes/sN-*/VERDICT.md` documentent des décisions qui contraignent l'implémentation à venir, notamment : - **`--resume` doit toujours s'exécuter dans le cwd d'origine** de la session (lu dans le JSONL). - La **vivacité** d'une session se déduit de `pid` + `procStart`, **jamais** de la présence du fichier registre. -- La distinction d'états fins (busy / waiting / idle) du futur `claude-adapter` (P3) nécessite une lecture d'écran via `@xterm/headless` (le strip ANSI naïf mange les espaces) + le registre `~/.claude/sessions`. +- La distinction d'états fins (busy / waiting / idle) du `claude-adapter` (P3-B) nécessite une lecture d'écran via `@xterm/headless` (le strip ANSI naïf mange les espaces) + le registre `~/.claude/sessions`. -Les états de session du protocole sont aujourd'hui un sous-ensemble P1 (`starting`/`running`/`exited`) à étendre en P3. +Le `SessionRuntimeStatus` du protocole reste `starting`/`running`/`exited` ; les états fins P3-B (`activity`, `waitingFor`, `dialog`) sont des champs **additifs optionnels** de `SessionSummary`, remplis par le `claude-adapter` pour les sessions claude managées (null pour bash / découvertes). P4 ajoutera la commande WS `answer` (répondre aux dialogues) et le Web Push. diff --git a/README.md b/README.md index 354aa67..d8460dd 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ > A self-hosted web dashboard for your git worktrees and the Claude Code sessions running on them — from any device. -**Status: early development (pre-MVP).** The design study and architecture are complete; implementation is in progress. Not usable yet. +**Status: MVP.** The worktree-first dashboard, session discovery & resume, multi-repo worktree lifecycle, live session states and the web terminal are implemented and tested. Mobile supervision (PWA + push, approve/deny from your phone) is the next phase — see *Supervision from your phone* below. ## The problem