Incognito: conversations with no history and deleted when they end #6

Merged
kubus merged 4 commits from t3/incognito-mode into main 2026-10-13 00:43:58 +00:00
Owner

Summary

  • Incognito mode in the chat toolbar (web and iOS) switches to a temporary conversation apart from the thread
  • No history visible: incognito conversations see no summary, earlier messages, search history, or task news
  • Read-only memory access: can read memory, look up schedules/triggers, search the web, call ask_opus; cannot write memory, start tasks, or create schedules
  • Automatic deletion: messages and files deleted when you leave, after 30 minutes idle, on /new, or when the brain restarts; spend stays in the ledger
  • Not indexed: incognito messages stay out of the full-text search index
  • Secure storage: PRAGMA secure_delete zeros deleted rows on disk; WAL checkpoint truncates the write-ahead log
  • Database migration adds incognito columns to episodes and messages tables; FTS triggers exclude incognito messages
  • Routes: POST /thread/messages accepts incognito: true; GET /thread/messages?incognito=1 lists incognito conversation; DELETE /thread/incognito ends it

Testing

  • ✓ Incognito conversation does not see thread history or summary
  • ✓ Incognito gets only lookup tools (memory_read, schedule_list, trigger_list); no history search, memory write, run_task, or schedule_create
  • ✓ Incognito messages not in unread list
  • ✓ Incognito messages not in full-text search index
  • ✓ Deleting incognito removes messages, files, and episodes; keeps spend records
  • ✓ Incognito cannot use /remember or /task; those commands return "doesn't work in incognito"
  • ✓ /new in incognito starts a fresh incognito conversation (previous one deleted)
  • ✓ Incognito conversation auto-deleted after 30 minutes idle
  • ✓ Files attached in incognito deleted when conversation ends
  • ✓ Brain restart ends any open incognito conversation
  • Web and iOS views checked in headless Chromium and syntax-checked respectively (not tried live)
## Summary - **Incognito mode** in the chat toolbar (web and iOS) switches to a temporary conversation apart from the thread - **No history visible**: incognito conversations see no summary, earlier messages, search history, or task news - **Read-only memory access**: can read memory, look up schedules/triggers, search the web, call ask_opus; cannot write memory, start tasks, or create schedules - **Automatic deletion**: messages and files deleted when you leave, after 30 minutes idle, on `/new`, or when the brain restarts; spend stays in the ledger - **Not indexed**: incognito messages stay out of the full-text search index - **Secure storage**: `PRAGMA secure_delete` zeros deleted rows on disk; WAL checkpoint truncates the write-ahead log - Database migration adds `incognito` columns to `episodes` and `messages` tables; FTS triggers exclude incognito messages - Routes: `POST /thread/messages` accepts `incognito: true`; `GET /thread/messages?incognito=1` lists incognito conversation; `DELETE /thread/incognito` ends it ## Testing - ✓ Incognito conversation does not see thread history or summary - ✓ Incognito gets only lookup tools (memory_read, schedule_list, trigger_list); no history search, memory write, run_task, or schedule_create - ✓ Incognito messages not in unread list - ✓ Incognito messages not in full-text search index - ✓ Deleting incognito removes messages, files, and episodes; keeps spend records - ✓ Incognito cannot use `/remember` or `/task`; those commands return "doesn't work in incognito" - ✓ `/new` in incognito starts a fresh incognito conversation (previous one deleted) - ✓ Incognito conversation auto-deleted after 30 minutes idle - ✓ Files attached in incognito deleted when conversation ends - ✓ Brain restart ends any open incognito conversation - Web and iOS views checked in headless Chromium and syntax-checked respectively (not tried live)
An incognito message starts or continues a conversation apart from the
thread: no summary, no earlier messages, no history search. Memory is
read-only and only lookups are offered, so nothing outlasts it. It's
kept out of the thread, unread and the search index, and deleted with
its files and model turns when you leave (DELETE /thread/incognito),
after 30 idle minutes, or on restart. Spend stays in the ledger.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The toolbar's incognito button switches the chat to the incognito
conversation and back; leaving deletes it. It survives a reload in the
same tab. Commands that would outlast it aren't offered, and its
messages never count as unread.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Same as the web: the glasses button switches to the incognito
conversation and back, leaving deletes it, its messages are never
unread, and only /new and /stop are offered.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
kubus merged commit 94aac44c87 into main 2026-10-13 00:43:58 +00:00
Sign in to join this conversation.
No reviewers
No labels
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.

Dependencies

No dependencies set.

Reference
kubus/hatbot!6
No description provided.