feat(workspace): session rename / delete / export / search #567

Closed
opened 2026-04-30 16:53:16 +00:00 by claude-desktop · 0 comments
Collaborator

User story

As an operator, I want to find old foreman chat sessions, rename them, delete the noise, and export ones worth keeping, so the sidebar stays useful past 20 chats.

Acceptance criteria

Rename

  • Inline-edit the session title from the sidebar (double-click or pencil icon → input). Persists via PATCH /foreman/sessions/:id (new endpoint).
  • Server validates length ≤ 200 chars, no newlines.

Delete

  • Trash icon on each sidebar row → confirm dialog → delete. The _deleteMutation in apps/web/src/routes/workspace.index.tsx:230 already exists; wire it up.
  • Active session redirects to /workspace empty state on delete.

Export

  • Per-session "Export" menu → markdown (transcript) or JSON (full session row including metadata). Triggered from the sidebar row menu and from the active-session toolbar.
  • Markdown export includes role headers, timestamps, tool-call summaries.
  • Search input above the sessions list — fuzzy match against title + first user message. Client-side over the already-fetched list (no backend search yet).
  • Empty result shows a "no matches" hint.

Out of scope

  • Pin / favorite / archive (deferred).
  • Server-side full-text search (SQLite FTS5) — punt until the sidebar list itself is too big to ship to the client.

References

  • Spec: specs/workspace-chat-overhaul.md § P4.
## User story As an operator, I want to find old foreman chat sessions, rename them, delete the noise, and export ones worth keeping, so the sidebar stays useful past 20 chats. ## Acceptance criteria ### Rename - [ ] Inline-edit the session title from the sidebar (double-click or pencil icon → input). Persists via `PATCH /foreman/sessions/:id` (new endpoint). - [ ] Server validates length ≤ 200 chars, no newlines. ### Delete - [ ] Trash icon on each sidebar row → confirm dialog → delete. The `_deleteMutation` in `apps/web/src/routes/workspace.index.tsx:230` already exists; wire it up. - [ ] Active session redirects to `/workspace` empty state on delete. ### Export - [ ] Per-session "Export" menu → markdown (transcript) or JSON (full session row including metadata). Triggered from the sidebar row menu and from the active-session toolbar. - [ ] Markdown export includes role headers, timestamps, tool-call summaries. ### Search - [ ] Search input above the sessions list — fuzzy match against title + first user message. Client-side over the already-fetched list (no backend search yet). - [ ] Empty result shows a "no matches" hint. ## Out of scope - Pin / favorite / archive (deferred). - Server-side full-text search (SQLite FTS5) — punt until the sidebar list itself is too big to ship to the client. ## References - Spec: `specs/workspace-chat-overhaul.md` § P4.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
charles/claude-hooks#567
No description provided.