- 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.
The reveal toggle in the account and credential managers cached the
decrypted password per entry and never invalidated it on save or delete.
After editing an entry the eye toggle kept showing the previous plaintext
(or an empty value) because handleToggleReveal short-circuits whenever the
id is already in passwordCache.
Clear the cached value and revealed state for the affected entry after
save_password/save_credential and delete_password/delete_credential so the
next reveal re-fetches the current value from the backend.
Fixes#691
- 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.
- Introduced functions to resolve the insertion of file tabs after active same-session tabs and to determine the next active tab after closing a file document.
- Updated `AppProvider` to utilize new resolution logic for tab insertion and active tab management.
- Added comprehensive tests for new tab resolution behaviors in `workspaceTabs.test.ts`.