You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Conversation-only rewind ("Edit from here") in non-Git projects
#16410
In a project whose directory is not a Git repository, Edit from here never appears, so there is no way to rewind the conversation to an earlier message.
#10365 asked for this and was closed as a duplicate of #6882. #6882 was resolved by #11358 (Revert and keep changes), but that conversation-only rewind is still gated on a Git checkpoint, so non-Git projects did not get it.
Server: in a non-Git directory every run checkpoint is recorded with status: "missing" (apps/server/src/orchestration-v2/CheckpointService.ts:374-387).
Web: deriveRevertTurnCountByUserMessageId only maps user messages whose run has a ready checkpoint (apps/web/src/session-logic.ts:1010-1032), and the button renders only when revertTurnCount is set (apps/web/src/components/chat/MessagesTimeline.tsx:2285).
Server: CheckpointRollbackService rejects any target whose checkpoint is not ready with rollback-target-invalid, even when restoreFiles === false (apps/server/src/orchestration-v2/CheckpointRollbackService.ts:131-145).
The checkpoint record itself (run id, ordinalWithinScope) exists for every run; only the Git snapshot is absent. A conversation-only rewind does not read the snapshot.
Proposed change
Allow conversation-only rewind to target a checkpoint in missing status:
Web: offer Edit from here for user messages whose run has a readyormissing checkpoint, when the provider supports conversation rollback. For a missing checkpoint, show only Revert and keep changes (no file-restore option), with a note that the project is not under Git.
Server: in CheckpointRollbackService, accept a missing checkpoint when restoreFiles === false; keep requiring ready when files are restored.
Out of scope
File restore without Git. Non-Git projects keep their files as they are, the same as Revert and keep changes already does in Git projects.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Problem
In a project whose directory is not a Git repository, Edit from here never appears, so there is no way to rewind the conversation to an earlier message.
#10365 asked for this and was closed as a duplicate of #6882. #6882 was resolved by #11358 (Revert and keep changes), but that conversation-only rewind is still gated on a Git checkpoint, so non-Git projects did not get it.
Why it is missing today (main @ 76d3c96)
status: "missing"(apps/server/src/orchestration-v2/CheckpointService.ts:374-387).deriveRevertTurnCountByUserMessageIdonly maps user messages whose run has areadycheckpoint (apps/web/src/session-logic.ts:1010-1032), and the button renders only whenrevertTurnCountis set (apps/web/src/components/chat/MessagesTimeline.tsx:2285).CheckpointRollbackServicerejects any target whose checkpoint is notreadywithrollback-target-invalid, even whenrestoreFiles === false(apps/server/src/orchestration-v2/CheckpointRollbackService.ts:131-145).The checkpoint record itself (run id,
ordinalWithinScope) exists for every run; only the Git snapshot is absent. A conversation-only rewind does not read the snapshot.Proposed change
Allow conversation-only rewind to target a checkpoint in
missingstatus:readyormissingcheckpoint, when the provider supports conversation rollback. For amissingcheckpoint, show only Revert and keep changes (no file-restore option), with a note that the project is not under Git.CheckpointRollbackService, accept amissingcheckpoint whenrestoreFiles === false; keep requiringreadywhen files are restored.Out of scope
File restore without Git. Non-Git projects keep their files as they are, the same as Revert and keep changes already does in Git projects.
Risks
errorstatus (Git capture failed) should stay excluded, so a broken Git repo does not silently drop the file-restore option.All reactions