Skip to content

Phase 2: SSH & session management — add open/edit/delete/duplicate/import/export and SSH placeholders - #5

Merged
delichik merged 3 commits into
mainfrom
codex/start-phase-two-development-with-subagent
Jun 3, 2026
Merged

Phase 2: SSH & session management — add open/edit/delete/duplicate/import/export and SSH placeholders#5
delichik merged 3 commits into
mainfrom
codex/start-phase-two-development-with-subagent

Conversation

@delichik

@delichik delichik commented Jun 3, 2026

Copy link
Copy Markdown
Owner

Motivation

  • Implement Phase 2 (SSH & session management MVP) features to let users open, save, edit, delete, duplicate, import and export session profiles and to provide clear UX when SSH backend is not yet implemented.
  • Surface host-key and credential storage boundaries so front-end and back-end have explicit contracts for secrets and host-key policy handling.

Description

  • Frontend: extended QuickConnectPanel to support password/private-key/passphrase/host-key policy and edit mode, wired into App flows for opening, saving and editing sessions, and added UI for import/export and per-session actions in SessionSidebar; StatusBar now shows operation messages. (files: src/features/sessions/QuickConnectPanel.tsx, src/features/sessions/SessionSidebar.tsx, src/app/App.tsx, src/components/StatusBar.tsx, src/styles/global.css).
  • Types & IPC: added HostKeyPolicy, HostKeyState, SessionExportBundle, extended QuickConnectDraft, and new IPC helpers deleteSession, duplicateSession, exportSessions, importSessions; preview-mode localStorage sanitization ensures credential refs are removed during export/import. (files: src/bindings/types.ts, src/bindings/ipc.ts).
  • Backend (Rust): added config store support for delete_session, duplicate_session, export_sessions, and import_sessions with validation and scrubbing of credential_ref, registered new Tauri commands (sessions_delete, sessions_duplicate, sessions_export, sessions_import), introduced SSH host-key policy/record types and a credential-store trait stub, and changed terminal SSH placeholder to emit a clear notice and mark the runtime failed instead of staying connecting. (files: src-tauri/src/config/mod.rs, src-tauri/src/commands/mod.rs, src-tauri/src/lib.rs, src-tauri/src/ssh/mod.rs, src-tauri/src/crypto/mod.rs, src-tauri/src/terminal/mod.rs).
  • Behavior notes: passwords and passphrases are treated as ephemeral inputs (not persisted or exported); exported bundles default to scrubbing credential references; opening a saved session converts SessionProfile into a QuickConnectDraft and reuses the existing terminal open flow.

Testing

  • Ran npm run typecheck (TypeScript checks) and it succeeded.
  • Performed front-end production build with npm run build / Vite and it succeeded.
  • Ran cargo fmt successfully and git diff --check passed.
  • Ran cargo check for the Rust backend but it failed in this environment due to a missing system dependency required by glib-sys (glib-2.0.pc / pkg-config); this is an environment issue rather than a code error and will block local Rust build in this container until system packages are available.

Codex Task

@delichik
delichik merged commit 234e50d into main Jun 3, 2026
@delichik
delichik deleted the codex/start-phase-two-development-with-subagent branch June 3, 2026 04:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant