- Add device registration and save synchronization
- Implement slot-based save organization with datetime tagging
- Add conflict detection for multi-device sync scenarios
- Add content hash computation for save deduplication
- Support ZIP inner-file hashing for consistent deduplication
- Add confirm_download endpoint for sync state management
- Add overwrite parameter to bypass conflict checks
Implement device registration and save sync tracking to enable
multi-device save management with conflict detection.
- Device CRUD endpoints (POST/GET/PUT/DELETE /api/devices)
- Save sync state tracking per device
- Conflict detection on upload (409 when device has stale sync)
- Download sync tracking (optimistic and confirmed modes)
- Track/untrack saves per device
- DEVICES_READ/WRITE scopes for authorization
- Introduced `ui_settings` column in the users table via Alembic migration.
- Updated UserForm and UserSchema models to include `ui_settings`.
- Enhanced user update endpoint to handle `ui_settings`.
- Created a new composable `useUISettings` for managing UI settings with local storage.
- Refactored UI components to utilize the new `useUISettings` for theme and language settings.
- Updated .gitignore to exclude copilot-instructions.md
- Added migration script 0055_multi_notes.py to convert single note fields to a multi-note JSON structure in the database.
- Refactored RomUserSchema to replace note_raw_markdown and note_is_public with a notes dictionary.
- Introduced UserNoteSchema for representing individual notes.
- Created MultiNoteManager.vue component for managing user notes in the frontend.
- Integrated MultiNoteManager into Personal.vue for displaying and editing notes.
- Updated API service to include multi-note management functions.
- Enhanced NoteDialog.vue to display multiple notes.
- Updated localization files to include new strings related to notes.
- Adjusted Vite configuration to allow additional host for development.