## Session Management

- **Added automatic session titles** — new sessions can be renamed automatically after the first user message when the title is still the default `New Session` and has not been manually renamed.
- **Added title regeneration action** — the session 3-dot menu now includes **Regenerate title**, which asks the server to generate a new short title from the full conversation.
- **Preserved manual renames** — custom session names remain fully supported and are not overwritten by automatic title generation.

## Session Tags

- **Added tag assignment in session dropdown** — each session's 3-dot menu now has a tag section with Add tag / Change tag / Remove tag, separated from Rename and Archive by dividers. Input supports autocomplete from existing workspace tags.
- **Added tag badge on session rows** — sessions with a tag show a compact colored badge next to the title.
- **Added tag-based sidebar grouping** — when any session has a tag, the Active section groups sessions into collapsible tag groups (sorted by most recently updated). Untagged sessions appear in a flat list below.
- **Added `useWorkspaceTagsQuery`** — TanStack Query hook fetching workspace tags for autocomplete, with cache invalidation helper.
- **Fixed tag changes requiring page refresh** — tag add/remove now updates the session store directly from the REST response, so the sidebar reflects changes immediately without a reload.
- **Wider dropdown menu** — session action dropdown is now `min-w-52` for better readability with tag content.

## Chat

- **Improved follow mode during large updates** — the transcript now re-pins to the bottom after message and tool output layout updates, so follow mode stays stuck to the latest content even when large edit/tool results stream in.
