fix(tui): hide the composer while the password-manager unlock card is open

Live Ink TUI repro: with the unlock card mounted, keystrokes reached BOTH the
masked prompt and the still-focused composer, so the master password echoed
in clear text in the composer row and was queued as a message. `$isBlocked`
(which unmounts the composer for approval/sudo/secret cards) did not list the
new overlay; the pet's awaiting-input predicate had the same gap. After the
fix the raw PTY stream no longer contains the typed password.

Also tightens the classic-CLI panel copy to fit an 80-column box.
This commit is contained in:
Teknium
2026-09-09 03:47:47 -07:00
parent e9f7d44f3f
commit ac33da3c73
3 changed files with 5 additions and 3 deletions

View File

@@ -692,8 +692,8 @@ class CLITuiMixin:
return self._render_sudo_style_panel(
f'🔐 Unlock {backend}',
[f'The agent wants to sign into a site with a login saved in {backend}.',
'Enter your master password below (hidden) to unlock it for this session, or press Enter to keep it locked.',
'The password never reaches the model; only a session token is kept in memory.'])
'Type your master password (hidden) to unlock it for this session.',
'Enter on an empty line keeps it locked. The model never sees the password.'])
return self._render_sudo_style_panel(
'🔐 Sudo Password Required', ['Enter password below (hidden), or press Enter to skip'])

View File

@@ -45,6 +45,7 @@ export const $isBlocked = computed(
skillsHub,
subscription,
sudo,
vaultUnlock,
widget
}) =>
Boolean(
@@ -63,6 +64,7 @@ export const $isBlocked = computed(
skillsHub ||
subscription ||
sudo ||
vaultUnlock ||
widget
)
)

View File

@@ -50,7 +50,7 @@ export function derivePetState({ busy, toolRunning, reasoning, awaitingInput }:
function isAwaitingInput(): boolean {
const o = getOverlayState()
return Boolean(o.clarify || o.approval || o.sudo || o.secret || o.confirm)
return Boolean(o.clarify || o.approval || o.sudo || o.secret || o.vaultUnlock || o.confirm)
}
// A kitty Unicode-placeholder frame set: a static placeholder grid (painted by