From e1be07f34c870ccbeac90be52029eb66052f2d94 Mon Sep 17 00:00:00 2001 From: Vantz Stockwell Date: Sat, 14 Mar 2026 13:20:40 -0400 Subject: [PATCH] feat: session tabs with home nav, popup Monaco editor, drag-and-drop upload Multi-session tabs + home navigation: - Tab bar with Home button persists above sessions - Clicking Home shows the underlying page (hosts, vault, etc.) - Clicking a session tab switches back to that session - Header nav links also trigger home view - Sessions stay alive in background when viewing home Monaco editor in popup window: - Opening a file in SFTP launches a detached popup with Monaco - Full syntax highlighting, minimap, Ctrl+S save - File tree stays visible while editing - Toolbar with save/close buttons and dirty indicator Drag-and-drop upload: - Drop files anywhere on the SFTP sidebar to upload - Visual overlay with dashed border on drag-over - Supports multiple files Co-Authored-By: Claude Opus 4.6 --- .../components/session/SessionContainer.vue | 14 +- frontend/components/session/SessionPanels.vue | 77 ++++++ frontend/components/sftp/FileEditor.vue | 168 ++++++++----- frontend/components/sftp/SftpSidebar.vue | 235 ++++++++++++++++-- frontend/components/terminal/TerminalTabs.vue | 12 +- frontend/layouts/default.vue | 23 +- frontend/stores/session.store.ts | 9 + 7 files changed, 445 insertions(+), 93 deletions(-) create mode 100644 frontend/components/session/SessionPanels.vue diff --git a/frontend/components/session/SessionContainer.vue b/frontend/components/session/SessionContainer.vue index cbc9eca..728f404 100644 --- a/frontend/components/session/SessionContainer.vue +++ b/frontend/components/session/SessionContainer.vue @@ -32,13 +32,13 @@ function handleRdpClipboard(sessionId: string, text: string) {