26ce662c60
The widget extension opened the shared local SwiftData store with a 7-entity schema while the app's store has 10. SwiftData treats the smaller schema as a migration and destructively drops the unlisted tables — so every widget refresh deleted the bundled Book/BookChapter rows (and DownloadedVideo), which is why books vanished after reinstalls. Introduce SharedStore.localSchemaModels as the single source of truth for the local schema and build the app and both widget containers from it, so app and widget can no longer drift apart. The same class of bug hit TextbookChapter previously; a shared list prevents a third recurrence. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>