Persist server keys only after authenticated RA2 and RFB initialization, guarded against cancellation and stale generations. Preserve owner routing through creation, restoration, and reconnect, and clear resolved verification prompts.
Keep the compatible RSA range, honor the configured 8192-bit maximum, support both documented and TigerVNC random lengths, and add protocol, storage, and frontend regressions.
- Updated the PowerShell prompt initialization to better manage virtual environment prompts, ensuring that the original prompt is preserved and restored correctly.
- Added a new test to validate that the virtual environment prompt survives idle repairs and deactivation, preventing recursive prompt issues.
- Enhanced the prompt wrapper logic to avoid cycles when dealing with shared delegates, improving overall stability.
- Introduced `useAppWindowEvents` hook to manage cross-window events, including session creation and security prompts.
- Added `useAssetMonitoringCache` hook for efficient handling of asset monitoring data, ensuring snapshots are managed correctly during session lifecycle.
- Implemented `useConnectAfterEdit` hook to streamline session reconnections after edits, improving user experience.
- Created comprehensive tests for the new hooks to validate functionality and ensure reliability in various scenarios.
- Enhanced the useNetworkHistory hook to manage live session IDs, allowing for the eviction of closed sessions while retaining live history.
- Updated the useRemoteStats hook to incorporate live session management, ensuring that only active sessions are monitored and stale data is properly handled.
- Added tests to validate the behavior of session eviction and caching, ensuring that closed sessions do not affect live data retrieval.
- Added caching mechanism for remote stats using a Map to store session data, improving performance and reducing unnecessary fetches.
- Implemented tests to validate session ownership behavior, ensuring cached stats are restored correctly during session switches and polling only occurs for active sessions.
- Enhanced handling of manual refreshes to prevent stale data from affecting new session states.
- Implemented the QuickCommandEditor component for enhanced command input with undo/redo functionality.
- Added unit tests to validate selection preservation, external value handling, and proper rendering in StrictMode.
- Removed the deprecated QuickCommandScriptEditor from QuickCommandPage and integrated QuickCommandEditor for a more streamlined user experience.
- Introduced `build_initial_agent_conversation` function to construct the initial conversation with prior messages, ensuring context is maintained across sessions.
- Implemented logic to filter and limit history messages based on session ID and specified history turns.
- Updated `run_agent_stream` to utilize the new conversation building function, improving the handling of user input and assistant responses.
- Added unit tests to validate the correct restoration of previous turns and session-specific history management.
- Added support for reading and expanding Windows environment variables from the registry.
- Introduced `RegistryEnvValue` struct to manage registry values and their expandability.
- Implemented `reg_value_to_env` and `expand_environment_value` functions for converting registry values to environment variables and expanding them recursively.
- Enhanced `merge_windows_env` function to merge system and user environment variables, ensuring proper handling of expandable values.
- Updated the environment retrieval logic to utilize the new functions, improving compatibility with Windows environment management.
- 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.
- Introduced `TerminalOutputPressureTracker` to monitor output pressure and manage performance modes based on backlog and burst conditions.
- Added logic to handle long lines and wrapped lines efficiently, preventing excessive processing.
- Updated `XTerminal` and related components to integrate output pressure tracking, ensuring smoother terminal performance under load.
- Added tests for new functionality to validate output pressure detection and logical line processing.
- Introduced `shell_available` field in `AutoRemoteFs` and `SftpBackend` to manage shell command execution availability.
- Updated SFTP command execution to return an error if shell commands are attempted in SFTP-only sessions.
- Enhanced logging for SFTP directory read operations and identity resolution processes.
- Added a new constant for SFTP execution timeout to improve command handling.
- Refactored `buildZmodemReceiveCommand` to include control escaping options for overwrite and skip modes.
- Introduced new tests for `buildZmodemReceiveCommand` to validate command generation.
- Updated ZMODEM header and transmission logic to support control escaping, ensuring proper handling of control characters during transmission.
- Added tests to verify control escaping functionality in the ZMODEM protocol.
- Added `sendSessionBinaryInputWithSync` function to broadcast binary input to sync peers.
- Updated `XTerminal` component to utilize the new function for handling binary input with peer synchronization.
- Enhanced tests to verify the correct broadcasting of binary input to multiple peers without text bookkeeping.
- Introduced `escape_telnet_application_data` function to handle IAC byte escaping for telnet transport.
- Added tests for the new escaping functionality to ensure proper data handling in telnet sessions.
- Implemented `sendSessionBinaryInput` function to send binary data to terminal sessions.
- Enhanced `XTerminal` component to handle binary input events, ensuring proper data transmission.
- Updated session commands to support raw data writing, allowing for better handling of binary inputs.
- Added tests for binary input functionality to ensure accurate data processing without text bookkeeping.
- Added the `clearTerminalAll` function to clear the terminal's output while preserving cursor position and handling shell redraws.
- Updated the `XTerminal` component to utilize `clearTerminalAll` for resetting the terminal state.
- Introduced tests to verify the functionality of `clearTerminalAll`, ensuring it clears scrollback without altering the CMD cursor row and requests redraws for shells that handle Ctrl+L.
- Updated the `create_gcc_blocks` function to change the attribute from `#[expect(single_use_lifetimes)]` to `#[allow(single_use_lifetimes)]`, addressing stability concerns with anonymous lifetimes in `impl Trait`.
- Updated the FileExplorer and FileExplorerEntryContextMenu components to include new terminal action icons.
- Replaced existing icons with MdTerminal, MdFolderOpen, and MdOpenInNew for improved visual representation of terminal functionalities.
- Enhanced context menu options for entering directories and opening them in new terminals, improving user experience.
- Introduced new translation keys related to terminal actions, including copying information, entering directories, and opening directories in new terminals.
- Updated English, Korean, Simplified Chinese, and Traditional Chinese localization files to enhance user experience with terminal functionalities.
- Added functionality to open a specified directory in a new terminal session from the file explorer.
- Introduced new callbacks for handling directory changes and terminal commands.
- Enhanced context menu options for directory actions, including entering directories and opening them in new terminals.
- Updated relevant components and tests to support the new directory navigation features.
- Introduced new translation keys related to ConPTY functionality in English, Korean, Simplified Chinese, and Traditional Chinese.
- Enhanced localization to support the recently integrated bundled ConPTY features, improving user experience across different languages.
- Added scripts to prepare and verify the Microsoft ConPTY package for Windows.
- Updated build workflows to include checks for bundled ConPTY in installers.
- Enhanced application support info to display ConPTY status and version.
- Modified the portable updater to handle ConPTY files during updates.
- Updated documentation to reflect changes in ConPTY usage and requirements.
- Introduced tests for ConPTY backend functionality to ensure reliability.
- Added new translation keys for import dialog titles and backup restore confirmations in English, Korean, Simplified Chinese, and Traditional Chinese.
- Enhanced user guidance with clearer descriptions for session import and backup restoration processes.
- Integrated AlertDialog component for confirming backup restore actions.
- Removed type definitions for import sources to streamline the configuration.
- Updated UI elements and translations for improved user experience in the import dialog.
- Refactored source selection handling to accommodate new design and functionality.
- Added a new utility function `stampTerminalWrittenLines` to manage timestamps for lines written to the terminal.
- Created tests for timestamp assignment and behavior in various scenarios, including multiline writes and automatic wrapping.
- Integrated the timestamp functionality into the `XTerminal` component to enhance terminal output tracking.
- Added the translation key "openNewSessionMenu" for English, Korean, Simplified Chinese, and Traditional Chinese.
- Enhanced localization to improve user experience with the new session menu feature.
- Implemented a new keyboard shortcut for opening the new session menu, including support for custom keybindings.
- Updated the TabBar component to manage the new session menu state based on tab focus.
- Enhanced keyboard event handling to prevent default actions for the new shortcut.
- Added corresponding tests to ensure the new shortcut functionality works as expected.
- Added `maxLineNumberDigits` and `sessionId` to the GutterLayout interface for improved layout handling.
- Updated layout state management to dynamically calculate maximum line number width based on visible lines and session context.
- Refactored line number width calculation to utilize the new `maxLineNumberDigits` property.
- Introduced a new translation key "rdpClipboardDisabled" for the disabled clipboard option in English, Korean, Simplified Chinese, and Traditional Chinese.
- Enhanced localization to improve user experience across different languages.
- Introduced a new atomic boolean to manage file transfer availability.
- Updated clipboard advertisement methods to reflect the new file transfer logic.
- Improved handling of clipboard formats based on file transfer capabilities.
- Updated UI component to use a more descriptive translation for clipboard options.
- Added state management for pane focus mode and native fullscreen in the App component.
- Introduced keyboard shortcuts to toggle pane focus and native fullscreen.
- Updated the AppLayout and PaneWorkspace components to support the new focus mode, ensuring inactive panes remain mounted but hidden.
- Enhanced the file transfer context to handle RDP events, allowing users to paste files after RDP transfers.
- Added translations for new clipboard options and updated relevant UI components to reflect these changes.
- Improved test coverage for pane focus behavior in the PaneWorkspace component.
- Deleted the entire `ironrdp-client` and `ironrdp-connector` directories, including all associated files such as Cargo.toml, Cargo.lock, and source code.
- This cleanup removes unused components from the project, streamlining the codebase.
- Added translations for "Upload Folder Contents" and "Upload Folder Contents Empty" in English, Korean, Simplified Chinese, and Traditional Chinese.
- Enhanced user experience by providing localized messages for the new upload functionality.
- Implemented `handleUploadFolderContents` to allow users to upload the contents of a selected local directory.
- Integrated the new upload option into the File Explorer context menu, toolbar, and list items.
- Enhanced error handling and user notifications for empty uploads and failures during the upload process.
- Updated relevant components to support the new upload feature, ensuring a seamless user experience.
- Added `appLocked` state to various terminal components to control user interactions.
- Updated `useTerminalFocusRestore`, `useTerminalRefreshEffects`, and `XTerminal` to respect the app lock state, preventing focus and input when locked.
- Enhanced `TerminalContextMenu` and `xterminalKeyboardController` to block actions while the app is locked.
- Introduced tests to verify behavior under locked and unlocked states, ensuring focus restoration and input handling are correctly managed.
- Increased the `sync_debounce_seconds` from 15 to 60 to improve sync performance.
- Added new fields to `CloudSyncState` for better tracking of remote validation and garbage collection attempts.
- Implemented a function to detect changes in sync settings, ensuring notifications are sent only when necessary.
- Refactored cloud sync manager to optimize settings replacement and remote check logic.
- Added tests for new functionality and validation logic.
- Removed unnecessary span element for the enabled label in the SFTP settings toggle.
- Added aria-label for the switch to enhance accessibility for screen readers.
- Added new entries for "SFTP compatibility mode" and its description in English, Korean, Simplified Chinese, and Traditional Chinese localization files.
- This enhancement improves user experience by providing clear information about the compatibility mode feature across multiple languages.
- Introduced a new compatibility mode in SFTP settings, allowing for better handling of legacy SFTP operations.
- Updated the SshForm component to include a toggle for the compatibility mode.
- Modified SftpSettings interface and related functions to support the new compatibility mode.
- Enhanced SFTP backend to manage sessions based on compatibility mode, ensuring proper session handling and concurrency.
- Updated tests to validate the new compatibility mode functionality and its impact on SFTP operations.