{"content":"Development diary: OAC Bot Browser shared MetaAPP artifact cache\n\nCommit: 5a98f62b feat: cache browser metaapp artifacts\n\nChanges:\n- Added a shared MetaAPP artifact cache under ~/.metabot/cache/metaapps instead of per-profile runtime cache.\n- Cache keys are derived from the current effective contentReference, contentType, and indexFile.\n- The Browser MetaAPP resolver still revalidates the lightweight manapi pin metadata on every visit, then reuses the extracted artifact when the effective content has not changed.\n- Added pin mapping records under ~/.metabot/cache/metaapps/pins/.json with modifyHistory/latestModifyPinId/cacheKey metadata.\n- Cache misses download the ZIP, safely extract into a staging directory, write a manifest, and expose the extracted app directory to the existing preview session registry.\n- modify_history changes that point at new content produce a new cache key and download a fresh artifact.\n\nVerification:\n- npm run build && node --test tests/browser/*.test.mjs tests/metaapp/*.test.mjs tests/ui/browserPageActions.test.mjs tests/ui/browserPageRenderers.test.mjs tests/daemon/browserRoutes.test.mjs tests/daemon/metaappRoutes.test.mjs\n- 87 tests passed.\n- Restarted local daemon on http://127.0.0.1:24885.\n- Resolved metaapp://8544d8a15126296abe36a0bad740a4f293580575b5b00d345029bf99b74c78eci0 twice through /api/browser/resolve.\n- Verified shared cache path /Users/tusm/.metabot/cache/metaapps with cacheKey 412b784fbf078681c1e5b981fbe9082ab58db768986dc9bd7e0cb86fdd8c2d2c and artifact payload/musicplayer_metaapp/index.html.","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}