feat: stabilize SFTP and add secure SSH terminal integration - #2694
feat: stabilize SFTP and add secure SSH terminal integration#2694bajrangCoder wants to merge 10 commits into
Conversation
Greptile SummaryThis PR replaces credential-bearing SFTP URLs with encrypted native profiles, strengthens SFTP connection and cleanup behavior, and adds interactive SSH terminals backed by those profiles.
Confidence Score: 5/5The PR appears safe to merge because no blocking failure remains in the eligible follow-up review set. No blocking failure remains. Important Files Changed
Sequence DiagramsequenceDiagram
participant App as Acode startup
participant Migration as sftpProfiles.js
participant Store as Native encrypted profile store
participant FS as SFTP filesystem
participant Terminal as SSH terminal
App->>Migration: Migrate persisted legacy SFTP URLs
Migration->>Store: Encrypt credentials/private key
Store-->>Migration: profile-id
Migration-->>App: Persist sftp://profile-id/path
App->>FS: Open remote files using profile-id
FS->>Store: Resolve credentials internally
App->>Terminal: Open SSH terminal for profile-id
Terminal->>Store: Resolve credentials internally
Terminal-->>App: Stream PTY events
Reviews (5): Last reviewed commit: "fix(ssh): open terminal in selected remo..." | Re-trigger Greptile |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
Tested with Ed25519 private key authSSH Terminal works completely fine on my device, find the screenshots below. Tho I cannot keep the Termux Home directory via SFTP open for too long without Error. Acode Crash ReportWebView Version: 150.0.7871.181 Stack Trace: |
|
@UnschooledGamer try the latest commit , that crash is addressed |
This comment was marked as outdated.
This comment was marked as outdated.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
✅ , no longer occurs |
This comment was marked as outdated.
This comment was marked as outdated.
This comment has been minimized.
This comment has been minimized.
|
Preview Release for this, has been built. |


Summary
This PR improves the reliability and security of Acode's SFTP integration and adds interactive SSH terminal support using the existing Maverick Synergy SSH library.
It addresses the SFTP lifecycle, cleanup, and path issues reported in:
SFTP reliability improvements
SSH terminal integration
SessionChannelNG.xterm-256colorPTY and start an interactive remote shell.Secure SFTP profiles
Previously, SFTP URLs could contain usernames, passwords, key-file paths, and passphrases.
This PR replaces persisted connection URLs with opaque identifiers:
The corresponding connection profile is stored natively and encrypted using:
Encrypted profiles contain the server details and authentication material. Profile reads exposed to JavaScript return metadata only and never return passwords, passphrases, or private-key contents.
Private-key files selected for new profiles are read by the native plugin and stored inside the encrypted profile instead of being copied into an SFTP URL.
Migration
On startup, legacy SFTP URLs are migrated across:
Migration behavior is intentionally conservative: