Skip to content

[Feature]: /label slash command & /new <name> session naming for WebChat/Control UI #93422

Description

@quartz-agent

Summary

Add a /label <name> slash command and/or support /new <name> to let WebChat/Control UI sessions carry a user-friendly displayName, making it easy to identify and switch between multiple dashboard sessions.

Problem to solve

When opening multiple WebChat/Control UI sessions via /new, each one gets an auto-generated session key like agent:main:dashboard:<random-uuid>. The session picker in the Control UI lists these by UUID, making it nearly impossible to tell which session was used for which task without opening each one. For power users managing several parallel sessions (e.g., one per project), this adds friction and wastes time.

Proposed solution

Two non-mutually-exclusive options:

  1. /label <name> — A slash command that sets the session displayName field in the session store (field already exists in SessionEntry schema, just not surfaced in WebChat). The label appears in the Control UI session picker dropdown instead of the raw UUID-based key.

  2. /new <name> — Extend the existing /new command to accept an optional trailing argument. When provided, OpenClaw creates a fresh dashboard session with a displayName set to that name.

Both options should persist across session resets and be visible in openclaw sessions --json output and the Control UI session selector.

Alternatives considered

  • Using Workboard "Add to Workboard" — works but is heavyweight (requires plugin, manual linking) and doesn't help in the session picker.
  • Tracking session UUIDs manually — fragile.
  • Relying on timestamps — UUIDs don't convey project context.

Impact

  • Affected: All WebChat/Control UI users with multiple parallel sessions.
  • Severity: Medium — annoyance that compounds over time.
  • Frequency: Every /new session switch.
  • Consequence: +30–60s per session lookup, misclicks opening wrong sessions.

Evidence

  • The SessionEntry store schema already has a displayName field (see session-management-compaction docs).
  • Other chat platforms (Slack, Discord) long supported conversation renaming.
  • Local testing confirms /new creates sessions with keys like agent:main:dashboard:<uuid> with no display name support.

Additional information

  • Should be backward compatible: /new with no args keeps current behavior.
  • Consider surfacing the label in openclaw sessions --json output for CLI users too.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Normal backlog priority with limited blast radius.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.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.impact:session-stateSession, memory, transcript, context, or agent state can drift or corrupt.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions