From the review of #210.
- An address that was edited but not taken yet (the box was not left: a
keyboard shortcut moves no focus) was still the place of a load started
with Ctrl+R. The card now names no usable place while its address box holds
another text than the address that was taken.
- An address made unusable after a load left the old place's table syncable,
and a token typed next went to the old server's clone addresses. Sync,
Retry failed and path recovery need a usable place, as Load and Find do; the
commands check for themselves, whatever started them; no account is offered
from a card that names no place.
- A token or organization put on the card before a place was chosen is not
kept for the place that is: the view model no longer relies on the shell's
disabled token box.
- The form follows its view model only while it is in the tree, and its own
changes of the token box are not taken for typing.
- The workspace that was open is written when the window closes, not on every
switch, and what the app remembers by itself is not written over a settings
file that could not be read.
- The offer to save the connection is made once; a failure to remember the
connection does not fail the load.
- README, ADR 0010, T13.
Refs #209
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Signed-off-by: James Maes <james@kof22.com>
- Quick Sync's choice of place was a RadioButtons group. That control selects
its first option as soon as keyboard focus lands on it, and the window opens
with the focus there: GitHub was chosen before the user did anything, and a
token typed next was for a place nobody chose. The choice is now two radio
buttons of their own, which are checked by an act (a click, Space, an arrow
key, UI automation) and never by focus.
- The navigation pane was set to stay open, so its button did nothing. The
pane now closes to its icons and opens again, and has a title beside the
button.
- UI suite: a launched app of its own for the first run (no place chosen,
focus chooses none, choosing is an act), and a test for the pane's button.
Refs #209Closes#213
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Signed-off-by: James Maes <james@kof22.com>
Step 4 of Gitea support (#201). GitHub and Gitea are equal options on the
card the app opens on, with the same two labels as the wizard.
- Quick Sync's card asks where the repositories are: GitHub or Gitea, and for
Gitea the server's address. On a first run nothing is chosen, and the token
box takes a token only once a place is. The title, the token box and the
"How to create a token" link follow the place.
- Nothing is sent until the user asks. A token that is typed, pasted or filled
in from a saved default goes nowhere by itself: the organization list is
fetched when Find is pressed, and the repositories when Load is. Both go to
the listers of the place on the card. An account's page lists and loads on
open as before: its token was saved for its place.
- A server address is taken when its box is left, not while it is typed.
- Choosing another place empties the token, the organization and the table:
the table's clone addresses are on the other host.
- The card opens the way the last connection that worked left it (place,
address, organization, target folder, in settings.json). Never a token.
- Once a connection loaded its repositories, a bar offers to save it as an
account; the account is saved on the place the connection was on.
- The app opens on the workspace that was open last; with nothing recorded,
on the first account; with no account, on Quick Sync.
- The connection chip names the place, and the hint about a token that sees
no organization is in the words of the forge.
- README, ADR 0010, threat model T16, CLAUDE.md.
Closes#209
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Signed-off-by: James Maes <james@kof22.com>