From 68714bf78feb5a5a59354da624f2d69d6705e8ab Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Thu, 5 Nov 2026 12:13:35 +0100 Subject: 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 --- docs/superpowers/plans/2026-11-05-git-dialogs-compose.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'docs') 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 | -- cgit v1.2.3