mirror of
https://github.com/HeyPuter/puter.git
synced 2026-08-24 06:58:21 +00:00
A copied fsentry kept its source's thumbnail pointer verbatim, so both rows shared one S3 thumbnail object. fs.remove.node deletes the pointed-to object, so the first removal among the sharers — e.g. the remove performed by a replace-on-copy — broke every other sharer's thumbnail. FSService already emits fs.copy.node for exactly this reason (its doc comment describes the duplication), but the thumbnails extension never subscribed to it. Add the missing handler: S3-copy the thumbnail to a freshly minted key and repoint the copied row, under the same only-keys-we-minted trust rule as the read/remove paths. If the shared object is already gone (pre-fix damage), null the pointer instead of leaving the row advertising a thumbnail it doesn't have.