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
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.
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.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Objective
Complete and audit the full Rust CLI as the executable milestone gate.
Scope
apps/cliwith pass-compatible command dispatch, aliases, prompts, stdout/stderr separation, help, version and exit statuses.otpreplaces shell extension execution, only CLIeditmay launch the configured editor, andpass gitsupports embedded documented workflows rather than arbitrary Git executable passthrough.Acceptance criteria
.gpg-id, OTP URI and Git repository compatibility.editworks withoutpass,gpg,git, OTP, QR, clipboard or editor executables installed;editreports a clear error when no configured/default editor exists.Prerequisites
All other milestone issues.
Implemented in commit
0a905e5(pushed to main).What changed:
ironstorage completion SHELL.Verification completed:
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.