Why this is a good first issue
After a user reveals a secret in VaultView, the value stays visible until they select another secret, change project/environment, or leave the vault. Add an explicit way to dismiss the revealed value while keeping the current environment open.
This is a focused React interaction in web/src/VaultView.tsx, using its existing revealed state.
What to do
- Add a keyboard-accessible
Hide secret button to the revealed-secret section.
- Activating it removes that section, including any generated share-link textarea, and clears the selected secret's
aria-current state. Keep the current project, environment and secret list available.
- Allow the user to reveal the same secret again from the list.
- Return keyboard focus to the secret's list button when hiding, so removing the focused Hide button does not strand keyboard navigation.
- Ensure a share request that was already pending when Hide was activated cannot bring the dismissed value back into view when it completes. Preserve a newly selected secret if the old request completes later.
This is a display control: it does not lock the vault, revoke existing links, or promise secure erasure from browser memory. Do not label it as doing those things.
Done when
- A browser check reveals a fixture secret, hides it, verifies the value/link fields are absent, and reveals it again.
- A delayed share-response check confirms that hiding stays effective after the request completes.
- Verify keyboard activation and focus return.
- Add checks to
web/e2e/funnel.spec.ts using the existing fixture and helpers; setup is documented in web/e2e/README.md.
- From
web/, run npm run build:wasm, npm run typecheck, npm run build, and the relevant browser checks.
Scope
Do not change RecipientPage: one-time recipients have different recovery constraints. Do not add timers, clipboard handling, server calls on Hide, or crypto changes. Preserve accessible field labels from #173 if that issue lands first; both tasks touch the revealed-secret section.
Use British English and plain hyphens. Link this issue in the PR and sign off commits with git commit -s, following CONTRIBUTING.md.
Why this is a good first issue
After a user reveals a secret in
VaultView, the value stays visible until they select another secret, change project/environment, or leave the vault. Add an explicit way to dismiss the revealed value while keeping the current environment open.This is a focused React interaction in web/src/VaultView.tsx, using its existing
revealedstate.What to do
Hide secretbutton to the revealed-secret section.aria-currentstate. Keep the current project, environment and secret list available.This is a display control: it does not lock the vault, revoke existing links, or promise secure erasure from browser memory. Do not label it as doing those things.
Done when
web/e2e/funnel.spec.tsusing the existing fixture and helpers; setup is documented inweb/e2e/README.md.web/, runnpm run build:wasm,npm run typecheck,npm run build, and the relevant browser checks.Scope
Do not change
RecipientPage: one-time recipients have different recovery constraints. Do not add timers, clipboard handling, server calls on Hide, or crypto changes. Preserve accessible field labels from #173 if that issue lands first; both tasks touch the revealed-secret section.Use British English and plain hyphens. Link this issue in the PR and sign off commits with
git commit -s, followingCONTRIBUTING.md.