feat(web): IDE unique comme seule coquille, ancien dashboard retiré

L'IDE (/ide) devient l'unique interface sur tous les supports (navigateur,
PWA, app Electron chargent la même SPA). Tout le cycle de vie de l'ancien
monde est réintégré dans l'IDE ; AppShell et les vues Dashboard / Sessions /
Groups / GroupView / SessionView sont supprimés.

- Infra: pile de modals Teleport (stores/modals.ts + ModalHost) et menu
  contextuel (useContextMenu + ContextMenu), montés dans IdeShell sans le
  démonter (attaches WS du dock préservées).
- Explorer: créer worktree (branche + baseRef + session), travailler sur main,
  prune, promote (escalade force), supprimer worktree, commit/push, masquer/
  supprimer repo, ajouter dépôt local ou cloner.
- Sessions: create/kill/resume/fork, hide/unhide, archive/unarchive, masquer
  les découvertes, supervision AttentionList + réponse aux dialogues.
- Groupes: create/delete, composition, lancement de session de groupe (ouvre
  le terminal dans le dock).
- Compte: Réglages et Aide en overlays par-dessus l'IDE ; langue, push/PWA,
  tokens, connexions git, RGPD, déconnexion. Command Palette et deep-links
  recâblés pour rester dans l'IDE.
- Routes: les anciens chemins rendent IdeShell via meta (overlay/panel/
  terminal) ; /workspace/:repoId/:wt inchangé (contrat extension VS Code).
  Mobile: nav à 6 panneaux (explorer/editor/terminal/git/sessions/groups).

La grille multi-terminaux de groupe est retirée (supplantée par la session de
groupe unique P6 via --add-dir + le dock multi-onglets).
This commit is contained in:
2026-07-20 12:10:12 +02:00
parent e48798ebff
commit c694f9f2dd
57 changed files with 1457 additions and 3045 deletions

View File

@@ -13,6 +13,7 @@ export default {
retry: 'Retry',
confirm: 'Confirm',
delete: 'Delete',
working: 'Working…',
},
login: {
title: 'Sign in with your access token',
@@ -238,6 +239,27 @@ export default {
noTerminalHint: 'Open a Claude session from the tree to attach a terminal here.',
comingSoon: 'Coming soon',
ready: 'Ready',
menu: {
newWorktree: 'New worktree',
workOnMain: 'Work on main branch',
openTerminal: 'Open terminal',
commit: 'Commit changes',
push: 'Push',
promote: 'Promote to main',
deleteWorktree: 'Delete worktree',
prune: 'Prune worktrees',
hideRepo: 'Hide repository',
showRepo: 'Show repository',
removeRepo: 'Remove repository',
addLocal: 'Add local repository',
cloneRemote: 'Clone remote repository',
newSession: 'New session',
newProject: 'New project',
newGroup: 'New group',
launchGroup: 'Launch group session',
editGroup: 'Edit composition',
deleteGroup: 'Delete group',
},
},
editor: {
save: 'Save',
@@ -474,6 +496,7 @@ export default {
worktreeCreated: 'Worktree created',
worktreeDeleted: 'Worktree deleted',
pruned: 'Worktrees pruned',
pushed: 'Pushed',
groupCreated: 'Group created',
groupUpdated: 'Group updated',
groupDeleted: 'Group deleted',

View File

@@ -15,6 +15,7 @@ const fr: typeof en = {
retry: 'Réessayer',
confirm: 'Confirmer',
delete: 'Supprimer',
working: 'En cours…',
},
login: {
title: 'Connectez-vous avec votre jeton daccès',
@@ -240,6 +241,27 @@ const fr: typeof en = {
noTerminalHint: 'Ouvrez une session Claude depuis larbre pour y attacher un terminal.',
comingSoon: 'Bientôt disponible',
ready: 'Prêt',
menu: {
newWorktree: 'Nouveau worktree',
workOnMain: 'Travailler sur la branche principale',
openTerminal: 'Ouvrir un terminal',
commit: 'Valider les changements',
push: 'Pousser (push)',
promote: 'Passer en principal',
deleteWorktree: 'Supprimer le worktree',
prune: 'Élaguer les worktrees',
hideRepo: 'Masquer le dépôt',
showRepo: 'Afficher le dépôt',
removeRepo: 'Retirer le dépôt',
addLocal: 'Ajouter un dépôt local',
cloneRemote: 'Cloner un dépôt distant',
newSession: 'Nouvelle session',
newProject: 'Nouveau projet',
newGroup: 'Nouveau groupe',
launchGroup: 'Lancer une session de groupe',
editGroup: 'Modifier la composition',
deleteGroup: 'Supprimer le groupe',
},
},
editor: {
save: 'Enregistrer',
@@ -477,6 +499,7 @@ const fr: typeof en = {
worktreeCreated: 'Worktree créé',
worktreeDeleted: 'Worktree supprimé',
pruned: 'Worktrees élagués',
pushed: 'Poussé',
groupCreated: 'Groupe créé',
groupUpdated: 'Groupe mis à jour',
groupDeleted: 'Groupe supprimé',