Complete the end-to-end CLI parity audit #14

Closed
opened 2026-08-09 18:57:17 +00:00 by hugo · 1 comment
Owner

Objective

Complete and audit the full Rust CLI as the executable milestone gate.

Scope

  • Wire every storage operation into apps/cli with pass-compatible command dispatch, aliases, prompts, stdout/stderr separation, help, version and exit statuses.
  • Exercise complete workflows from TOML configuration through key unlock, vault mutation, automatic commit, HTTPS synchronization, clipboard/QR, and OTP.
  • Add shell completion generation without calling external tools.
  • Document the deliberate architecture boundaries: built-in otp replaces shell extension execution, only CLI edit may launch the configured editor, and pass git supports embedded documented workflows rather than arbitrary Git executable passthrough.
  • Audit the binary and dependency graph for process launching outside the narrow editor adapter, unsafe project code, unsupported remote schemes, secret leakage and license obligations.

Acceptance criteria

  • Every documented first-party pass command and pass-otp command is represented in the compatibility matrix and passes its fixtures.
  • Cross-tool tests prove GPG file, .gpg-id, OTP URI and Git repository compatibility.
  • Required Rust checks pass and every command except edit works without pass, gpg, git, OTP, QR, clipboard or editor executables installed; edit reports a clear error when no configured/default editor exists.
  • The milestone has no unreviewed compatibility gaps; unavoidable differences are explicit and trace directly to the no-process rule.

Prerequisites

All other milestone issues.

## Objective Complete and audit the full Rust CLI as the executable milestone gate. ## Scope - Wire every storage operation into `apps/cli` with pass-compatible command dispatch, aliases, prompts, stdout/stderr separation, help, version and exit statuses. - Exercise complete workflows from TOML configuration through key unlock, vault mutation, automatic commit, HTTPS synchronization, clipboard/QR, and OTP. - Add shell completion generation without calling external tools. - Document the deliberate architecture boundaries: built-in `otp` replaces shell extension execution, only CLI `edit` may launch the configured editor, and `pass git` supports embedded documented workflows rather than arbitrary Git executable passthrough. - Audit the binary and dependency graph for process launching outside the narrow editor adapter, unsafe project code, unsupported remote schemes, secret leakage and license obligations. ## Acceptance criteria - Every documented first-party pass command and pass-otp command is represented in the compatibility matrix and passes its fixtures. - Cross-tool tests prove GPG file, `.gpg-id`, OTP URI and Git repository compatibility. - Required Rust checks pass and every command except `edit` works without `pass`, `gpg`, `git`, OTP, QR, clipboard or editor executables installed; `edit` reports a clear error when no configured/default editor exists. - The milestone has no unreviewed compatibility gaps; unavoidable differences are explicit and trace directly to the no-process rule. ## Prerequisites All other milestone issues.
hugo added this to the 01 - Full Rust pass CLI parity milestone 2026-08-09 18:57:17 +00:00
hugo added the enhancement label 2026-08-09 18:57:17 +00:00
Author
Owner

Implemented in commit 0a905e5 (pushed to main).

What changed:

  • Wired the complete typed command surface into apps/cli: init, list/show, find/grep, insert/edit/generate, remove/move/copy, OTP, and every documented embedded Git workflow.
  • Added pass-compatible aliases, overwrite/removal prompts, stdout/stderr separation, status-1 parse failures, automatic storage Git commits, and a clear missing-editor error. The configured editor remains the sole process boundary.
  • Added helper-free Bash, Elvish, Fish, PowerShell, and Zsh completion generation through ironstorage completion SHELL.
  • Added storage-owned decrypted Git diff rendering so no Git textconv or GPG executable is needed and ciphertext is not presented.
  • Audited all 108 pinned compatibility cases at the typed command boundary and added a complete TOML/key-unlock/mutation/automatic-commit workflow test. Existing GPG, .gpg-id, OTP URI, and Git cross-format tests remain green.
  • Added an automated project-source audit that rejects process constructors outside apps/cli/src/editor.rs and rejects unsafe project code; remote-scheme, secret-redaction, and dependency-feature/license audits are documented.
  • Documented the full command matrix and the two deliberate no-process differences: built-in OTP replaces extension execution, and typed embedded Git workflows replace arbitrary Git passthrough.

Verification completed:

  • cargo fmt --all -- --check
  • RUSTFLAGS="-D warnings" cargo check --workspace --all-targets
  • cargo clippy --workspace --all-targets -- -D warnings
  • cargo test --workspace

All checks passed. The implementation was reviewed against every issue acceptance criterion, and no CLI compatibility gap remains unreviewed. Remaining milestone issues #15 and #16 cover separate shared frontend document/authentication APIs rather than an omitted CLI command.

Implemented in commit 0a905e5 (pushed to main). What changed: - Wired the complete typed command surface into apps/cli: init, list/show, find/grep, insert/edit/generate, remove/move/copy, OTP, and every documented embedded Git workflow. - Added pass-compatible aliases, overwrite/removal prompts, stdout/stderr separation, status-1 parse failures, automatic storage Git commits, and a clear missing-editor error. The configured editor remains the sole process boundary. - Added helper-free Bash, Elvish, Fish, PowerShell, and Zsh completion generation through `ironstorage completion SHELL`. - Added storage-owned decrypted Git diff rendering so no Git textconv or GPG executable is needed and ciphertext is not presented. - Audited all 108 pinned compatibility cases at the typed command boundary and added a complete TOML/key-unlock/mutation/automatic-commit workflow test. Existing GPG, .gpg-id, OTP URI, and Git cross-format tests remain green. - Added an automated project-source audit that rejects process constructors outside apps/cli/src/editor.rs and rejects unsafe project code; remote-scheme, secret-redaction, and dependency-feature/license audits are documented. - Documented the full command matrix and the two deliberate no-process differences: built-in OTP replaces extension execution, and typed embedded Git workflows replace arbitrary Git passthrough. Verification completed: - cargo fmt --all -- --check - RUSTFLAGS="-D warnings" cargo check --workspace --all-targets - cargo clippy --workspace --all-targets -- -D warnings - cargo test --workspace All checks passed. The implementation was reviewed against every issue acceptance criterion, and no CLI compatibility gap remains unreviewed. Remaining milestone issues #15 and #16 cover separate shared frontend document/authentication APIs rather than an omitted CLI command.
hugo closed this issue 2026-08-10 01:52:11 +00:00
Sign in to join this conversation.