P3-C: dashboard worktree-first + acceptance P3 (MVP complet)
Vue racine consolidée : repos → worktrees avec état git ET état de session corrélé. Complète le MVP (P2 découverte/reprise + P3-A worktrees + P3-B états fins). - web/lib/ws-client: abonnement multi-topics (sessions + worktrees), subscribeWorktrees. - web/stores/worktrees: repos + worktrees, CRUD, temps réel (repo_update/worktree_*). - web/views/DashboardView (route racine /), components RepoSection + WorktreeCard ; SessionStateBadge réutilisé pour l'état des sessions corrélées. - router: / = dashboard, /sessions = liste à plat (sessions hors worktree), nav croisée. - i18n EN/FR (dashboard/repos/worktrees). - fix: @xterm/headless est CommonJS → chargé via createRequire (l'import nommé ESM échouait sous Node natif, masqué par esbuild en test) ; détecté par l'acceptation. - scripts/acceptance-p3.mjs: repo git tmp → enregistrement, worktree + hook, broadcast WS worktree_update, corrélation session bash, suppression (409 sans force, 200 avec). Vérifs : typecheck, 159 tests, build (vue-tsc), acceptations P1/P2/P3 ALL GREEN. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -50,6 +50,39 @@ const fr: typeof en = {
|
||||
waiting: 'en attente',
|
||||
},
|
||||
},
|
||||
dashboard: {
|
||||
title: 'Worktrees',
|
||||
allSessions: 'Toutes les sessions',
|
||||
},
|
||||
repos: {
|
||||
add: 'Ajouter un repo',
|
||||
adding: 'Ajout…',
|
||||
remove: 'Retirer',
|
||||
pathLabel: 'Chemin du dépôt',
|
||||
pathPlaceholder: '/chemin/absolu/du/repo',
|
||||
empty: 'Aucun dépôt enregistré — ajoutez-en un ci-dessus.',
|
||||
invalid: 'indisponible',
|
||||
},
|
||||
worktrees: {
|
||||
new: 'Nouveau worktree',
|
||||
create: 'Créer',
|
||||
creating: 'Création…',
|
||||
branch: 'Branche',
|
||||
newBranch: 'créer la branche',
|
||||
start: 'Démarrer',
|
||||
startNone: 'aucune session',
|
||||
delete: 'Supprimer',
|
||||
confirmDelete: 'Confirmer',
|
||||
forceDelete: 'Forcer la suppression',
|
||||
prune: 'Élaguer',
|
||||
main: 'principal',
|
||||
detached: 'détaché',
|
||||
locked: 'verrouillé',
|
||||
prunable: 'élaguable',
|
||||
clean: 'propre',
|
||||
dirty: '{n} modifié(s)',
|
||||
noSession: 'aucune session',
|
||||
},
|
||||
terminal: {
|
||||
observer: 'observateur (lecture seule)',
|
||||
sessionEnded: 'Session terminée',
|
||||
|
||||
Reference in New Issue
Block a user