mirror of
https://github.com/HeyPuter/puter.git
synced 2026-09-04 12:25:44 +00:00
renderItem parsed file.metadata with an unguarded JSON.parse, but metadata is client-writable and stored verbatim, so '', undefined, or malformed values throw (item_icon.js guards the identical call). Combined with Promise.all, one bad entry rejected the whole render and left the tab frozen. Guard the parse and use Promise.allSettled for per-item isolation.