FR-4: Description Caching
- Descriptions are cached locally on the Mac (where the relay runs) to
avoid re-describing the same image
- Cache key: attachment GUID (from BlueBubbles)
- Cache storage: a JSON file at
~/.cache/aquaping/image_descriptions.json or a SQLite
database
- Cache entry format:
{guid: {description: "...", timestamp: "...", model: "minimax"}}
- Cache is read before every API call; if a GUID exists, the cached
description is returned immediately
- Cache has no expiration (images don’t change)
- Cache is written after every successful API call