mirror of
https://github.com/openclaw/openclaw.git
synced 2026-06-23 15:38:10 +00:00
* Add /name chat command to rename the current session Adds a `/name <title>` slash command so users can name or rename the current session directly from any chat channel, instead of only through the web/admin session manager. This keeps parallel sessions easy to tell apart from within the chat flow. Behaviour: - `/name <title>` sets the session label, reusing the canonical `parseSessionLabel` validation (trim, non-empty, max 512 chars) and the same cross-store uniqueness rule enforced by the web `sessions.patch` path, so chat naming behaves identically to the session manager. - `/name` with no argument shows the current name plus a locally derived `deriveSessionTitle` suggestion without mutating anything (no LLM). - Only authorized senders can rename (rejectUnauthorizedCommand), matching /goal. The label surfaces everywhere sessions.list is shown (TUI, web, CLI, MCP). The handler resolves the session via resolveSessionStoreEntry so renames land on the canonical entry even when the store still holds a legacy or case-folded key alias, and excludes those aliases from the uniqueness scan to avoid false conflicts. Failed renames skip the store write. Registers the command in commands-registry.shared.ts and the handler in loadCommandHandlers, documents it in docs/tools/slash-commands.md, and adds unit tests covering rename, no-arg suggestion, duplicate-label rejection, unauthorized senders, disabled text commands, and persisted-name re-read. Part of the chat-native session naming feature (follows the web in-chat rename PR). Relates to openclaw#85502 and openclaw#54397. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix(name): seed native sessions and persist renames via canonical key Address Codex review on PR #88581: - Fall back to the in-memory params.sessionEntry when the store has no row yet, so a brand-new native slash session can be named from its first /name command instead of failing with 'no active session to name'. - Persist the rename through resolved.normalizedKey and drop legacy/ case-folded alias keys (mirroring persistResolvedSessionEntry) so the canonical entry is updated and sessions.list stops surfacing the stale alias row. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * fix(name): emit session metadata changes Route successful /name renames through the shared command session metadata seam so subscribed session lists receive sessions.changed like /goal. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * feat(commands): add /name to rename the current session from chat * fix(docs): document the /name slash command --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Agent <agent@example.com> Co-authored-by: openclaw-clownfish[bot] <280122609+openclaw-clownfish[bot]@users.noreply.github.com>