diff --git a/CLAUDE.md b/CLAUDE.md index 8d9a169..31e26e0 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -227,6 +227,15 @@ See README.md for the overview. takes about 100 ms, and pages are drawn for every frame and every web preview. Writes must go through `saveBitmap()`/`deleteBitmap()`, which clear the cache. Long JSON lists are sent in pieces of about 2 KB (`sendPiece()` in `web_ui.cpp`). +- Icons are cached too (`display/icon_store`, all of them). A save or delete only forgets + that name (`forget()`) and updates the cached name list in place (`listAdd()`/ + `listRemove()`): clearing it all made the next icon list read every icon again (7 s). +- Storage usage (`bitmapStorageUsage()`, for `/api/status`) is cached: `usedBytes()` walks + the file system (about 0.5 s). Every store calls `bitmapStorageChanged()` after a write + or delete; the cache also expires after 60 s. +- The web UI reloads only the lists that changed (`loadLists(only)`, the ESP32 answers one + request at a time): saving a bitmap, icon or font also reloads the pages when a page + uses it (`pagesUsing()`, `pagesWithFont()`). - Check the page's JavaScript after changes: extract the `