- Archive
- /
- Foreman Assistant
- /
- Managing AI Chat Conversations
Managing AI Chat Conversations
Learn how to create, switch, search, pin, archive, rename, and delete AI chat conversations using the Conversations sidebar and its per-row actions.
The Conversations sidebar
On the full-page view, the Conversations sidebar on the left lists all your chats. In the widget, the same list appears when you back out of a specific chat to the sessions view. Sessions are ordered with pinned conversations first, then by most-recently-updated.
The sidebar has three tabs:
| Tab | Shows |
|---|---|
| Active | All non-archived conversations (pinned and unpinned) |
| Pinned | Only pinned, non-archived conversations |
| Archived | All archived conversations |
A search box appears above the list once you have more than three conversations. It filters by title — case-insensitive, substring match.
Creating and switching conversations
- + in the sidebar header creates a new conversation immediately. You're dropped into its empty state with the quick-prompt chips.
- Click any row to open that conversation. The full message history loads into the main panel.
- Slash command — typing
/newand picking it from the palette does the same thing.
The active conversation is highlighted with a light slate background. When a new chat gets its first AI reply, Foreman calls a lightweight Claude Haiku completion to generate a concise 3–6 word title (e.g. "QA Setup for Structural") from the exchange. If title generation fails for any reason, it falls back to the first 50 characters of the user message. You can rename any time after that.
Per-row actions (on hover)
Hover a conversation row to reveal four icons on the right:
| Icon | Action |
|---|---|
| ✎ pencil | Rename in place — the title turns into an input. Enter saves, Escape cancels, focus loss commits. |
| 📌 pin | Toggle pin. Pinned rows sort to the top of the list. |
| 📥 archive | Toggle archive. Archived rows move to the Archived tab and are hidden from Active. |
| 🗑 trash | Delete the conversation permanently, along with its messages, attachments, and artifacts. |
Clicking an icon is an atomic, no-confirm action — except delete, which removes everything irreversibly. Archive is reversible (switch to the Archived tab and un-archive).
Renaming a conversation
Four paths — all hit the same endpoint and sync across widget, full-page, and sidebar:
- Sidebar pencil icon — hover any row in the Conversations sidebar and click the pencil (the first hover action). The title turns into an editable input. Enter saves, Escape cancels, clicking away commits.
- Widget header — when the floating widget is showing a conversation, click the title at the top to edit it inline.
- Full-page header — the session title under "Foreman Assistant" on the
/foreman-assistantroute is click-to-edit too, with the same Enter/Escape/blur behaviour. - API —
PATCH /api/foreman-assistant/sessions/{id}with a{ title }body.
Titles are generated for you when a new conversation gets its first AI reply — you don't have to name chats up front. Rename any time, including mid-conversation, with no effect on the messages.
Message actions
Every message has hover-revealed actions on the right side of its row.
On your own (user) messages
| Action | What it does |
|---|---|
| Edit ✎ | Opens an amber editing panel at the bottom. Revise the text and click Save & regenerate — your original message is marked inactive as a sibling, the edit becomes the active message, and the AI generates a fresh reply. |
| Copy 📋 | Copies the message text to your clipboard. |
| Delete 🗑 | Soft-deletes the message and everything downstream in the active thread. |
On AI (assistant) messages
| Action | What it does |
|---|---|
| Retry ↻ (error replies only) | Re-sends your last user message. |
| Copy 📋 | Copies the message text to your clipboard. |
| Try again ↻ | Generates a fresh response to the same prompt. The old response is kept as an inactive sibling — count shown as a "X versions" badge. |
| Start new chat from here ⑂ | Forks a new conversation containing all messages up to and including this point. The new chat appears at the top of your Active list; the original is untouched. |
Siblings and versioning
Every time you edit a user message or click Try again on an AI reply, Foreman creates a sibling rather than overwriting the original. Siblings share a common parent message and a role, but only one of each group is marked active — that's what shows in the thread.
- Sibling count badge — appears on AI bubbles as "N versions" when there's more than one variation. In the v1 UI the count is informational; keyboard navigation between sibling versions is planned.
- Server-side API —
POST /api/foreman-assistant/sessions/{sessionId}/messages/{messageId}/activateswitches which sibling is active.
Deleting a user message or switching which edit is active also deactivates any downstream messages that were part of the abandoned thread. Nothing is lost — it's all still in the database — but the default view only shows the active path.
Edit vs Fork. Use Edit when you want to refine a question and keep going in the same conversation. Use Start new chat from here when you want to preserve the current path and explore an alternative in parallel.
Exporting a conversation
Two ways:
- Widget export button — click the download icon in the widget header (only shown when the conversation has at least one AI reply).
- Slash command
/export— works in both widget and full-page.
The export is a Markdown file named foreman-chat-<yyyy-MM-dd-HHmm>.md with each message headed by You or Foreman Assistant and a timestamp. Thinking and tool-call messages are stripped. Attachments and artifacts are not embedded (their downloads are separate).
Switching between widget and full-page
- Widget → Full-page — click the "Open full page" icon in the widget header. Navigation goes to
/foreman-assistant/{sessionId}and the conversation picks up where you left off. - Full-page → Widget — click Minimize in the full-page top-right. The widget preference is persisted on, the widget opens on the destination page, and you carry on.
Both surfaces share the same state service, so message drafts, pending attachments, sidebar filter, search text, and active session are all preserved across the hop.
Deleted content recovery
- Message delete is a soft-delete —
IsDeleted=trueon the row. An admin can restore it, but the UI doesn't surface recovery. - Session delete is a hard delete (CASCADE). Messages, attachments, artifacts, and usage records linked to the session go with it.
- Archive is non-destructive — switch to the Archived tab and un-archive any time.
Use Archive instead of Delete when in doubt.
See Also
- Foreman Assistant Overview — high-level capabilities.
- Downloadable Artifacts — how forking/regenerating affects artifacts.
- Slash Commands — including
/new,/clear,/export. - Getting Started with Foreman Assistant — sending your first message.