Skip to content

fix: restore terminal echo after cancelled decryption - #429

Open
ryantm wants to merge 2 commits into
refactor/issue406-cli-scopefrom
fix/issue4-terminal-restore
Open

ryantm wants to merge 2 commits into
refactor/issue406-cli-scopefrom
fix/issue4-terminal-restore

Conversation

@ryantm

@ryantm ryantm commented Oct 2, 2026

Copy link
Copy Markdown
Owner

Cancelling an encrypted SSH identity prompt with Ctrl+C still left terminal echo disabled with the current age backend. Save the controlling terminal's state (or terminal stdin when no controlling terminal exists) before decryption, and restore changed settings on exit before cleaning up temporary plaintext.

Leave untouched terminal settings alone so background commands do not attempt a terminal write and stop with SIGTTOU. Use the existing coreutils dependency for stty; no additional runtime package is introduced.

Based on #425 and its documented CLI dependencies. None have been merged.

Validation: reproduced the original failure with a disposable passphrase-protected Ed25519 identity. A new Linux/macOS pseudo-terminal check covers Ctrl+C, the stdin-terminal fallback, successful passphrase entry, unchanged ciphertext, plaintext cleanup, and background checking. Package shellcheck/CLI, rules, plugin, and encryption-failure checks pass locally, along with all-system evaluation and the docs build.

Closes #4.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant