docs: P4 livré (supervision mobile : answer + Web Push + PWA)
README et CLAUDE.md reflètent désormais P4 comme livré (et non plus « à venir »), avec les caveats Web Push (HTTPS/Tailscale, PWA installée sur iOS).
This commit is contained in:
@@ -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. **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.
|
||||
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) et P4 (« supervision mobile & push » : commande WS `answer` pour répondre aux dialogues sans ouvrir le terminal, notifications Web Push via VAPID, PWA installable) sont livrés. 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.
|
||||
|
||||
@@ -78,4 +78,6 @@ Les `spikes/sN-*/VERDICT.md` documentent des décisions qui contraignent l'impl
|
||||
- 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 `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`.
|
||||
|
||||
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.
|
||||
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 (supervision mobile)** s'appuie sur ces champs : la commande WS `answer {channel, action, optionN?}` (validée dans `parseClientMessage` ET `pty-manager.answer` contre le dialogue courant) traduit une intention en keystrokes PTY ; `PushService` (clés VAPID en `settings`, abonnements liés au `tokenId` dans `push_subscriptions`) notifie sur le **front montant** vers `waiting` (débouncé). Côté web : `public/sw.js` (service worker push écrit à la main — **pas** de `vite-plugin-pwa`, trop lourd pour un SW push-only) + `public/manifest.webmanifest` (PWA installable). Web Push exige HTTPS (Tailscale Serve) ; sur iOS, la PWA doit être installée.
|
||||
|
||||
@@ -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: 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.
|
||||
**Status: MVP.** The worktree-first dashboard, session discovery & resume, multi-repo worktree lifecycle, live session states, the web terminal, and mobile supervision (installable PWA, Web Push when a session needs you, approve/deny without opening a terminal) are implemented and tested.
|
||||
|
||||
## The problem
|
||||
|
||||
@@ -20,7 +20,7 @@ A single Node.js daemon you run on your dev machine (`npx git-arboretum`), servi
|
||||
- **Full worktree lifecycle** — create (with per-repo post-create hooks: `npm ci`, copy `.env`…), adopt worktrees created by hand, delete with guardrails, prune orphans.
|
||||
- **Session discovery & resume** — sessions you launched in your own terminal show up automatically; resume dead ones, observe or fork live ones. Never corrupts a live session.
|
||||
- **Web terminal** — full xterm.js terminal to every managed session, surviving browser disconnects.
|
||||
- **Supervision from your phone** *(post-MVP)* — PWA with push notifications when a session needs you, approve/deny without opening a terminal.
|
||||
- **Supervision from your phone** — installable PWA with push notifications when a session needs you; approve/deny a prompt without opening a terminal. *(Web Push needs HTTPS — use [Tailscale Serve](docs/tailscale.md); on iOS, install the app to your home screen first.)*
|
||||
|
||||
## What makes it different
|
||||
|
||||
|
||||
Reference in New Issue
Block a user