Implement colon command mode over storage actions #23

Closed
opened 2026-08-09 19:11:00 +00:00 by hugo · 1 comment
Owner

Objective

Implement Mutt-style : command mode with the complete base pass and pass-otp action surface.

Scope

  • Open a bottom command prompt with editable input, history, cancellation and context-aware completion.
  • Parse pseudo-commands for init, list/show, find/grep, insert/edit, generate, remove/move/copy, Git, OTP, lock/unlock, help and version.
  • Reuse shared request types or storage APIs directly; never invoke the CLI binary or copy CLI domain logic.
  • Route viewer/editor commands to TUI panes and destructive commands through TUI confirmation dialogs.
  • Display typed errors and progress without leaking arguments containing secrets.

Acceptance criteria

  • A coverage table maps every milestone-01 CLI operation to a : command.
  • Quoting, paths with spaces, completion, history, invalid flags, cancellation and unavailable actions are tested.
  • Command history redacts or omits secret-bearing input.
  • Process inspection proves command mode never starts ironstorage, pass, git, gpg or a shell.

Prerequisites

Default keymap and contextual help; all relevant storage APIs from milestone 01.

## Objective Implement Mutt-style `:` command mode with the complete base pass and pass-otp action surface. ## Scope - Open a bottom command prompt with editable input, history, cancellation and context-aware completion. - Parse pseudo-commands for init, list/show, find/grep, insert/edit, generate, remove/move/copy, Git, OTP, lock/unlock, help and version. - Reuse shared request types or storage APIs directly; never invoke the CLI binary or copy CLI domain logic. - Route viewer/editor commands to TUI panes and destructive commands through TUI confirmation dialogs. - Display typed errors and progress without leaking arguments containing secrets. ## Acceptance criteria - A coverage table maps every milestone-01 CLI operation to a `:` command. - Quoting, paths with spaces, completion, history, invalid flags, cancellation and unavailable actions are tested. - Command history redacts or omits secret-bearing input. - Process inspection proves command mode never starts `ironstorage`, `pass`, `git`, `gpg` or a shell. ## Prerequisites Default keymap and contextual help; all relevant storage APIs from milestone 01.
hugo added this to the 02 - Mutt-style terminal UI milestone 2026-08-09 19:11:00 +00:00
hugo added the enhancement label 2026-08-09 19:11:00 +00:00
Author
Owner

Implemented in commit d66d9b0. The TUI now has a real bottom-line colon prompt with Unicode-safe cursor editing, cancellation, bounded history, Up/Down recall, Tab/Shift-Tab contextual completion, shell-style quoting, and completion from the full storage-provided tree. Parsing delegates flags, aliases, and validation to ironstorage::command and emits typed CommandRequest values for every base pass, Git, and pass-otp family; a checked-in coverage table documents the mapping. Show/edit route through authenticated TUI panes, help/version render in-process, lock/unlock are mode-aware, unavailable operations report typed context errors, and remove requests require y/n confirmation before emission. OTP URIs, Git configuration, and remote URL commands are masked and omitted from history and error text. No CLI, shell, pass, git, or gpg process is launched. Verified with cargo fmt --all -- --check; RUSTFLAGS='-D warnings' cargo check --workspace --all-targets; cargo clippy --workspace --all-targets -- -D warnings; cargo test --workspace.

Implemented in commit d66d9b0. The TUI now has a real bottom-line colon prompt with Unicode-safe cursor editing, cancellation, bounded history, Up/Down recall, Tab/Shift-Tab contextual completion, shell-style quoting, and completion from the full storage-provided tree. Parsing delegates flags, aliases, and validation to ironstorage::command and emits typed CommandRequest values for every base pass, Git, and pass-otp family; a checked-in coverage table documents the mapping. Show/edit route through authenticated TUI panes, help/version render in-process, lock/unlock are mode-aware, unavailable operations report typed context errors, and remove requests require y/n confirmation before emission. OTP URIs, Git configuration, and remote URL commands are masked and omitted from history and error text. No CLI, shell, pass, git, or gpg process is launched. Verified with cargo fmt --all -- --check; RUSTFLAGS='-D warnings' cargo check --workspace --all-targets; cargo clippy --workspace --all-targets -- -D warnings; cargo test --workspace.
hugo closed this issue 2026-08-10 08:29:19 +00:00
Sign in to join this conversation.