Connections: drop the manual box's view-model state now that both heads ask through the prompt #24

Merged
jaap-jan merged 1 commits from claude/charming-cerf-ae57b6 into main 2026-10-16 12:32:15 +00:00
Owner

The phone's Connections screen no longer draws the user@host + password box (replaced by the connect prompt in 0cecf1a), and the desktop never drew it. This removes the view-model state that only that box used.

Removed

  • VaultViewModel.ManualTarget, ManualPassword, ManualStatus, and ConnectManuallyCommand / ConnectManuallyAsync.
  • MainWindowViewModel.ConnectToRecentCommand, whose address branch wrote into Vault.ManualTarget. Recent rows use ChoosePromptRecentCommand.
  • VaultViewModel.AskAboutHost, whose only caller was ConnectToRecent.

Kept

TryParseManualTarget, ManualEndpoint and ConnectToEndpointAsync, which the prompt, the desktop's Ctrl+K palette and the phone's hosts search all use. The reasoning from the removed members' doc comments moved onto ConnectToEndpointAsync and ChoosePromptRecentAsync.

Tests

The cases whose subject is still live now go through the prompt (PromptText + SubmitPromptCommand, via a new ConnectAtThePromptAsync helper) instead of the box:

  • a typed address dialled exactly as typed
  • port 22 by default
  • the refusal sentences; the two inputs without an @ now expect the prompt's own sentences
  • the host-key retry replaying the attempt that raised it
  • the host-key card over the surface the address was typed on
  • session facts for a typed password
  • no forwards for a typed address

The recent-row cases drive ChoosePromptRecentCommand. Two cases that existing prompt tests already covered were deleted.

Manual check 11.8 now describes recent rows landing on the prompt.

Verification

  • dotnet build DodoSSH.slnx: 0 errors, no warnings in touched files.
  • src/DodoSSH.Client.Android build: 0 errors, 0 warnings.
  • DodoSSH.Client.App.Tests: 748 total, 0 failed, 5 skipped.
The phone's Connections screen no longer draws the `user@host` + password box (replaced by the connect prompt in 0cecf1a), and the desktop never drew it. This removes the view-model state that only that box used. ## Removed - `VaultViewModel.ManualTarget`, `ManualPassword`, `ManualStatus`, and `ConnectManuallyCommand` / `ConnectManuallyAsync`. - `MainWindowViewModel.ConnectToRecentCommand`, whose address branch wrote into `Vault.ManualTarget`. Recent rows use `ChoosePromptRecentCommand`. - `VaultViewModel.AskAboutHost`, whose only caller was `ConnectToRecent`. ## Kept `TryParseManualTarget`, `ManualEndpoint` and `ConnectToEndpointAsync`, which the prompt, the desktop's Ctrl+K palette and the phone's hosts search all use. The reasoning from the removed members' doc comments moved onto `ConnectToEndpointAsync` and `ChoosePromptRecentAsync`. ## Tests The cases whose subject is still live now go through the prompt (`PromptText` + `SubmitPromptCommand`, via a new `ConnectAtThePromptAsync` helper) instead of the box: - a typed address dialled exactly as typed - port 22 by default - the refusal sentences; the two inputs without an `@` now expect the prompt's own sentences - the host-key retry replaying the attempt that raised it - the host-key card over the surface the address was typed on - session facts for a typed password - no forwards for a typed address The recent-row cases drive `ChoosePromptRecentCommand`. Two cases that existing prompt tests already covered were deleted. Manual check 11.8 now describes recent rows landing on the prompt. ## Verification - `dotnet build DodoSSH.slnx`: 0 errors, no warnings in touched files. - `src/DodoSSH.Client.Android` build: 0 errors, 0 warnings. - `DodoSSH.Client.App.Tests`: 748 total, 0 failed, 5 skipped.
jaap-jan added 1 commit 2026-10-16 12:21:24 +00:00
Connections: drop the manual box's view-model state now that both heads ask through the prompt
ci / build and test (pull_request) Successful in 2m32s
ci / desktop nightly (pull_request) Skipped
ci / api image (pull_request) Successful in 7s
ci / deploy ssh.dodotech.cloud (pull_request) Skipped
ci / android head (pull_request) Successful in 3m41s
fa85ad1eff
The phone's Connections screen no longer draws the user@host + password box, and the desktop never
did, so nothing bound VaultViewModel.ManualTarget, ManualPassword, ManualStatus or
ConnectManuallyCommand any more, nor MainWindowViewModel.ConnectToRecentCommand, whose address branch
wrote into that box. They are gone, and so is VaultViewModel.AskAboutHost, whose one caller was
ConnectToRecent. TryParseManualTarget, ManualEndpoint and ConnectToEndpointAsync stay: the prompt, the
desktop's Ctrl+K palette and the phone's hosts search all use them. The reasoning the removed members
carried moved onto ConnectToEndpointAsync and ChoosePromptRecentAsync.

The tests whose subject is still live now go through the prompt instead of the box: a typed address
dialled exactly as typed, port 22 by default, the refusal sentences, the host-key retry replaying the
attempt that raised it, the host-key card staying over the surface it was typed on, the session facts
for a typed password, and no forwards for a typed address. The recent-row cases now drive
ChoosePromptRecentCommand. Two cases existing prompt tests already covered were deleted. Manual check
11.8 now describes recent rows landing on the prompt.
jaap-jan merged commit 36b6ded63e into main 2026-10-16 12:32:15 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: DodoTech-Public/DodoSSH#24