Before submitting
Area
apps/server
Steps to reproduce
- open a thread whose workspace is not a git repo (scratch project)
- hover one of your own past messages in the timeline
- only "Copy message" shows up, no "edit from here" button, nothing explaining why
same driver (pi), same account, in a git-backed workspace (project repo or t3 worktree) the button shows up on hover and rollback works. so it's workspace dependent, not driver dependent
Expected behavior
rollback should work, at least conversation-only ("revert and keep changes", restoreFiles: false) which doesn't need a file checkpoint in the first place. or at least tell me why it's unavailable instead of silently hiding the button
Actual behavior
no rollback at all in non-git workspaces:
CheckpointCaptureServiceV2 (apps/server/src/orchestration-v2/CheckpointService.ts:381, also :342) stores checkpoints with status: "missing" when isGitCheckpointable(cwd) is false
- the client only maps
ready checkpoints into the per-message revertTurnCount that gates the "edit from here" button (deriveRevertTurnCountByUserMessageId, apps/web/src/session-logic.ts:1045)
- server rollback resolution also hard-requires a ready checkpoint -> "Rollback target run ordinal N is unavailable for thread X"
so in a scratch (non-git) workspace the whole rollback feature is dropped, including "revert and keep changes" which is conversation-only and doesn't need any file checkpoint
also: the only "Roll back" button for checkpoint items (apps/web/src/components/chat/V2ItemInspector.tsx:376, gated on status === "ready") renders from timeline rows' projectedItem, but the timeline entry builder skips checkpoint items entirely (apps/web/src/session-logic.ts:631), so that button is unreachable from the timeline
Impact
Minor bug or occasional failure
Version or commit
0.0.46-nightly.20261008.2813
Environment
macOS 27.0 arm64, t3 code nightly desktop app, provider pi (pi 1.1.0)
Logs or stack traces
no stack traces, it's fully silent. evidence from ~/.t3/userdata/statev2.sqlite: threads in ~/.t3/scratch/* have all their checkpoint rows status="missing", threads in git worktrees have status="ready" (30 pi threads with 121 ready checkpoints, all git-backed)
source refs (main @ a4c9494b): CheckpointService.ts:381 + :342, session-logic.ts:1045 + :631, V2ItemInspector.tsx:376
Screenshots, recordings, or supporting files
No response
Workaround
none in-app. running the conversation in a git-backed project (or git init-ing the workspace folder) makes checkpoints "ready" and the button shows up for subsequent turns. conversation-only rewind really shouldn't need a git repo at all tho?
Before submitting
Area
apps/server
Steps to reproduce
same driver (pi), same account, in a git-backed workspace (project repo or t3 worktree) the button shows up on hover and rollback works. so it's workspace dependent, not driver dependent
Expected behavior
rollback should work, at least conversation-only ("revert and keep changes", restoreFiles: false) which doesn't need a file checkpoint in the first place. or at least tell me why it's unavailable instead of silently hiding the button
Actual behavior
no rollback at all in non-git workspaces:
CheckpointCaptureServiceV2(apps/server/src/orchestration-v2/CheckpointService.ts:381, also :342) stores checkpoints withstatus: "missing"whenisGitCheckpointable(cwd)is falsereadycheckpoints into the per-messagerevertTurnCountthat gates the "edit from here" button (deriveRevertTurnCountByUserMessageId,apps/web/src/session-logic.ts:1045)so in a scratch (non-git) workspace the whole rollback feature is dropped, including "revert and keep changes" which is conversation-only and doesn't need any file checkpoint
also: the only "Roll back" button for checkpoint items (
apps/web/src/components/chat/V2ItemInspector.tsx:376, gated onstatus === "ready") renders from timeline rows'projectedItem, but the timeline entry builder skips checkpoint items entirely (apps/web/src/session-logic.ts:631), so that button is unreachable from the timelineImpact
Minor bug or occasional failure
Version or commit
0.0.46-nightly.20261008.2813
Environment
macOS 27.0 arm64, t3 code nightly desktop app, provider pi (pi 1.1.0)
Logs or stack traces
Screenshots, recordings, or supporting files
No response
Workaround
none in-app. running the conversation in a git-backed project (or git init-ing the workspace folder) makes checkpoints "ready" and the button shows up for subsequent turns. conversation-only rewind really shouldn't need a git repo at all tho?