Skip to content

feat(ui): tell actions apart by what they do - #80

Merged
rocketraman merged 1 commit into
masterfrom
claude/gitvantage-options-discoverability-8a09ac
Nov 2, 2026
Merged

rocketraman merged 1 commit into
masterfrom
claude/gitvantage-options-discoverability-8a09ac

Conversation

@rocketraman

Copy link
Copy Markdown
Owner

Why

User feedback: options weren't discoverable. Someone asked how to open a worktree's folder, and the "Folder" link was sitting right there. Every row action was the same blue link, so viewing (Log, Terminal, Folder), changing git state and GitVantage's own settings (Alerts) all read as one list. Folder also sat loose on the row while the toolbar kept it under "Open in ▾".

What changed

Actions look like what they do. This applies everywhere: the detail toolbar, every hover lane (worktrees, branches, remotes, stashes, submodules), the log view's commit rows and the bulk bar.

  • Git actions: blue buttons (Push, Fetch, Switch, Worktree, Apply, …). Commit stays filled blue.
  • Viewing actions: grey outlined buttons (Diff, Log, Copy, launcher).
  • GitVantage actions: amber (Alerts, Snooze, Add Repo).
  • Destructive actions: red, grouped at the far end of full-width lanes, and right-aligned when they wrap.

Terminal ▾ split button. It replaces "Terminal" plus "Open in ▾". The label opens the pinned launcher, Terminal by default. The menu lists every launcher, Folder included, and you can pin any of them as the one-click default. Settings › External tools has the same "Main launcher" choice. Worktree cards get the same control as the toolbar.

Snooze split button. It replaces the Snooze dialog. One click snoozes for the pinned length (1 day by default), and the menu has the other lengths plus Resume now. While snoozed, the label shows the time left and opens the menu instead of snoozing again. The bulk bar uses the same control. The old dialog is removed.

Worktrees

  • Cards with uncommitted work get an amber outline.
  • Worktrees are listed with uncommitted ones first, then by most recent commit. Before, they came in git's folder-path order, which read as random once cards were labelled by branch.

Notes for review

  • Shared component: SplitMenuButton, MenuItem and MenuDivider are in the new ui/SplitMenu.kt, and the launcher and Snooze controls both use them. The menu hangs from the whole control, so it doesn't move when pinning changes the label length.
  • Color mapping: it lives in one place, RowActionKind.colors in Components.kt. RowAction(label, danger = true) is now RowAction(label, RowActionKind.DANGER).
  • New settings: pinnedLauncher (default "terminal") and pinnedSnooze (default "1 day"). An unknown value falls back to the default.
  • Unchanged on purpose: inline section links stay blue text: + New worktree, Open diff →, Add/Edit, Check now, Resume now.
  • Submodule lane: reordered to view → git → app → destroy. Behaviour is unchanged.

Testing

  • The new WorktreeOrderTest covers the sort. All 257 tests and check (detekt, Konture) pass.
  • Checked by hand in an isolated KWin session:
    • Pinning a launcher and a snooze length, and that the setting persists.
    • One-click snooze, the time-left label, and Resume from the menu.
    • Right-aligned red buttons when they wrap.
    • The amber outline and the new worktree order, which I compared against git log commit times.
    • The log view and the bulk bar.

Every row action used to be the same blue link, so viewing, changing
git state and GitVantage's own settings read as one list, and a
worktree's Folder link went unnoticed. Actions now look like what they
do, in the toolbar, the hover lanes, the log view and the bulk bar:
git actions are blue buttons, viewing actions grey, GitVantage's own
(Alerts, Snooze, Add Repo) amber, destructive ones red and pushed to
the far end of their lane.

Terminal and "Open in" are one split button. The label opens the
pinned launcher (Terminal by default) and the menu lists every
launcher, Folder included, with a pin to change the default; Settings
has the same choice. Worktree cards get the same control as the
toolbar.

Snooze is a split button too, replacing its dialog: one click snoozes
for the pinned length, the menu has the other lengths and Resume now.
While snoozed it shows the time left and opens the menu instead.

Worktrees with uncommitted work get an amber outline, and worktrees
are listed with uncommitted ones first, then by most recent commit,
instead of by folder path.

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Raman Gupta <rocketraman@gmail.com>
@rocketraman
rocketraman merged commit d810243 into master Nov 2, 2026
2 checks passed
@rocketraman
rocketraman deleted the claude/gitvantage-options-discoverability-8a09ac branch November 2, 2026 19:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant