When command suggestions are too long to fit in the popup width, they
get truncated with ellipsis. This makes it impossible to distinguish
between two long commands that share the same prefix.
Add a truncation-aware tooltip to each suggestion item:
- Detect at runtime whether the text overflows (scrollWidth > clientWidth)
- Only show tooltip for items that are actually truncated
- Tooltip opens on mouse hover and keyboard selection (arrow keys)
- Tooltip displays the full command text with proper wrapping
Closes#593
- Removed the dependency on RemoteStatsSampler in the close_session function.
- Introduced session locking mechanism to prevent race conditions when fetching remote stats.
- Updated the stats fetching logic to utilize a probe plan for better efficiency.
- Enhanced the RemoteStatsSampler to manage session states and ensure proper cleanup of session data.
- Added a new state for managing search expansion and a ref for the search input.
- Implemented focus and selection behavior for the search input when expanded.
- Enhanced keyboard navigation to handle Escape key for collapsing the search.
- Updated the search input to be read-only until focused, allowing for a cleaner UI.
- Introduced a clear search button that resets the filter text and collapses the search when clicked.
- Introduced preventWindowControlMouseFocus to prevent focus shift on mouse down for window control buttons.
- Updated Header component to use this function on minimize, maximize, and close button mouse down events.
- Added tests for window control focus behavior to ensure expected functionality.
- Reduced the injection timeout from 30 seconds to 8 seconds for improved responsiveness.
- Introduced a new `SuppressionDiagnostics` struct to track and log suppression metrics.
- Updated the injection handling logic to incorporate the new diagnostics and timeout mechanisms.
- Refactored related functions for clarity and maintainability.
- Revised the English, Korean, Simplified Chinese, and Traditional Chinese translations for the reconnectRestoreCwdDesc key to clarify the behavior of reconnecting to the last known working directory in SSH sessions.
- 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.
- Moved dynamic tab title components within LocalTerminal and SshForm for improved structure and consistency.
- Updated the layout to ensure proper alignment and spacing for better user experience.
- Retained functionality of dynamic tab title switches in both components.
- Added SSH feature to prune NyaTerm's Bash shell-integration commands from remote command history, including support for shells with cmdhist disabled.
- Restyled the built-in editor's search panel with theme-aware controls, focus rings, and checkbox accents.
- Ensured shell-integration injection lines comply with remote Linux PTY canonical-input limits.
- Enhanced the styling of the CodeMirror search panel by removing the light button gradient and implementing theme colors for buttons and inputs.
- Added focus ring and checkbox accent styles to improve accessibility and visual consistency.
- Updated tests to verify the new styling rules for the search panel.
- Introduced a mechanism to prune bash history entries within a defined range, enhancing the management of command history.
- Added a new constant for maximum history entries and updated the injection script to utilize this feature.
- Improved the script's logic to ensure proper handling of history entries, including marking the beginning and end of relevant history sections.
- Reformatted the injection script in `osc.rs` to enhance clarity and maintainability.
- Consolidated multiple lines into a single compound entry while ensuring compliance with remote PTY input limits.
- Updated function comments for better understanding of the script's purpose and functionality.
- Added new features including Ctrl+mouse-wheel font zoom in the editor, a context-menu action for quick commands, dynamic terminal tab titles, shared SFTP helpers, and improved AI event handling.
- Fixed issues related to file drop target detection, terminal selection preservation, tab scrolling behavior, and RDP connection editing.