- Add Shared/LocalPrefs.swift: device-local UI preferences stored in App Group UserDefaults (never synced by iCloud), read identically by app, widgets, watch snapshot, and App Intents on the same device - Move to local storage: main-tab action button order (UUID array), pinned goal-progress cards on the main tab, goal quest-list collapse state, and per-action memo-prompt popup — reordering or repinning on iPhone no longer touches the iPad and vice versa - Defense logic: actions not in the local order list (e.g. newly received via CloudKit from another device) are automatically appended to the end, sorted by legacy sortOrder then creation date - One-time migration adopts existing @Model values (sortOrder, showsOnMain, isCollapsed, promptsForNote) into local prefs at launch; model properties stay in place so the CloudKit schema is untouched and records keep syncing - Data remains fully synced: actions, goals, quests, sessions, count entries, statistics, and goal/tag/quest list order are untouched by this change - Verified in simulator: legacy data migrates losslessly, grid renders from local order, unknown action lands at the end; iOS+watch+widgets build clean Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013yKDMhuF39GVYy3FMcGHh7
refactor: decouple all UI preferences and layout settings from CloudKit sync to local device storage
Description
This is a repository where I have collected my study codes, project codes I have worked on so far, and setting files.
Languages
Swift
78.6%
Python
6.7%
C
6%
Java
4.4%
TypeScript
3%
Other
1.3%