Releases
V0.2.2
Compare
Sorry, something went wrong.
No results found
pozgo
released this
26 Dec 00:27
Added
Multi-Tab Terminal Support
Multiple terminal tabs - Open up to 10 concurrent terminal sessions, similar to gnome-terminal or iTerm2
Independent sessions - Each tab maintains its own:
Shell selection (Bash, Zsh, Sh)
SSH key configuration
WebSocket connection and PTY session
Command history and state
Tab management features :
Click + button to add new terminal tab
Click x on tab to close (minimum 1 tab required)
Double-click tab title to rename
Click tab to switch between terminals
Visual status indicators - Green/red dot on each tab shows connection status
Session persistence - Tab configurations (title, shell, SSH key) saved to localStorage and restored on page reload
Status bar - Shows current tab count, active shell, and SSH key info
Changed
Frontend Architecture
Refactored Terminal.jsx into modular components:
TerminalContext.jsx - React Context + useReducer for tab state management
TabBar.jsx - Tab navigation with Material-UI Tabs component
TerminalPane.jsx - Individual xterm.js terminal instance per tab
Improved terminal lifecycle management - sessions persist when switching tabs
Build Optimization
Code splitting with Rollup manual chunks to eliminate 500KB bundle warning:
vendor-react - React, React DOM, React Router (~160KB)
vendor-mui - Material-UI components and icons (~298KB)
vendor-xterm - xterm.js terminal emulator (~334KB)
index - Application code (~104KB)
Parallel chunk loading for faster initial page load
Fixed
Fixed terminal session being destroyed when switching between tabs
Fixed duplicate tabs appearing on fresh start (localStorage race condition)
Fixed corrupted terminal display when tab initialized while hidden
New Files
frontend/src/context/TerminalContext.jsx - Tab state management with React Context
frontend/src/components/TabBar.jsx - Tab navigation component
frontend/src/components/TerminalPane.jsx - Individual terminal instance component
You can’t perform that action at this time.