* refactor(sftp): Optimize file download logic and SSH command execution handling
Replace manual chunked downloads with a more concise `sftp.download` method
Consistently use `utf8.decode` to process SSH command output
Remove redundant code and comments, and simplify the logic
* chore: Update `dartssh2` submodule
* feat (Temperature Display): Added an option to switch between degrees Celsius and millicelsius
Allows users to switch temperature units in server settings, resolving the issue of incorrect temperature display on some devices
* chore: Add a participnt
* fix(sftp): Fixed a resource leak issue during file downloads and SSH command execution
Ensured that remote and local file handles are properly closed during file downloads to prevent resource leaks. Additionally, improved error handling during SSH command execution to ensure that all streams are either successfully completed or properly handled in the event of an error.
* fix(ssh): Fixed the logic for handling font paths
Correctly handles font filenames to avoid duplicate file extensions. Also optimized the logic for copying font files to ensure path accuracy.
Add an issue participant
* fix (Settings): Fixed the font clearing feature and added cache cleanup
On the SSH settings page, we fixed an issue where the font clearing feature failed to clear the cache and added logic to clear cached font files. Additionally, we changed the clearing operation to run asynchronously to ensure the page closes only after the operation is complete.
* fix: Check if the component has been mounted before popping the context
Avoid calling `context.pop()` when the component is unmounted, which causes an exception
* chore: Update submodules and dependencies
Update the fl_lib and circle_chart submodules to the latest commit
Upgrade the hive_ce_generator dependency from 1.9.2 to 1.11.0
* build: Updated dependency versions
Updated fl_chart to 1.2.0, json_serializable to 6.13.0, and test to 1.29.0
Replaced flutter_secure_storage_macos with flutter_secure_storage_darwin
Removed the animations and screenshot dependencies, which are no longer in use
* chore: Update French i18n
- Update Riverpod-related dependencies to the latest versions
- Remove the app_links and gtk plugins
- Update the reference path for hive_ce
- Adjust the provider implementation in the generated code
* feat: Added Port Forwarding Functionality
Implemented port forwarding functionality, including the following major changes:
- Added a port forwarding configuration model and related state management
- Added a port forwarding page and interaction logic
- Implemented forwarding connections between local and remote ports
- Integrated into the server features menu
- Added necessary Hive adapters and storage support
- Updated plugin configurations across all platforms to support the new feature
* feat (Port Forwarding): Added multilingual support and optimized implementation
Added multilingual support for the port forwarding feature, including Chinese, English, and other languages
Optimized the port forwarding implementation by adding connection management and error handling
Fixed an issue with state persistence when updating port forwarding configurations
Updated related dependencies and submodules
* fix(port_forward): Fixed port forwarding error handling and redesigned the configuration dialog
Handled uncaught errors when port forwarding is disabled or during connection attempts
Extracted the configuration dialog into a standalone component and added port range validation
* fix(port_forward): Fixed issues with port forwarding connection management and UI layout
Fixed an issue where port forwarding connections were not closed properly; now uses `clientGetter` to delay the retrieval of `SSHClient`
Added cleanup logic when connections are closed to prevent memory leaks
Added a `mounted` check in `PortForwardPage` to prevent operations from executing after the component is unmounted
Wrapped the configuration dialog content in a `SingleChildScrollView` to prevent content overflow
* fix(port_forward): Fixed a concurrent modification exception that occurred when closing a port forwarding connection
Fixed a concurrent modification exception that could occur when closing a local forwarding entry by copying the connection list to prevent modifications to the collection during iteration. Also improved the UI by using theme colors and added error handling for configuration saving.
* fix(port_forward_provider): Fixed an issue where entries were not properly removed when port forwarding was stopped
When port forwarding is stopped, ensure that the corresponding entries are removed from the _forwards map. Additionally, before adding a new forwarding rule, check for and close any existing forwarding rules with the same ID to prevent resource leaks.
* refactor(l1n): Remove unused localization and remote host port translations
* fix(port_forward_provider): Handle errors when closing port forwarding
Add error handling to prevent the program from crashing due to exceptions when closing port forwarding
* refactor(port_forward): Refactor port forwarding state management to use serverId
Directly link port forwarding state management to the server ID to simplify parameter passing
Remove direct dependencies on Spi and use serverId as the core identifier instead
Update relevant providers and page logic to accommodate the new state structure
* fix(port_forward): Fixed a race condition issue in port forwarding operations
Added an _inFlight collection to prevent duplicate operations
Added a _saving state when saving configurations to prevent duplicate submissions
Automatically cleans up forwarding when changes in server connection status are detected
* refactor(port_forward_provider): Remove unnecessary concurrency control logic
Simplify the `toggleForward` method by removing concurrency control for the `_inFlight` collection, as it is not required in the current scenario
* feat (Editor): Add an option to set the editor font family
Add the `editorFontFamily` property to the settings storage and implement font family selection functionality on editor-related pages. Also, update all pages that use the editor settings to support the newly added font family option.
* refactor(editor): Optimize the logic for editor font settings
Standardize the method for retrieving font settings on the editor page to avoid redundant calls to the `fetch()` method. Extract the font retrieval logic into variables or anonymous functions to improve code readability and performance.
- Remove code related to Cupertino routing that is no longer in use
- Update the list of contributors on GitHub
- Update the version of the xterm submodule
* fix(ssh): Ensure that the private key ends with a newline character
Fixes an issue where SSH private key files were not written with a newline character at the end, preventing parsing errors in certain SSH clients
Update the package
* fix(server_func_btns): Fixed an issue with the order of SSH command parameters and added file permission settings
Added permission settings for private key files on non-Windows platforms to ensure secure access. Additionally, the order of SSH command parameters was adjusted to ensure that connection parameters are passed correctly.
* refactor(ssh): Remove terminal copy button and streamline clipboard functionality
Update dependency versions and remove the copy button from the terminal page, integrating clipboard functionality into the terminal controller.
* refactor(ssh): Optimize clipboard paste functionality implementation
Convert the _OnTerminalPaste method to an asynchronous implementation and remove duplicate _paste methods.
* refactor(ssh): Rename clipboard operation function and add new functionality
Renamed _onTerminalPaste to _onClipboardAction and expanded its functionality
Now supports copying selected text to the clipboard and performing paste operations when no text is selected
* fix: Fixed an issue where clipboard operations did not wait for asynchronous completion.
* fix(ssh): Fixed terminal paste operation return logic
Prevented redundant _onTerminalPaste calls after terminal paste operations
- Update the fl_lib submodule to the latest commit
- Remove dependency comments using submodules from pubspec.yaml
- Upgrade local_auth and related platform implementations to new versions