* feat(checkpoints): create checkpoint on user message send
* fix(checkpoints): suppress implicit user-message checkpoint row; keep current checkpoint updated without a chat row
* Fix checkpoint suppression for user messages
- Propagate suppressMessage flag through event chain properly
- Update ChatView to check checkpoint metadata for suppressMessage flag
- Ensure checkpoint messages are created but not rendered when suppressed
- Fix bug where checkpointSave(false) should have been checkpointSave(true)
* fix: only create checkpoint on user message when files have changed
- Changed allowEmpty from true to false in checkpointSave call
- Checkpoints will now only be created when there are actual file changes
- This avoids creating empty commits in the shadow git repository
* test: update checkpoint test to include suppressMessage parameter
- Fixed test expectation to match the new function signature
- saveCheckpoint now expects both allowEmpty and suppressMessage parameters
---------
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
* feat: Before requesting, ensure checkpoint is initialized
* Generate a checkpoint before modifying the code
* refactor: streamline checkpoint handling and enhance getCheckpoints method
* Blocked waiting for checkpoint initialization timing to change
* cancel checkpoint restore limit
* fix: ensure checkpoint service is undefined on initialization error and improve checkpoint diff handling
* refactor: simplify checkpoint service initialization and cleanup unused variables in CheckpointMenu
* fix: prevent race condition in checkpoint service initialization
- Only assign service to cline.checkpointService after successful initialization
- Add proper cleanup on initialization failure
- Prevents service from being in inconsistent state if Git check fails
* fix: remove checkpoint save from presentAssistantMessage for update_todo_list case
---------
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
* feat: Make checkpoint on new task
Ensures that invoking the `newTaskTool` always creates a checkpoint, even if no files have changed. This provides a consistent state snapshot before a sub-task is initiated.
* refactor: remove delay
---------
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>