Rewind: disabling fileCheckpointingEnabled also removes both Summarize options
Summary
Setting "fileCheckpointingEnabled": false makes both Summarize from here and Summarize up to here unreachable from the rewind menu (double-Esc). Summarizing is a conversation-level operation with no dependency on file history, so this looks like unintended coupling rather than a deliberate gate.
Repro
- Add to
~/.claude/settings.json:
``json``
{ "fileCheckpointingEnabled": false }
- In an interactive session with a few turns of history, double-tap <kbd>Esc</kbd>.
- Highlight any earlier user message and press <kbd>Enter</kbd>.
Expected: the option list appears, offering Restore conversation, Summarize from here, Summarize up to here, Never mind.
Actual: the conversation is restored immediately and the selector closes. The option list never renders, so neither summarize option can be reached.
With fileCheckpointingEnabled left at its default (true), the same keystrokes show the full list and both summarize entries work.
Diagnosis
When file checkpointing is disabled, picking a message short-circuits straight to "restore the conversation and close" instead of rendering the option list. Both summarize entries are appended by the option-list builder, so skipping that render removes them along with the code-restore entries.
Two details suggest the list was meant to render in this state:
- the option-list builder already has a branch for "code restore not available", which produces
Restore conversationplus the two summarize entries; - the list's default focus value already falls back to
Restore conversation.
Those branches only ever run in the other no-code case — checkpointing enabled, but the selected message's checkpoint has no changed files — because code-restore availability is computed as "gate enabled AND the checkpoint has at least one changed file". With the gate off there is no checkpoint lookup at all, the short-circuit wins, and those fallbacks are unreachable.
Nothing in the summarize path reads file history.
Suggested fix
Let message selection fall through to the option list regardless of the checkpointing gate, and let the existing "code restore not available" branch handle it. The gate would then control only whether the code-restore entries are offered — which is what the builder and the default focus value already appear to assume.
Environment
- Claude Code 2.1.234 (observed), also present in 2.1.235
- Linux x64