Skip to content

[Feature]: Sessions page: per-row context menu (kebab + right-click) instead of icon-button row #102540

Description

@steipete

Summary

Add a per-row context menu (kebab button + right-click) to the Control UI Sessions page, replacing the row of individual action icon buttons.

Problem to solve

The Sessions page table currently renders five separate icon buttons per row (mark unread, fork, pin, archive, add-to-workboard) next to the details toggle. This is visually noisy, does not scale as session actions grow (rename and delete are not reachable from a row at all — rename is buried in the details drawer, delete requires checkbox selection + bulk bar), and is inconsistent with the app sidebar, which already exposes a session context menu (pin, mark unread, rename, fork, move to group, archive, delete) via a kebab button and right-click.

Proposed solution

Extract the sidebar session menu into a shared <openclaw-session-menu> component and use it on the Sessions page:

  • One kebab () button per row opens the menu; right-clicking anywhere on a session row opens the same menu at the cursor (matching the sidebar's existing right-click behavior).
  • Menu items: Open chat, Pin/Unpin, Mark read/unread, Rename…, Fork, Add to Workboard/Open Workboard card, Move to group ▸ (with New group…/Remove from group), Archive/Restore, Delete…
  • The individual unread/fork/pin/archive/workboard row buttons are removed; the details chevron and the bulk-selection checkbox stay.
  • Existing guards preserved: main/global/unknown/active-run sessions cannot be archived or deleted; archived sessions offer Restore and Delete.
  • Single-session delete from the menu reuses the existing delete RPC with a confirmation prompt.

Alternatives considered

  • Keeping the icon-button row and only adding a menu for the extra actions: leaves two competing interaction patterns on one row and does not reduce the noise.
  • Implementing a page-local menu without extracting the sidebar one: duplicates menu markup, guard policy, and styles across two surfaces.

User impact

Cleaner sessions table, one consistent session-actions surface across sidebar and Sessions page, and rename/delete become directly reachable per row.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Low-priority cleanup, docs, polish, ergonomics, or speculative work.clawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.enhancementNew feature or requestimpact:ux-frictionUser-facing flow adds avoidable confusion or support burden without fully blocking progress.issue-rating: 🌊 off-meta tidepoolIssue quality rating does not apply to this item.maintainerMaintainer-authored PR

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions