feat(settings): show a saved default token as a mask and say what Save will do #112

Merged
KofTwentyTwo merged 3 commits from feat/default-token-settings-2 into main 2026-10-10 23:29:56 +00:00
KofTwentyTwo commented 2026-10-10 23:24:52 +00:00 (Migrated from github.com)

What

Step 3 of the approved UX plan, stacked on #106 (step 2) and #103 (step 1).

  • SettingsTokenState (ViewModels, fully tested): the box's initial value (a fixed mask when a token is saved, never the token), what Save does for a given box value (keep / store / remove), whether the Remove link applies, and the caption text, which names who depends on the token and what Save will do.
  • SettingsDialog: shows the mask when a token is saved; the caption follows every edit; clearing the box or pressing Remove saved token removes on Save; a removal that breaks accounts turns the caption critical and names them, so Save is an informed confirmation (inline, not a second dialog: a ContentDialog cannot open another and the dialog guard allows one at a time; the plan is updated to say so). Replacing the token says the dependent accounts rotate with it. The dialog now takes the AccountsStore to count and name them.

Closes #101 (part of #62).

How it was tested

  • dotnet build -warnaserror 0 warnings; dotnet format --verify-no-changes clean.
  • gclo.Engine.Tests 475/475 (+16 for SettingsTokenState); line coverage 100% on gclo.Engine and gclo.ViewModels.
  • FlaUI suite run locally against the rebuilt app (result in the PR comments).

Generated with Claude Code

## What Step 3 of the approved [UX plan](docs/plans/default-token-ux.md), stacked on #106 (step 2) and #103 (step 1). - `SettingsTokenState` (ViewModels, fully tested): the box's initial value (a fixed mask when a token is saved, never the token), what Save does for a given box value (keep / store / remove), whether the Remove link applies, and the caption text, which names who depends on the token and what Save will do. - `SettingsDialog`: shows the mask when a token is saved; the caption follows every edit; clearing the box or pressing *Remove saved token* removes on Save; a removal that breaks accounts turns the caption critical and names them, so Save is an informed confirmation (inline, not a second dialog: a `ContentDialog` cannot open another and the dialog guard allows one at a time; the plan is updated to say so). Replacing the token says the dependent accounts rotate with it. The dialog now takes the `AccountsStore` to count and name them. Closes #101 (part of #62). ## How it was tested - `dotnet build -warnaserror` 0 warnings; `dotnet format --verify-no-changes` clean. - `gclo.Engine.Tests` 475/475 (+16 for `SettingsTokenState`); line coverage 100% on `gclo.Engine` and `gclo.ViewModels`. - FlaUI suite run locally against the rebuilt app (result in the PR comments). Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.