Files
artcraft/frontend/apps
Tanish Manku 8281cd33a9 pagescene: parallelize scene load + batch token→URL resolution
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.
2026-05-14 11:12:34 -07:00
..
2026-03-12 21:35:29 +07:00