aboutsummaryrefslogtreecommitdiffstats
path: root/docs/superpowers
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-11-05 12:13:35 +0100
committerDanilo M. <danix@danix.xyz>2026-11-05 12:21:40 +0100
commit68714bf78feb5a5a59354da624f2d69d6705e8ab (patch)
tree030eda99da60c4fc8c48b617381e6b1c25171c64 /docs/superpowers
parentc85e7c8801caf7a73b46dda9ebf75be023cad9b4 (diff)
downloadHardenedPass-68714bf78feb5a5a59354da624f2d69d6705e8ab.tar.gz
HardenedPass-68714bf78feb5a5a59354da624f2d69d6705e8ab.zip
feat(app): move the git dialogs and the snackbar to Compose
An activity-scoped Prompts ViewModel holds them, since git operations have no composable to draw in; PromptHost draws them. The credential dialog's window is now FLAG_SECURE, and a recreated activity no longer loses it and strands the SSH thread. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Diffstat (limited to 'docs/superpowers')
-rw-r--r--docs/superpowers/plans/2026-11-05-git-dialogs-compose.md5
1 files changed, 3 insertions, 2 deletions
diff --git a/docs/superpowers/plans/2026-11-05-git-dialogs-compose.md b/docs/superpowers/plans/2026-11-05-git-dialogs-compose.md
index e0bd176b..2b2c9253 100644
--- a/docs/superpowers/plans/2026-11-05-git-dialogs-compose.md
+++ b/docs/superpowers/plans/2026-11-05-git-dialogs-compose.md
@@ -433,7 +433,7 @@ private fun QuestionDialog(question: Question, prompts: Prompts) {
private fun CredentialDialog(request: CredentialRequest, prompts: Prompts) {
// remember, never rememberSaveable: the credential must not reach saved state.
var text by remember { mutableStateOf("") }
- var keep by remember { mutableStateOf(false) }
+ var keep by remember { mutableStateOf(true) }
var revealed by remember { mutableStateOf(false) }
var error by remember { mutableStateOf(request.error) }
val focus = remember { FocusRequester() }
@@ -871,9 +871,10 @@ Each must behave as stated:
| Check | Expected |
|---|---|
| SSH key with passphrase, wrong passphrase | Dialog returns with the error, cleared on typing, field empty |
-| Same, remember ticked, right passphrase | Next sync asks nothing |
+| Same, remember left ticked (the default), right passphrase | Next sync asks nothing |
| Same, Cancel | Operation stops, no error dialog |
| Tap outside the credential dialog | Same as Cancel |
+| Credential dialog opens | Keyboard comes up on the field |
| Missing SSH key | Three buttons; outside tap only closes; Import and Generate open setup |
| Unreachable server | Git error dialog |
| Conflict, then "abort and push" | Recovery works; notice shows on a clean store |