Conversation threads: list, rename, delete, save to notes
The Conversations column on the AI Agent page keeps past threads on your machine, grouped by age, searchable, renamable, and exportable to the Notes library, with hard bounds on how much is kept.
Senzoukria · Documentation · Updated September 2026
Where to find it
- Where
- AI Agent page → left column "Conversations"
- Storage
- localStorage key senzoukria.ai.threads.v1, on this machine only
- Bounds
- 40 threads, 200 messages per thread, 12,000 characters per message, 60-character titles
- Search
- Shown from 6 threads; matches title and message content
What it does
The panel lists every conversation kept on this machine, opens one into the single chat, renames it, deletes it, or saves it to the Notes library. It does not host a chat itself: the chat is unique and reads a singleton store, so the panel only tells the parent which thread to open.
Threads are grouped by local calendar day: Today, Yesterday, Previous 7 days, Previous 30 days, Older. The split uses civil days, so a conversation from 11 pm yesterday reads as Yesterday at 1 am, not Today. Empty groups are not rendered.
A thread takes its title from the first line of your first message, cut at 60 characters (MAX_TITLE_CHARS). The rename hint states the naming rule: "A conversation takes its name from your first message. Rename it when that is not what it turned out to be about." A title you typed wins over the automatic one; clearing it makes the title automatic again. A thread with no message yet has no title and shows "Untitled conversation".
Each stored message carries an answeredBy stamp with the exact model name that wrote it, so a reply from a local 8B model is never mistaken for a Claude reply when the thread is reopened months later.
Settings
| Setting | Default | What it changes |
|---|---|---|
| New conversation | button in the header | Starts a fresh thread; an already-open empty thread is reused, not duplicated |
| Search conversations… | visible from 6 threads | Filters by title and message content, case-insensitive |
| Rename (✎) | automatic title from first message | Custom title up to 60 characters; Enter commits, Escape cancels |
| Save conversation to notes (⤓) | — | Creates a note tagged "conversation" with every turn as **You** / **model** paragraphs |
| Delete this conversation (✕) | confirmation dialog | Removes the thread for good; the open thread falls back to the most recent |
| Delete all conversations | inline confirmation with the exact count | Empties the list; no recycle bin |
| MAX_THREADS | 40 | Oldest threads are dropped beyond this |
| MAX_MESSAGES_PER_THREAD | 200 | Only the end of a longer thread is kept |
| MAX_CHARS_PER_MESSAGE | 12,000 | Longer messages are truncated on disk |
How to use it
- Ask something in the chat: the thread is created on the first message, not on every visit.
- Reopening an old thread does not move it to the top: the order only changes when new content is written.
- Use ⤓ to file a useful conversation into Notes; the assistant can then find it with read_notes.
- While a reply is being written, the list is locked. Events are routed to the open conversation, so switching mid-answer would land the end of the reply in the wrong thread.
Limits or pitfalls
- Pasted screenshots are never written to disk. Only their count survives, and the screen says so instead of showing an empty frame.
- Storage bounds are not the cost bound. What is sent to the model is trimmed separately at send time (see the context window page).
- A corrupted or newer-format store is ignored on load rather than repaired; unreadable threads are skipped.
- Deleting is final: the footer states that conversations stay on this machine and deleting one here deletes it for good.
Related pages
This page in other languages
Frequently asked questions
- Where are my conversations stored?
- In the app's local storage on this machine, under the key senzoukria.ai.threads.v1. They are not sent to any server.
- Why is my old conversation truncated?
- Each thread keeps at most its last 200 messages, and any message longer than 12,000 characters is cut. The list itself keeps at most 40 threads; the oldest are dropped.
- Why does the thread list refuse clicks sometimes?
- The list is locked while the model is writing. Streamed events go to the open conversation, so changing thread mid-reply would misfile the answer.