- add tiered D1 caching and cache version invalidation for worker-heavy reads
- reduce CPU cost in statistics, calendar, settings, exchange-rate, and import paths
- align worker-facing settings and shared types with the no-KV lite runtime
- replace fixed reminder day controls with configurable reminder rule strings for advance and overdue notifications
- add shared parsing and normalization helpers, subscription-level override fields, and default seeded rules
- switch reminder scanning to minute-level rule matching while preserving merged notification behavior
- update settings, subscription forms, detail views, and types to use tooltip-guided rule inputs and normalized save flow
- refresh API and tests to cover the new reminder rule settings, storage, and notification matching behavior
- add notifyOnDueDay and overdueReminderDays to shared settings schema and defaults
- wire reminder settings through API settings service, notification scan logic, seed data, and tests
- update settings page with 默认提前提醒天数 label, 到期当天提醒 switch, and 过期提醒 multi-select
- show current app version under SubTracker branding and inject VITE_APP_VERSION during web builds
- add GPLv3 LICENSE and update README with license and acknowledgements
- replace legacy category-based subscription flow with tag-based models, routes, types and UI management
- rebuild Prisma schema around Tag and SubscriptionTag, remove legacy category relation fields, and reseed defaults
- add unified Wallos import inspect/commit flow for JSON, SQLite and ZIP packages with ZIP logo ingestion and DB-version compatibility
- add auto-renew execution in scheduler plus payment record drawer entry in subscription actions
- rename user-facing renewal wording to 续订 in key views and align subscription form with tag selection and auto-renew
- improve logo handling with local library support, remote import persistence, and ZIP asset matching fallback