Skip to content

fix(desktop): sidebar timestamp always-on + slides aside for actions on hover#133

Merged
OmarB97 merged 1 commit into
mainfrom
feat/desktop-remote-gateway-dial
Jun 10, 2026
Merged

fix(desktop): sidebar timestamp always-on + slides aside for actions on hover#133
OmarB97 merged 1 commit into
mainfrom
feat/desktop-remote-gateway-dial

Conversation

@OmarB97

@OmarB97 OmarB97 commented Jun 10, 2026

Copy link
Copy Markdown
Owner

Why

Operator feedback on the #127 row design: the relative timestamp should be visible at rest on every session row (not only idle rows, not only on hover), and the hover interaction with the 3-dot actions menu should feel deliberate — the timestamp making way for the menu rather than the two living in separate fixed columns.

What changed

  • apps/desktop/src/app/chat/sidebar/session-row.tsx: collapsed the separate age column + actions column into one trailing slot. The relative timestamp now renders at rest on every row (active rows keep the left pulsing orange dot as the status cue and still show the age). On hover/focus the age slides left (-translate-x-5) while the actions menu slides in from the right (translate-x-1 + opacity-0 → translate-x-0 + opacity-100, with a slight scale), so both are legible at once. The slot reserves the menu's footprint up front, so it's transform/opacity-only — the title column never reflows between states. group-focus-within and data-[state=open] keep the menu visible for keyboard users and while the dropdown is open.

How to review

  1. The trailing-slot block in session-row.tsx — confirm transform-only (no width/layout change between rest and hover).
  2. Confirm active (isWorking) rows still get the left orange dot and now also show the age.

Evidence

  • Visual change; behavior is covered indirectly by the existing sidebar render tests (rows still mount, menu still wired).

Verification

Risks / gaps

  • On a very narrow sidebar a long localized timestamp could sit close to the revealed menu — low risk, the age strings are short (5m/2h/3d) and the slide distance matches the menu width.
  • No new automated assertion on the hover transform — accepted, it's CSS-state-only with no logic branch; visual regression isn't in the desktop test harness.

Collaborators

  • @OmarB97 (operator)
  • Claude Fable 5 (Claude Code)

…ons on hover

Refines the #127 row trailing slot per operator feedback. Before: idle rows
showed the timestamp, active rows hid it, and the 3-dot actions menu lived
in its own always-present column. Now one trailing slot holds both — the
relative timestamp is visible at rest on every row (active rows keep the
left pulsing orange dot as the status cue AND show the age), and on
hover/focus the age slides left while the actions menu slides in from the
right, both legible at once. Transform/opacity only (the slot reserves the
menu's width up front) so the title column never reflows between states;
focus-within + data-[state=open] keep it keyboard- and open-menu-stable.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@OmarB97 OmarB97 merged commit 264c0e7 into main Jun 10, 2026
13 of 19 checks passed
@github-actions

Copy link
Copy Markdown

🔎 Lint report: feat/desktop-remote-gateway-dial vs origin/main

ruff

Total: 0 on HEAD, 0 on base (➖ 0)

🆕 New issues: none

✅ Fixed issues: none

Unchanged: 0 pre-existing issues carried over.

ty (type checker)

Total: 10553 on HEAD, 10553 on base (➖ 0)

🆕 New issues: none

✅ Fixed issues: none

Unchanged: 5543 pre-existing issues carried over.

Diagnostics are surfaced as warnings — this check never fails the build.

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