Analysis cache redesign: - Remove Hive persistence from AnalysisCacheService entirely - Use Map<String, SakeAnalysisResult> in-memory instead of Hive boxes - Cache now lives only for the duration of an app session; restart always produces a fresh analysis — no stale misidentifications can persist - Remove Hive init(), TTL/cleanupExpired(), getCachedByBrand() dead code - API surface unchanged: callers (gemini_service, dev_menu) need no edits - main.dart: delete legacy Hive boxes (analysis_cache_v1, brand_index_v1) from disk on startup for existing users - dev_menu_screen: update cache description text to reflect new behavior Rationale: - Camera captures always produce unique files -> cache hit rate was ~0% - Each user supplies their own Gemini API key -> no shared cost benefit - Persistent wrong results (e.g. misrecognized brand names) could survive up to 30 days under the old design - Different sake editions photographed separately have different hashes and were never affected by the cache in the first place Made-with: Cursor |
||
|---|---|---|
| .. | ||
| constants | ||
| l10n | ||
| models | ||
| providers | ||
| screens | ||
| services | ||
| theme | ||
| utils | ||
| widgets | ||
| main.dart | ||
| secrets.dart | ||
| secrets.local.dart.example | ||