Desktop app (Windows): the worktree-lost notice is rendered inside the last assistant message and replaces its timestamp
Environment
- Claude desktop app 2.16120.0 (Windows MSIX, Code tab), bundled Claude Code 2.1.284
- Windows 11 Home 10.0.26200
- Session id
8bbf539a-c20a-4d94-a86f-01245ccd2a4a(projectD:\Repos\PlayServ\playserv-platform)
What happened
- A session ran in a worktree (
.claude/worktrees/backend-game-server-demo-22ec5a) on 2026-09-24. The last assistant message of that day was sent at 19:56 local time. - The worktree was removed later (cleanup). On 2026-10-01 at 13:40 the session was reopened in the Code tab.
- The app produced the recovery notice:
> This session's old worktree was removed and couldn't be re-created, so it now runs in the main repository at D:\Repos\PlayServ\playserv-platform without a worktree of its own. Uncommitted files from the old worktree weren't carried over, and its branch claude/backend-game-server-demo-22ec5a may no longer exist.
Observed: the notice is rendered inside the card of the last assistant message, directly under its content: same card, no separator, no "system" or "app" marker. The card's footer timestamp ("5 hours ago", tooltip Oct 1, 2026, 1:40 PM) now shows the time of the notice, not the time of the assistant message (Sep 24, 19:56). Assistant messages carry no other visible timestamp, so the only date the UI offers for that message is wrong by a week.
The notice is not written to the session transcript (~/.claude/projects/<project>/<session>.jsonl), so there is no in-app way to recover the original time; it had to be read from the timestamp fields of the .jsonl by hand.
Expected
- App/system notices are their own card, visibly marked as coming from the app, with their own timestamp.
- The assistant message keeps its own timestamp; the notice never overrides it.
- Ideally every message exposes its absolute time on hover, not only system cards.
Related
#94045 covers the recovery flow itself (the session being dropped into the main repo). This report is only about how that flow's notice is rendered in the transcript view.