Repository navigation
Going incognito from an open chat forks it; the original is never flagged - #1
Merged
Merged
Conversation
…gged The fork endpoint takes `incognito: true` and flags only the copy. /incognito and a new header button fork the open chat into an incognito copy (desktop and kiosk); on a blank chat they still start an incognito draft. A leftover incognito draft no longer makes a later chat incognito: opening a chat clears it, creating a chat clears it, and Notes → "Brainstorm in a new chat" always starts a normal chat (desktop, mobile, kiosk). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SoiLLmrxcq1QYVAqdPqcsC
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SoiLLmrxcq1QYVAqdPqcsC
EveAeternam
marked this pull request as ready for review
October 13, 2026 01:50
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Evie · project thread
What changed and why
Before: Shell:B had no way to take an open chat incognito.
/incognitoand "New incognito chat" only started a blank incognito draft, and that draft flag stayed set after you opened another chat. A chat started later without going through "New chat" (Notes → "Brainstorm in a new chat", for example) was then created incognito without you choosing it. That's the likely way "Personal details and phobias" ended up flagged, with no separate original. This is inferred from the code, since nothing on the server ever flags an existing chat.After: going incognito from an open chat forks it.
POST /api/conversations/{id}/forktakesincognito: trueand flags only the copy./incognitoin an open chat, and a new eye button beside Fork in the chat header, open that incognito copy (desktop and kiosk). On a blank chat,/incognitostill starts an incognito draft. A leftover draft no longer leaks: opening a chat clears it, creating a chat clears it, and Notes → Brainstorm always starts a normal chat (desktop, mobile and kiosk).How you tested it
New
tests/incognito_fork_test.py: an incognito fork is flagged and has the messages, and the original stays normal with its messages. A plain fork stays normal, and a fork of an incognito chat stays incognito. Two of these fail without theserver/app.pychange.py_compile,
lint_test,i18n_test,changelog_testandtsc --noEmitpass. Full suite: 426 tests, 2 failures that also fail onmainin this container./api/modelsneeds a local model engine, andintegrity_testCellBackups breaks when run as root.Not tried by hand in a browser.
scripts/check.shpasses (compile, pyflakes, tests, tsc). All steps were run individually, with the two environment failures aboveUser-visible change: entry added at the top of
docs/changelog.jsonNew UI strings wrapped in
t('…')with a French line inui/src/i18n/fr.jsonManual or API docs updated where a route, tool or table changed. The fork route gained an optional
incognitofield and the docs weren't updatedNo secrets, chats or personal data in the diff or the screenshots
New dependencies
None.
🤖 Generated with Claude Code
https://claude.ai/code/session_01SoiLLmrxcq1QYVAqdPqcsC
Generated by Claude Code