[BUG] Desktop (Windows 11): conversation silently duplicated into 15+ sessions; one typed message delivered to multiple sessions; parallel copies independently edited the same file
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Environment: Claude Code desktop app, Windows 11 Home (10.0.26200). Non-developer user, single project directory. Evidence comes from local session transcripts (~/.claude/projects/<project>/*.jsonl); I can provide excerpts privately on request.
Summary: I worked in what I believed was one conversation. I never knowingly forked. Later I found sessions in the sidebar I didn't create, work appeared "already done" when I asked for it, and the state became chaotic (wrong work, reverts, unfinished tasks).
Evidence (2026-06-12, local transcripts):
- Mass duplication: 20 main-session .jsonl files modified that day; 15+ nearly identical in size (28-29 MB), clustered within ~2.5 hours - the same conversation duplicated many times.
- One typed message, multiple deliveries: my instruction (sent once, 04:07:20.737Z) appears with the identical timestamp in 3 session files (copied history), and the same instruction appears in a 4th session file at 04:07:29.622Z - 9 seconds later - an independent delivery I never typed. Another message of mine appears in two sessions at 05:08:49Z and 05:10:04Z (~75 s apart).
- Parallel copies editing the same file: one edit (04:10:17.940Z) is byte-identical across 3 fork files (= one execution, copied), but 3 other session files contain edits to the same HTML file with different, independent timestamps (04:19-04:52Z) - multiple sessions really were editing one file in parallel.
- One lineage ran in acceptEdits mode, so its edits applied without per-edit prompts - combined with the above, files changed "with no instruction I remember giving."
- Transcripts contain no fork-lineage metadata (no parent/forkedFrom field), so a user cannot audit which session is a copy of which.
Impact: A non-developer cannot notice the conversation has split (fork auto-switches the UI; per #59631 one click can even create two forks). Instructions land in copies, work duplicates or conflicts, and it looks like the AI is coding without instruction.
Related: #59631, #39484, #49954, #60295, #52051, #27658, #27311
What Should Happen?
- A confirmation dialog before forking, and a clear visual indicator that the current chat is a fork.
- A guarantee that a typed message is delivered to exactly one session.
- Fork lineage metadata in transcripts so duplicated sessions can be audited.
- A warning or worktree isolation when multiple sessions share one working directory.
Error Messages/Logs
No single error message - the defect is silent session duplication. Log-style evidence from local transcripts (~/.claude/projects/<project>/, session IDs truncated):
* 2026-06-12: 20 main-session .jsonl files; 15+ nearly identical ~28-29 MB, mtimes within ~2.5 h
* The same user message (typed once) present in 4 files:
- 5687a6a0-...jsonl "timestamp":"2026-06-12T04:07:20.737Z"
- 32ce6637-...jsonl "timestamp":"2026-06-12T04:07:20.737Z" (identical = copied history)
- 3b537807-...jsonl "timestamp":"2026-06-12T04:07:20.737Z" (identical = copied history)
- e16de157-...jsonl "timestamp":"2026-06-12T04:07:29.622Z" (9 s later = independent delivery)
* Another user message present in two sessions: 05:08:49.816Z (3b537807) and 05:10:04.350Z (5687a6a0), ~75 s apart
* Edits to the same project HTML file: byte-identical tool-use timestamps across 3 files (04:10:17.940Z = one execution, copied), PLUS independent edit timestamps 04:19-04:52Z in three other session files (48a93ee8 / 68ef2a42 / 799c3b66) = real parallel edits
* One session lineage ran with permission mode "acceptEdits" (edits applied without per-edit prompts)
* "Overloaded" errors appeared in the UI during the same period (not captured)
Steps to Reproduce
- Open the Claude Code desktop app on Windows 11 (Korean UI) and work in ONE chat session in one project directory.
- Hover over a past user message and click "Fork from here" (여기서 포크하기) — or right-click a session in the sidebar and choose Fork. (Per #59631, a single click can even create TWO forks.)
- Observe that the UI silently switches into the forked chat with no visible indicator. A non-developer user does not realize the conversation has split and keeps typing instructions into "the" chat.
- Repeat step 2 accidentally a few times over several hours of normal work (the hover button is easy to misclick). During our incident, "overloaded" errors also occurred in the same period.
- Result observed:
- The sidebar accumulates sessions the user never knowingly created.
- The same typed message appears in multiple session transcripts: 3 copies with identical timestamps (copied history) and 1 with a timestamp 9 seconds later (independent delivery the user never typed).
- Multiple sessions independently edit the same project file (distinct tool-use timestamps in different .jsonl files).
- Check ~/.claude/projects/<project>/*.jsonl: many near-identical large .jsonl files (15+ at 28-29 MB on one day) and NO fork-lineage metadata to audit which session is a copy of which.
Note: steps 1-4 reliably create the silent-fork/auto-switch confusion. The duplicate message delivery (step 5, 9-second offset) is not deterministically reproducible by us; it occurred amid repeated forks + overload errors. Timestamp evidence is in the "error messages/logs" section above.
Claude Model
Other
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.170 (Claude Code) — via Claude desktop app 1.12603.1 (Microsoft Store), Windows 11
Platform
Other
Operating System
Windows
Terminal/Shell
Other
Additional Information
- During the incident the app also showed repeated "overloaded" errors and stopped responding at times, which made it harder to notice that sessions had multiplied.
- The fork was most likely triggered accidentally via the "Fork from here" hover button / sidebar context menu (Korean UI). I never used the fork feature intentionally and did not know it existed.
- I am a non-developer using the Korean-localized desktop app.
- I can share sanitized transcript excerpts (timestamps and structure only, no project content) privately if needed for reproduction.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗