Changes
· Explicit daily schedule replaces rotation + holiday system — daily-schedule.json maps specific dates to puzzle IDs with optional holiday metadata
· Daily puzzle pools moved to packs.json — weekdayPuzzleIDs and weekendPuzzleIDs fields for fallback rotation
· Shared puzzle link is now tappable for recipients — deep link opens the puzzle directly
Bug Fixes
· Fixed: share sheet opens blank on first tap
· Fixed: release-drafter PR trigger restricted to main branch only
Testing Tasks
The following should be verified before shipping this release:
· Verify daily puzzle matches the entry in daily-schedule.json for today's date
· Verify fallback to weekday/weekend rotation pools when date is not in schedule
· Verify daily-schedule.json with holiday metadata renders holiday badge on DailyPuzzleCard
· Verify daily-schedule.json with null holiday shows no holiday badge
· Verify shared puzzle link opens the correct puzzle when tapped by a recipient
· Verify share sheet opens with content on the first tap (no blank sheet)
· Verify packs.json weekdayPuzzleIDs and weekendPuzzleIDs are populated correctly
· Verify release-drafter only triggers on PRs to main (not develop)
· Run full unit test suite (LamplitTests) — all tests pass
Not Yet Implemented
The following features are planned but not included in this release:
· Phase 2.3 — Ambient audio loop (crackling fire / rain) — deferred due to licensing
· Phase 6 — Monetization: StoreKit 2 one-time unlock, puzzle packs, hint bundles, streak shields
· Phase 7 — Game Center leaderboards and achievements
· Phase 8 — Launch readiness: privacy manifest, full accessibility audit, localization
· Settings screen — audio/haptic toggles, restore purchases