photocraft/apps
Brandon Thomas ff53be714d
Persist brush presets in a size-aware preset store (#78) (#82)
User and imported .abr brush presets now survive a restart. The new
photocraft_engine::preset_store keeps one JSON file per preset group plus
content-addressed, deflated tip bitmaps (8-bit when the tip came from 8-bit
data) in <config dir>/Presets, and an index with group order and deleted
built-ins. Built-ins are never written; writes are atomic and bounded;
corrupt or oversized files are skipped with a warning and left on disk.

The desktop app loads the store on a background thread and attaches it when
it arrives; sessions without a store (CLI, MCP, web, tests) stay hermetic.
Brush preset mutations bump ToolState::presets_rev and the store syncs after
the command, rewriting only groups whose content changed.

Fixes #78

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 17:53:24 -04:00
..
photocraft Persist brush presets in a size-aware preset store (#78) (#82) 2026-10-04 17:53:24 -04:00
photocraft-cli security: constrain automation filesystem access (#72) 2026-10-04 16:35:06 -04:00
photocraft-web Large images: adapter texture limits, banded compositing/export, proxy thumbnails, history byte budget (#71) 2026-10-04 16:45:17 -04:00