- Added support for `execute_command` and `final_answer` tools in the agent's functionality, allowing for structured command execution and response handling.
- Updated the agent system prompts to reflect the new tool usage rules and JSON response formats.
- Implemented deserialization logic for tool arguments and enhanced error handling for tool invocation.
- Refactored agent tool management to streamline the process of executing commands and providing final answers based on user interactions.
- Added new translations for ProxyCommand and related placeholders in English and Chinese locales.
- Updated the proxy search functionality to include command in the search criteria for improved usability.
- Introduced a new `command` field in the ProxyForm and ProxyConfig interfaces to handle ProxyCommand functionality.
- Updated the ProxyDialog component to include a Textarea for command input when the protocol is set to "proxycommand".
- Enhanced validation logic to ensure the command is provided when using ProxyCommand.
- Modified the NetworkPanel and SshForm components to display and utilize the command appropriately.
- Implemented backend support for handling ProxyCommand in SSH connections, including command expansion and process management.
- Adjusted color values for the GitHub Dark theme, including background, panel, terminal, and hover colors to enhance visual consistency.
- Updated terminal selection and line highlight colors for better integration with the overall theme design.
- Removed unused `std_mpsc` imports and replaced the reader completion mechanism with a more efficient command-based shutdown approach.
- Reduced the serial port timeout from 100ms to 10ms for improved responsiveness.
- Updated the command loop to utilize blocking reception for better handling of incoming commands, enhancing overall session management.
- Reordered imports in `auth.rs` for better organization.
- Enhanced readability by formatting multi-line expressions and conditions in various authentication functions.
- Ensured consistent error handling and response formatting across authentication methods.
- Added a new function `download_known_size_to_local_file` to manage downloading files of known sizes using concurrency for improved performance.
- Refactored `sftp_directory_concurrency` to simplify concurrency calculations based on available handles.
- Enhanced error handling and progress tracking during file downloads, ensuring robust transfer management.
- Updated `download_remote_file_inner_with_controller` to utilize the new download function, streamlining the download process.
- Modified color values for GitHub Dark, Nya High Contrast, Nya High Contrast White, Dracula, Nord, Monokai Pro, and Solarized Light themes to enhance visual consistency and aesthetics.
- Adjusted background, border, and text colors across themes to improve readability and user experience.
- Updated terminal colors and selection backgrounds for better integration with the overall theme design.
- Added support for detecting the shell type during SSH session initialization, allowing for better integration with various shell environments.
- Implemented logic to manage suppressed visible output, ensuring that important output is not lost during SSH interactions.
- Updated the injection script for different shell types to include a ready marker, improving the synchronization of shell readiness with the client.
- Enhanced logging to provide more context during SSH shell integration, aiding in debugging and monitoring of shell interactions.
- Introduced a new `getLineOffset` prop in the TerminalGutter component to manage line offsets dynamically.
- Updated line timestamp resolution logic to account for the line offset in both TerminalGutter and XTerminal components.
- Enhanced XTerminal to maintain and update the gutter line offset during terminal operations, improving accuracy in line rendering and timestamping.
- Added a new function to check if the event target is inside the terminal root element.
- Updated the zoom handling logic to prevent zooming when the event is outside the terminal root, improving user experience and preventing unintended zoom actions.
- Added functionality to restore terminal window layout on startup based on user settings.
- Introduced new settings for managing terminal window layout restoration in the GeneralTab component.
- Enhanced state management for terminal windows, including serialization and deserialization of layouts.
- Updated context and types to support the new terminal window layout features.
- Introduced new localization strings for the command palette in both English and Chinese locale files.
- Updated titles and quick switch commands to reflect the command palette functionality, enhancing user experience.
- Added descriptions for restoring window layout on startup, improving clarity for users.
- Introduced a new command palette option in the Header component, allowing users to open it via a dedicated action.
- Added a search icon to the icon map for visual representation in the command palette.
- Updated HeaderProps interface to include the new onOpenCommandPalette prop for handling command palette actions.
- Introduced new localization strings for SSH authentication, including prompts for password handling and key management.
- Updated English and Chinese locale files to enhance user experience during SSH connection setup.
- Added SshAuthDialog component for handling SSH authentication requests.
- Integrated SSH authentication state management in App component.
- Updated AppLayout to include SSH authentication dialog.
- Introduced PendingSshAuthManager for managing pending SSH auth requests in Rust backend.
- Enhanced SshForm to support new password source options for SSH connections.
- Updated error handling to include new SSH authentication failure messages.
- Added logic to calculate the sort order for new connections based on existing sibling connections, ensuring proper ordering when saving a new connection.
- Enhanced the connection object to include the computed sort order, improving the organization of saved connections.
- Changed the default base URL for the Mimo provider in both TypeScript and Rust configuration files to ensure consistency and correct API endpoint usage.
- Changed the title for portable edition updates to better reflect the availability of updates in both English and Chinese locale files, enhancing clarity for users.
- Removed unnecessary checks for portable runtime in the update check logic.
- Updated the UpdateDialog to conditionally set the status based on the portable runtime.
- Added display for release notes in the UpdateDialog when local update information is available, improving user feedback during updates.
- Changed "Certificate file loaded" to "OpenSSH user certificate loaded" for clarity.
- Updated the selection prompt for certificate files to specify "OpenSSH user certificate" in both English and Chinese locales, enhancing user understanding.
- Updated TerminalSearchBar to ensure input focus only when visible, enhancing user experience.
- Modified useTerminalSearch hook to clear terminal selection during search cleanup, improving search reliability.
- Introduced new font weight options for terminal appearance, including weights from Light to ExtraBold.
- Added search-related terms and descriptions to enhance user experience during terminal searches, including case sensitivity and regex options.
- Ensured consistency in terminology across English and Chinese locale files.
- Added support for searching terminal history, allowing users to search through previous commands and outputs.
- Updated `TerminalSearchBar` to include new search flags and mode options for better user experience.
- Refactored `XTerminal` to integrate the new search features, including handling search state and flags.
- Enhanced `useTerminalSearch` hook to manage search state and history effectively.
- Introduced new types and interfaces for terminal search flags and history search requests, improving type safety and clarity.
- Introduced `TERMINAL_FONT_WEIGHT_OPTIONS` to allow users to select font weights for terminal appearance.
- Updated `AppearanceTab` to include settings for terminal font weight and bold weight, enhancing customization options.
- Modified `XTerminal` to apply selected font weights, improving visual consistency.
- Adjusted context and hooks to support new font weight properties in appearance settings.
- Ensured default values for font weight and bold weight are set in application context and Tauri settings.
- Introduced `useAppLockState` hook to manage the application's lock state, including loading and updating the lock status.
- Updated `AppProvider` and `ChildAppProvider` to utilize the new lock state management, ensuring consistent behavior across components.
- Enhanced `useIdleLock` to incorporate the lock state, preventing idle locking when the app is locked.
- Added a `LockScreen` component to display when the app is locked, improving user experience during locked states.
- Simplified the wording for SSH connection messages in both English and Chinese locales for clarity.
- Added new translations for search-related terms, enhancing the user experience during terminal searches.
- Ensured consistency in terminology across different language files.
- Added a function to check for "not found" errors during remote file deletions, enhancing the delete operation's robustness.
- Updated the `remove_file` method to handle cases where the file may not exist without returning an error, improving user experience.
- Introduced utility functions to streamline error handling for SFTP operations, ensuring consistent behavior across the SFTP backend.
- Enhanced directory removal logic to gracefully handle non-existent directories, reducing unnecessary error messages.
- Introduced `TerminalSearchState` to manage search status and results within the terminal.
- Updated `TerminalSearchBar` to display search status and error messages dynamically.
- Enhanced `useTerminalSearch` hook to support new search options and state management.
- Refactored `XTerminal` to integrate the updated search functionality, improving user experience during terminal searches.
- Added comprehensive type definitions and utility functions for better maintainability and clarity.
- Introduced `ai` field in `PortableAppSettings` to manage AI-related configurations.
- Updated methods to handle cloning and normalization of AI settings.
- Added tests to ensure legacy settings can be deserialized correctly without AI data, maintaining backward compatibility.
- Introduced "Overwrite and don't ask again" and its description for task-specific duplicate handling in both English and Chinese locale files.
- Enhanced user experience by providing clearer options for managing duplicate file uploads.
- Introduced a dropdown menu in the TransferDuplicateDialog for applying actions to tasks, allowing users to choose "overwriteAllForTask".
- Updated the TransferDuplicatePrompt type to include the new choice and adjusted related functions to support this feature.
- Added a new duplicate strategy selection in the TransferTab settings, enabling users to configure their preferred handling of duplicate files.
- Refactored related logic in transferDuplicateResolution to accommodate the new options and improve overall user experience during file transfers.
- Included phonetic pronunciation for "NyaTerm" in the English README.
- Added the Chinese phonetic representation "妮雅" in the Chinese README.
- Enhanced the overall presentation of the project description in both languages.
- Replaced local image paths with direct URLs for WeChat and Alipay sponsorship QR codes in both Chinese and English documentation.
- Enhanced the visual presentation of sponsorship options by wrapping images in paragraph tags for better formatting.
- Added a new `webviewReloadGuard` to prevent page reloads when keyboard shortcuts are used inside the terminal component.
- Updated `XTerminal` to include a data attribute for terminal root identification.
- Ensured that the reload prevention logic only triggers outside the terminal context, enhancing user experience during terminal interactions.
- Replaced HTML image tags with Markdown syntax for WeChat and Alipay sponsorship QR codes in both Chinese and English documentation.
- Improved consistency in documentation formatting across different languages.
- Introduced a new "Sponsor" section in both English and Chinese README files to encourage community support for NyaTerm.
- Created dedicated sponsorship documentation with payment options and alternative support methods.
- Updated sidebars to include the new sponsorship page for better visibility.
- Added payment QR codes for WeChat and Alipay to facilitate contributions.
- Introduced a new `ChildWindowStateKey` type to manage the state of various child windows.
- Updated `openChildWindow` function to restore dimensions and maximized state from saved states based on the window label.
- Implemented state saving for child windows during application shutdown and on close events, improving user experience by preserving window states.
- Refactored window state handling in `window_state.rs` to support loading and saving of child window states, ensuring consistent behavior across the application.
- Added event listeners to manage focus changes for modal child windows, emitting a notification when a modal gains focus.
- Updated the window manager to raise the appropriate modal window group when a child window is focused, improving user experience during interactions.
- Refactored existing functions to streamline modal window focus management and ensure consistent behavior across the application.
- Introduced pointer drag support in ConnectionItem and GroupNodeItem components, allowing for improved user interactions during drag-and-drop operations.
- Added new pointer event handlers for starting, moving, ending, and canceling pointer drags, enhancing the overall drag experience.
- Updated SavedConnections component to manage pointer drag state and resolve drop targets based on pointer position, improving accuracy in item placement.
- Refactored TabBar to support pointer-based dragging, ensuring a consistent experience across components.
- Implemented a new `handlePointerCancel` function in the ActivityBar to manage pointer cancellation events, enhancing drag-and-drop interactions.
- Updated the TabBar component to utilize a callback for detecting drag end proximity to the tab strip, improving the user experience during tab management.
- Renamed and refactored the `sanitizeTerminalCommand` function to `stripTerminalCommandPrompt` for clarity.
- Enhanced the command sanitization process to preserve leading whitespace while removing known shell prompt prefixes.
- Updated references in `terminalInputTracker.ts` to utilize the new function, improving command normalization and candidate addition logic.
- Implemented the ability to close tabs through mouse actions in the TabBar component.
- Updated interaction settings to include "close_tab" action and its corresponding label for localization.
- Enhanced the tab management experience by allowing users to close tabs directly from the interface.
- Added new localization entries for session duplication commands and related descriptions in both English and Chinese JSON files.
- Introduced translations for command delay settings and SSH connection reuse options, enhancing user experience for session management.
- Updated shortcut labels and descriptions to reflect new functionalities, improving accessibility and clarity for users.
- Added a new feature to copy selected saved connections, allowing users to duplicate connections easily.
- Implemented a keyboard shortcut to trigger the copy action, enhancing user experience and accessibility.
- Refactored the component to manage keyboard events and handle connection copying asynchronously.
- Introduced a reference for the panel root to manage event listeners effectively.
- Added support for startup commands with a delay when duplicating or multiplexing sessions.
- Introduced new dialog components for user input of startup commands and delays.
- Updated session handling logic to accommodate startup commands, enhancing user experience during session management.
- Implemented settings for default command delay in the interaction settings.
- Enhanced keyboard shortcuts for new command functionalities, improving accessibility.
- Added a new constant for cloud sync cleanup timeout to improve resource management.
- Implemented detailed status updates during cloud sync operations, providing better visibility into the connection, verification, and reading processes.
- Refactored existing cloud sync methods to include tracing of each step, enhancing error tracking and debugging capabilities.
- Improved overall structure and readability of the cloud sync manager code.
- Reduced the maximum number of history log entries to 100 for better performance.
- Refactored the log reading function to read entries directly from file content instead of using a buffered reader, enhancing efficiency.
- Implemented logic to ensure only the most recent entries are returned based on the specified limit.
- Added unit tests to verify the correct behavior of history entry retrieval under various conditions.
- Updated the download logic to differentiate between single and multiple file selections, improving user experience during file downloads.
- Enhanced error handling by ensuring proper cancellation of operations when user input is invalid, preventing unintended behavior.
- Updated CSS classes in AlertDialog and Dialog components to ensure proper handling of minimum and maximum widths, enhancing layout responsiveness.
- Added break-word and overflow-wrap properties to title and description elements for improved text handling in various screen sizes.
- Refactored the directory loading process to ensure proper handling of cached home directories and root directory loading.
- Added cancellation checks to prevent state updates after component unmounting.
- Enhanced error management during home directory retrieval, ensuring fallback to root directory loading when necessary.
- Added new localization entries for the "paste image as path" functionality and its description in both English and Chinese JSON files, enhancing user experience for image handling in terminal sessions.
- Introduced a new setting in the TerminalTab component to allow users to paste images as file paths.
- Updated the TerminalContextMenu and XTerminal components to handle pasting clipboard image paths, enhancing user experience during file transfers.
- Implemented clipboard path reading and image uploading to SSH, ensuring seamless integration with existing terminal functionalities.
- Modified AppContext and ChildAppProvider to include default settings for the new image path pasting feature.
- Introduced a new function to calculate transfer speed in bytes per second, enhancing the user interface by displaying real-time transfer rates.
- Updated the TransferItem interface to include a speedBytesPerSec property for tracking transfer speed.
- Modified the TransferRow component to show the calculated speed instead of progress percentage, improving clarity during file transfers.
- Implemented logic to manage transfer speed samples, ensuring accurate speed reporting during ongoing transfers.
- Introduced new enums and functions to manage download progress and ensure completion, improving error handling for unexpected EOF scenarios during file downloads.
- Refactored the `read_sftp_chunk` function to return additional information about download completion status.
- Updated the download logic to handle cases where the remote file size is zero, ensuring proper error reporting and completion verification.
- Added a new hook, useMacSelectionGuard, to manage text selection behavior on macOS, ensuring selections are preserved only in designated areas.
- Updated XTerminal to reset selection state on various pointer and visibility events, improving user experience during terminal interactions.
- Modified CSS to restrict text selection to intentional text surfaces, enhancing overall usability and preventing accidental selections.
- Updated terminal font size management to use a delta approach, allowing for dynamic adjustments based on user interactions.
- Introduced new utility functions for increasing, decreasing, and resetting font size deltas.
- Modified relevant components and hooks to accommodate the new font size delta logic, ensuring consistent font size rendering across the application.
- Updated type definitions and default settings to include font size delta in terminal configurations.
- Updated PanelHeader to improve layout with flex properties for better responsiveness.
- Created a new DeleteIconButton component for consistent delete action styling across AiTab, simplifying the delete button implementation in AiModelsTab and ActionListEditor.
- Ensured better handling of text truncation and layout adjustments in the UI components.
- Added new localization entries for the workspace padding setting and its description in both English and Chinese JSON files, enhancing user experience and accessibility for this feature.
- Introduced a new setting for workspace padding in the TerminalTab component, allowing users to toggle this feature.
- Updated the terminal layout in XTerminal to conditionally apply padding based on the new setting.
- Ensured default values for workspace padding are set in AppContext and ChildAppProvider.
- Added type definitions for workspace padding in global types and updated terminal settings configuration.
- Enhanced the pty, serial, and telnet session handling to use non-blocking command reception via channels, improving responsiveness.
- Introduced signaling for session closure using channels to ensure proper cleanup and resource management.
- Updated command loops to handle empty states gracefully, reducing potential blocking issues during session operations.
- Added new entries for macOS IME compatibility mode and its description in both English and Chinese localization files, improving user guidance for this feature.
- Introduced a new setting for macOS IME compatibility in the InteractionTab component, allowing users to toggle this feature.
- Updated the AppContext and ChildAppProvider to include the new mac_ime_compatibility setting with a default value.
- Implemented the installation of a compatibility patch for macOS IME in the useTerminalSettings hook, ensuring proper handling of input events.
- Added necessary type definitions and updated the logger to support new functionality related to terminal input handling.
- Created a new utility file for managing macOS IME compatibility logic.
- Implemented `symlink_openssh` method in `RawSftpSession` and `SftpSession` to create symlinks using OpenSSH's argument order.
- Updated `create_symlink` in `SftpBackend` to utilize the new OpenSSH-compatible method.
- Enhanced directory listing functions in `ScpEnhancedBackend` and `ScpNormalBackend` to correctly handle symlink checks and path formatting.
- Introduced `remote_dir_listing_path` utility function to standardize directory path handling.
- Added functionality to suppress command suggestions when executing interactive commands such as `htop`, `less`, and `vim`.
- Introduced new utility functions for detecting interactive commands and managing suggestion suppression state.
- Updated terminal input handling to reset suggestion suppression based on command execution and input context.
- Enhanced event handling to emit session command acceptance, allowing for better integration with command suggestion logic.
- Added new entries for local line editing feature in both English and Chinese localization files, enhancing user understanding of the functionality.
- Updated descriptions to clarify the purpose and usage of the local line editing option in Telnet sessions.
- Introduced a new local line editing option in the TelnetForm component, allowing users to edit input locally and send the full command upon pressing Enter.
- Updated state management in NewSessionPage to handle the new local line editing setting.
- Enhanced session configuration and serialization to include local line editing support.
- Added necessary type definitions and default values for local line editing in the global types and configuration files.
- Implemented backend support for local line editing in the Telnet session handling logic.
- Integrated a new performance configuration for keyword highlighting, allowing for dynamic adjustment of overscan lines and decoration limits based on platform.
- Implemented budget management for decoration creation to enhance performance during viewport refreshes.
- Refactored decoration logic to prevent overlapping with existing ANSI colors and improve overall efficiency in rendering highlights.
- Implemented validation for remote `find` and `stat` commands to ensure compatibility with GNU options that utilize NUL output.
- Added error handling for cases where the remote host does not support the required command options, improving robustness of SCP Enhanced functionality.
- Added the "Windows Terminal" entry to the shell options in both English and Chinese localization files, enhancing user experience for terminal selection.
- Introduced a constant for built-in shell paths to simplify shell path checks.
- Updated the shell selection logic to utilize the new constant for better maintainability.
- Added support for Windows Terminal in the shell command resolution, including parsing settings and profiles.
- Implemented fallback logic for Windows Terminal to ensure a default shell is used when necessary.
- Added tests to validate the new Windows Terminal functionality and shell command resolution.
- Introduced a maximum restart limit for keyboard-interactive authentication to handle partial successes.
- Added structured logging for authentication rounds and restart attempts to improve debugging and user feedback.
- Updated the authentication flow to support multiple restarts while tracking the number of attempts.
- Included a new error message for cases where the GitHub OAuth Client ID is not configured, enhancing user feedback during authentication.
- Updated both English and Chinese localization files to reflect this change.
- Included steps to set the GitHub OAuth App device flow Client ID for local builds using GitHub Gist.
- Provided examples for both bash and Windows PowerShell environments to facilitate user setup.
- Added new packages: cbc, foreign-types, foreign-types-shared, hyper-tls, md-5, mea, and opendal-layer components.
- Updated existing dependencies to their latest versions, including reqwest and opendal.
- Refined Cargo.toml to specify features for reqwest and tauri-plugin-updater, improving build configuration.
- Removed deprecated package entries and ensured compatibility with the latest library versions.
- Added a new function to provide specific error messages for GitHub Gist authentication issues.
- Updated the SyncBackupTab component to utilize the new error handling function for better user feedback.
- Implemented a check to skip the startup network check for GitHub Gist, enhancing performance during startup.
- Introduced tests to validate the new error handling and startup check logic.
- Introduced localization entries for Telnet input behavior and compatibility settings in both English and Chinese localization files.
- Enhanced user understanding of Telnet features by updating relevant strings.
- Added a collapsible section for advanced Telnet configuration options, enhancing user experience by organizing settings.
- Introduced tabs for input and compatibility settings, allowing users to easily navigate between different configuration options.
- Integrated state management for the collapsible section to improve interactivity and usability of the Telnet form.
- Introduced new localization entries for advanced Telnet settings, including local echo, character-at-a-time input, and raw TCP CLI options.
- Updated descriptions to enhance user understanding of Telnet features in both English and Chinese localization files.
- Added new props to the TelnetForm component for advanced Telnet settings including raw TCP CLI, enter mode, local echo, force character-at-a-time, and NAWS/SGA options.
- Implemented UI elements for toggling these settings, improving user control over Telnet connections.
- Updated NewSessionPage to manage and persist these new settings for Telnet sessions.
- Enhanced type definitions to accommodate new configuration options for Telnet connections.
- Revised English and Chinese strings for the OTP dialog to improve user understanding.
- Changed "2FA cancelled" to "Verification cancelled" and updated descriptions for better clarity.
- Enhanced titles to "Authentication Prompt" and added a new title format for rounds.
- Replaced instances of "sync and backup" with "cloud sync" in English and Chinese localization files for consistency.
- Added new localization entries for Aliyun Drive, Google Drive, and OneDrive OAuth settings.
- Removed deprecated backup-related strings to streamline the localization files.
- Enhanced descriptions for cloud sync features and settings to improve user understanding.
- Added new dependencies: `crossbeam-epoch`, `moka`, and `tagptr` to `Cargo.lock`.
- Updated `Cargo.toml` to include additional features for `opendal`, enhancing cloud service support.
- Replaced references to "sync and backup" with "cloud sync" throughout the documentation for consistency.
- Clarified the functionality of cloud sync, emphasizing its role in cross-device configuration synchronization and encrypted backups.
- Updated various sections to reflect the new terminology, including settings, guides, and security models.
- Enhanced localization strings to align with the updated terminology and functionality descriptions.
- Added support for GitHub Gist authentication via device flow, enabling users to manage their Gist settings directly within the application.
- Introduced new types and validation for OAuth drive settings, including Google Drive, OneDrive, and Aliyun Drive.
- Refactored cloud sync settings to accommodate new providers and streamline validation error handling.
- Updated UI components to reflect changes in sync backup terminology, improving clarity and consistency.
- Removed deprecated functions related to remote backups, enhancing code maintainability.