mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-14 05:42:32 +00:00
Cold-open of a 10-object scene used to make ~21 sequential roundtrips (N metadata fetches + N binary fetches). Now it makes 1 batch metadata call followed by parallel binary fetches. - adapter.ts: optional getMediaUrlsByTokens(tokens) on the adapter contract. Hosts that wrap MediaFilesApi can implement via ListMediaFilesByTokens (GET /v1/media_files/batch). - scene.ts: warmMediaURLs() populates a per-Scene URL cache; getMediaURL consults it before falling back to the single-token method. - proxy/storyteller_proxy_scene.ts: loadFromSceneJson warms the cache for all m_* tokens up front, then dispatches per-object loads in parallel via Promise.allSettled. A synchronous second pass applies transforms in original JSON order so insertion ordering is preserved. - webapp web-adapter.tsx: implements the new batch resolver. - editor.ts: passes the new adapter method through to Scene. Desktop adapter unchanged — falls back to Promise.all of single-token calls until commit 4 brings it onto the batch endpoint.