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).
25 lines
908 B
Vue
25 lines
908 B
Vue
<template>
|
|
<div class="flex h-dvh flex-col">
|
|
<WsBanner v-if="wsReconnecting" />
|
|
<!-- Coquille unique : la vue (IDE ou login) gère elle-même son plein écran. -->
|
|
<RouterView class="min-h-0 flex-1" />
|
|
<ToastContainer />
|
|
<CommandPalette />
|
|
</div>
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
|
import { computed } from 'vue';
|
|
import { wsClient } from './lib/ws-client';
|
|
import { useRealtimeBootstrap } from './composables/useRealtimeBootstrap';
|
|
import WsBanner from './components/layout/WsBanner.vue';
|
|
import ToastContainer from './components/ToastContainer.vue';
|
|
import CommandPalette from './components/CommandPalette.vue';
|
|
|
|
const wsReconnecting = computed(() => wsClient.status.value === 'reconnecting');
|
|
|
|
// Propriétaire unique du chargement initial + temps réel : hissé ici (App.vue toujours monté)
|
|
// pour couvrir l'IDE plein écran comme le login.
|
|
useRealtimeBootstrap();
|
|
</script>
|