- Added `paneId` to `PendingTabCreation` and updated related functions to handle recording scope IDs for various session types.
- Implemented logic to finish recording scopes when sessions are disconnected or finalized, ensuring proper resource management.
- Updated session creation functions to accept and utilize `recordingScopeId`, improving the integration of recording features across different session types.
- Enhanced tests to validate the new recording scope functionality and ensure isolated pane behavior during session management.
When an application such as vim (mouse=a) enables mouse tracking, xterm.js
disables its selection service entirely, so users cannot select or copy
terminal text. Add an Interaction setting "mouse_events_require_alt"
(default off) that opts into iTerm2-style behavior: normal drag performs
text selection while Alt+drag forwards mouse events to the application.
The default stays off so existing mouse reporting semantics for TUI users
are unchanged.
Also copy the live selection explicitly on plain Cmd+C: when the app has
enabled keyboard reporting modes (e.g. kitty keyboard), xterm consumes
the key event and the browser's native copy event never fires.
- Updated the default setting for reconnecting to the previous working directory from true to false across various components and settings.
- Adjusted related tests to reflect the new default behavior.
- Introduced a new setting for terminal right-click actions, allowing users to choose between "none", "menu", and "paste" options.
- Updated the InteractionTab component to include a tabbed interface for selecting the right-click action.
- Refactored the TerminalContextMenu to handle the new right-click action logic, ensuring appropriate behavior based on user selection.
- Added tests for the terminal right-click action functionality to validate expected behaviors and interactions.
- Migrated legacy right-click paste settings to the new terminal right-click action configuration.
- Updated security settings to introduce distinct options for enabling startup and idle locks, replacing the previous combined screen lock setting.
- Modified relevant components and contexts to accommodate the new settings structure.
- Implemented migration logic to transition from the legacy screen lock to the new settings, ensuring backward compatibility.
- Enhanced user interface to reflect the changes in security options.
- Added new functions `resolveFileEditorOpenTarget` and `resolveInternalEditorDisplay` to determine the appropriate editor mode based on user settings.
- Introduced a test suite for the file editor open mode to validate the new resolution logic.
- Updated the `FileExplorer` component to utilize the new editor resolution functions, enhancing file handling capabilities.
- Modified the `TransferTab` and context providers to include `internal_editor_display` settings, defaulting to "workspace".
- Enhanced type definitions to support the new editor settings and ensure type safety across components.
- Introduced a new `FloatingPanel` component to support left and right floating panels, enhancing the user interface for better panel management.
- Added state management for floating panels in the `App` component, allowing users to open, close, and move panels between sides.
- Implemented logic to handle panel open modes, enabling users to switch between docked and floating modes seamlessly.
- Updated the `ActivityBar` and `AppLayout` components to integrate floating panel features, including context menu options for toggling panel modes.
- Enhanced tests to cover new floating panel functionalities and ensure robust behavior across different scenarios.
- Introduced new components for managing activity bar overlays, including `ActivityBarResetDialog` and `AppOverlayDialogs`.
- Added functionality to hide and show activity bar items, improving user control over the interface.
- Implemented reset layout functionality for the activity bar, allowing users to restore default settings.
- Updated the `ActivityBar` component to support hidden items and context menu interactions for better usability.
- Refactored related hooks and context providers to manage activity bar state effectively.
- Enhanced tests to cover new features and ensure robust functionality.
- Removed the `signalChildWindowReady` function and replaced it with a loading shell in `ChildWindowRouter` to provide a better user experience during loading.
- Updated `FolderDialog` to prevent multiple submissions when pressing Enter and clicking Save simultaneously.
- Enhanced file handling in `FileDocumentEditor` and related components by adding `contentHash` and `mtimeNanos` properties for better file state management.
- Added tests for new functionality in `FolderDialog` and `FileDocumentEditor` to ensure reliability.
- Introduced `AlternateScreenStateTracker` and `Dec2026FrameGate` for improved terminal handling and performance metrics.
- Enhanced AssetView to support sorting by various asset attributes including name, address, and connection time.
- Added functionality to persist asset sort state across renders.
- Updated tests to verify sorting behavior and state restoration.
- Refactored rendering logic to accommodate new sorting features.
- Added support for moving quick command categories within the UI, allowing users to reorder categories through drag-and-drop.
- Introduced new interfaces and utility functions to manage category movement and sorting.
- Enhanced the QuickCommands component to handle new category creation and validation.
- Updated related tests to ensure correct behavior of the new features.
- Introduced a new recording state management system, replacing the previous session tracking with a more robust structure using `RecordingStatus`.
- Updated the UI components to reflect the new recording statuses, including the `RecordingPanel` and `AppPanelContent`.
- Added new settings for recording configurations in the `TerminalTab`, allowing users to specify recording paths, modes, and other preferences.
- Implemented hooks for managing recording states and auto-start options in the `NewSessionPage`.
- Enhanced session input handling to support recording origins and sensitivities, improving security and usability.
- Refactored related components to streamline the recording process and improve overall code clarity.
- Removed the `saved_connections_last_opened_connection_id` from the application settings and related components to streamline state management.
- Introduced a new utility function `areStringSetsEqual` to compare sets of strings, enhancing the logic for managing expanded groups in the Saved Connections component.
- Updated the state initialization for expanded groups to use a new Set, improving clarity and performance.
- Introduced a new utility function to check for duplicate sibling category names, improving category renaming validation.
- Updated the RenameQuickCommandCategoryDialog to utilize the new validation logic.
- Added comprehensive tests for quick command category functionalities, including tree building and name validation.
- Enhanced the QuickCommands component to manage category states more effectively, including expanded category IDs and improved deletion logic.
- Updated UI configurations to support new category width settings.
- Introduced a new toggle for the Notes panel in the UI settings, allowing users to show or hide the panel.
- Updated default application settings to include the show_notes_panel option, ensuring it defaults to true.
- Enhanced the Header component to reflect the new Notes panel option in the menu.
- Modified type definitions and backend configurations to support the new feature.
- Added a new NoteEditor component for creating and editing notes with autosave capabilities.
- Integrated a toolbar with various editing options including formatting and inserting elements.
- Implemented a NotesPanel for managing notes and folders, including search and context menu features.
- Enhanced user experience with real-time updates and error handling during note operations.
- Introduced new styles for the note editor and toolbar to align with the application’s design.
- Added asset monitoring capabilities, including caching and patching of asset data during live sessions.
- Implemented UI components for displaying asset information and managing connections.
- Enhanced the application state management to handle asset monitoring updates effectively.
- Introduced new utility functions for formatting and displaying asset-related metrics.
- Added tests to validate the new asset monitoring functionalities and ensure reliability.
- Introduced a new `HeaderStatusHideConfirmDialog` component for confirming the action of hiding the header status.
- Updated the `Header` component to manage the visibility of the header status and handle confirmation for hiding it.
- Enhanced the `GeneralTab` settings to allow users to toggle header status visibility, integrating it with the application state.
- Added support for a new header status mode "datetime" and updated related types and settings.
- Ensured default settings for header status visibility are set to true in the application context.
- Added state management for the selected category in QuickCommands, allowing for dynamic updates based on user interactions.
- Introduced a new state variable `quickCommandsLoaded` to track when commands are loaded and ensure UI updates are synchronized.
- Updated the default app settings to include `quick_cmd_selected_category`, defaulting to "all".
- Enhanced the UI context to manage category selection more effectively, improving user experience in navigating quick commands.
- Replaced the boolean `show_timestamp_milliseconds` with a string `timestamp_format` in terminal settings, allowing users to define their preferred timestamp format.
- Updated the `TerminalTab`, `TerminalGutter`, and `XTerminal` components to utilize the new timestamp format setting.
- Added normalization logic to ensure the timestamp format adheres to a maximum length and defaults to "[HH:mm:ss]" when empty.
- Implemented migration logic to convert legacy timestamp settings to the new format structure.
- Enhanced tests to verify the correct behavior of timestamp format handling and migration.
- Introduced a new setting for SSH keep-alive mode in the TerminalTab component, allowing users to select between "compatible", "strict", and "disabled" modes.
- Updated the application state to include the keep-alive mode and its default value.
- Enhanced the SSH client configuration to apply keep-alive settings based on the selected mode, improving connection stability.
- Added tests to ensure correct behavior of keep-alive settings and their impact on SSH connection management.
- Introduced a new `ThemeDesignerDialog` component for customizing themes, allowing users to create, edit, and delete custom themes.
- Updated the `AppearanceTab` to integrate the theme designer, providing a button to open the dialog and manage themes.
- Enhanced theme application logic in `main.tsx` to support loading themes from local storage, including a snapshot mechanism for better theme persistence.
- Refactored theme context to manage custom themes and ensure proper resolution of available themes.
- Added utility functions for theme validation and manipulation, improving the overall theme management experience.
- Introduced a new Ascend NPU monitoring panel to display real-time statistics and processes for Ascend NPUs.
- Added settings to enable/disable the Ascend NPU monitor and configure its polling interval.
- Integrated the Ascend brand icon for visual representation in the UI.
- Updated the application context and UI configuration to support the new monitoring feature.
- Implemented backend commands to fetch NPU overview data, enhancing the monitoring capabilities.
- Updated variable names and settings to reflect the new terminology for IME compatibility.
- Adjusted related translations in English, Korean, and Chinese locales.
- Introduced a new compatibility patch for handling IME input across macOS and Linux.
- Removed the deprecated mac_ime_compatibility implementation to streamline the codebase.
- Introduced remote stats functionality in the Header component, allowing for real-time monitoring of resource usage.
- Added a new `HeaderStatusMode` type to manage different display modes for header status.
- Updated App and Context to include `remoteStatsEnabled` and `remoteStats` properties for better state management.
- Enhanced UI configuration to support header status mode settings, defaulting to "session".
- Implemented network summary information in the remote stats structure for improved data representation.
- Updated SecurityAuthPanel to accept an activeSessionId prop, allowing for session-specific functionality.
- Modified OtpManagementTab to include the activeSessionId prop, enabling OTP code sending to the terminal.
- Refactored NetworkPanel to utilize appSettings for managing active tabs, improving user experience.
- Introduced default values for network and security auth panel active tabs in AppContext and ChildAppProvider.
- Enhanced UI configuration to support new active tab settings, ensuring persistence across sessions.
- Added functionality to restore the last opened connection and automatically expand its associated groups when the component mounts.
- Introduced a new state reference for tracking the last opened connection ID.
- Updated UI configuration to include a setting for the last opened connection ID, ensuring persistence across sessions.
- Enhanced type definitions to accommodate the new configuration property.
- Refactored font family definitions in `index.css` and `AppearanceTab.tsx` to utilize new default font constants.
- Introduced `defaultFonts.ts` to centralize font family management for terminal and UI fonts.
- Enhanced `AppContext.tsx` and `ChildAppProvider.tsx` to use the new font constants for improved maintainability.
- Updated `fonts.rs` to align with the new default font configurations for cross-platform consistency.
- Introduced a new setting for enabling/disabling terminal zoom in the InteractionTab component.
- Updated the Header component to conditionally handle zoom actions based on the new setting.
- Enhanced the useTerminalZoom hook to respect the terminal zoom enabled state.
- Defaulted terminal zoom to enabled in App and ChildAppProvider contexts.
- Added necessary type definitions for terminal zoom in global types and Rust settings.
- Implemented a button in the FileExplorerToolbar to toggle the visibility of hidden files.
- Updated the FileExplorer component to filter displayed files based on the new setting.
- Added state management for the visibility of hidden files, ensuring user preferences are respected.
- Enhanced UI to reflect the current state of hidden files visibility.
- Introduced a new `GpuMonitor` component for monitoring GPU status and processes.
- Updated `AppPanelContent` to include the GPU monitor option.
- Added settings for enabling/disabling the GPU monitor and configuring its refresh interval in the `TerminalTab`.
- Enhanced the application context to manage GPU monitor settings and default values.
- Implemented backend support for fetching GPU overview data via a new Tauri command.
- Updated UI configuration to include GPU monitor visibility and interval settings.