- Remove userModifiedFields state tracking and isUserAction parameter
- Initialize openRouterSpecificProvider with default value when dropdown becomes visible
- Use useEffect to handle initialization cleanly without modifying state during render
- Addresses feedback about unnecessary complexity in the original implementation
- Replace hardcoded exception for openRouterSpecificProvider with a scalable approach
- Track which fields have been explicitly modified by user interaction
- Fields are only considered 'changed' if they've been modified by the user, not during initial loading
- Reset tracking when settings are saved, discarded, or reloaded
- This ensures the Save button only enables for actual user changes, not initial data loading
* fix: prevent empty mode names from being saved (fixes#5766)
- Add frontend validation in ModesView to prevent empty names from being saved
- Add onBlur handler to restore original name if field is left empty
- Add backend validation in CustomModesManager.updateCustomMode using modeConfigSchema
- Provide user feedback when validation fails
- Trim whitespace from mode names before validation
This prevents YAML parsing errors caused by empty mode name fields.
* fix: improve UX by allowing users to empty mode name field
- Remove restriction that prevented users from emptying the name field
- Remove onBlur handler that automatically restored original name
- Allow backend validation to handle empty names and show appropriate errors
- Users can now type freely but invalid saves are prevented by backend validation
Addresses feedback from @daniel-lxs in PR #5767
* fix: allow emptying mode name field but prevent saving when invalid
- Modified onBlur handler to check if name is empty before saving
- If empty, revert to original name instead of saving empty value
- This provides better UX as requested in PR review
* fix: add proper JSON formatting to source map writes for Windows compatibility
---------
Co-authored-by: Roo Code <roomote@roocode.com>
- Modified setApiConfigurationField to exclude openRouterSpecificProvider from initial sync logic
- This ensures changes to the provider routing setting properly trigger the Save button
- Fixes#6655
* 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: conditionally include reminder section based on todo list configuration
* feat: add tests for REMINDERS section based on todoListEnabled configuration
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>