Skip to content

[Improve] Align Sessions with Tasks list experience - #1911

Draft
roomote-roomote[bot] wants to merge 1 commit into
developfrom
feature/unify-session-task-lists-0uygn5orv48sx
Draft

[Improve] Align Sessions with Tasks list experience#1911
roomote-roomote[bot] wants to merge 1 commit into
developfrom
feature/unify-session-task-lists-0uygn5orv48sx

Conversation

@roomote-roomote

Copy link
Copy Markdown
Contributor

​Opened on behalf of @mrubens. Follow up by mentioning @roomote-roomote, in the web UI, or in Slack.

What changed

  • Introduced shared WorkList primitives for the Tasks and Sessions page frame, activity rows, list/board toggle, board columns, metadata cost, and loading skeleton.
  • Aligned Session rows with Tasks around avatar, byline and timestamp, title, metadata, spacing, hover behavior, and responsive wrapping while keeping Session status, source, unread state, search snippets, executions, and transcript URLs.
  • Preserved task polling, loading and errors, selection and bulk deletion, infinite pagination, PR links, and task-specific metadata; preserved Session server filters, search, cursor pagination, empty state, and native row links.
  • Kept keyboard navigation valid for both row types without nesting task PR links inside the row navigation link.

Why this change was made

Tasks and Sessions represented the same work-history pattern with separate markup and styling. Sharing the stable presentation boundary keeps the primary Sessions workspace consistent with Tasks without coupling their data or actions.

Impact

Sessions now look and behave like the established Tasks list on desktop and mobile. Domain-specific behavior remains in thin Task and Session adapters, and Session detail panels and shared title utilities are unchanged.

Screenshots

Tasks list on desktop

Sessions list on desktop

Tasks list on mobile

Sessions list on mobile

@roomote-community

roomote-community Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

1 issue outstanding. See task

  • apps/web/src/components/work-list/WorkListRow.tsx:151 parses a localized cost label, causing rounded-zero costs to render in comma-decimal locales.

Reviewed 5551b60

}) {
const label = formatInferenceCost(costMicroUsd);

if (Number(label) <= 0) return null;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This parses a locale-formatted display string to decide visibility. In locales with a comma decimal separator, a sub-cent cost formats as 0,00, Number(label) is NaN, and the check falls through to render it even though it rounds to zero. Check the numeric costMicroUsd (or a numeric USD value) before formatting instead.

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