- encrypt SSH configuration with Argon2id and XChaCha20-Poly1305
- support WebDAV and S3-compatible storage backends
- add ETag-based conflict protection
- add sync settings and localized UI
- keep remote credentials in memory only
This commit introduces a robust logging system and optimizes remote metric collection over SSH:
- Logging Infrastructure:
- Replaced ad-hoc `eprintln!` and `println!` with the `tracing` crate.
- Implemented a rolling file appender in `~/.config/ashell/log/` keeping the last 6 minutes of logs.
- Restricted stdout logging to debug builds only, keeping release builds clean.
- SSH Multiplexing & Performance:
- Shared `russh::client::Handle` across tasks using `Arc<Mutex<>>`.
- Replaced the 5-second polling of new SSH connections with `SampleMetrics` over the existing channel.
- Eliminated authentication log spam and vastly improved polling latency.
- Optimized terminal `resize` events to only trigger when dimensions actually change, further reducing UI layout spam and backend load.
- Application & Network Auditing:
- Log window lifecycles (open, close).
- Log UI actions such as session connects and tab closures.
- Detailed connection logs distinguishing between graceful EOFs, network drops, and abrupt closures.
- Granular SFTP tracking including directory navigation, creation, batch uploads/downloads, and online file editing.
- Add right-click 'Edit' context menu option for common text formats.
- Automatically download file to a temporary directory and open in default editor.
- Background daemon listens for save events and auto-uploads changes quietly.
- Isolate auto-sync from transfer history UI.
- Clear legacy session config tmp files on application startup.
- Added generated ashell.png, ashell.icns, and ashell.ico to assets/icons/
- Configured gpui WindowOptions to embed and display the icon for Linux
- Added winres build dependency and build.rs to embed Windows .ico into the executable
- Updated package-macos-app.sh and release.yml to bundle macOS .icns into the .app bundle
- Removed manual copying of icons into release zip/tarballs since they are now embedded
- Add full i18n support for UI components including settings and sidebar
- Add connection progress tracking strings (Connecting, Failed, etc.)
- Fix 'No session' display issue when no SSH/Local tab is active
- Align SFTP 'show hidden files' checkbox text size with adjacent buttons
- Add border to language settings dropdown for better visibility