Pack docs: what the client was seen to do
CI / test (push) Successful in 20s

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
dhkatzandClaude Opus 5.5 committed 2026-10-29 03:17:13 -07:00
1 parent 9bdc3ff455
commit 106b4fcc60
1 file changed
+8 -5
+8 -5
View File
@@ -75,12 +75,15 @@ rest:
| `BodyPatternProductId` | optional integer |
| `__DATAIMPORT` | optional: `product://<id>/index.xml`, the IMVU product it derives from |
A product derives from an IMVU parent product, as every IMVU product does: the client loads the parent's files
first (from IMVU, as usual) and the pack's files on top. So a pack holds only what it changes, and the parent's
files never pass through T5DE.
A product usually derives from an IMVU parent product (a derivable mesh), as products made in Create Mode do. The
client asks IMVU for the parent's whole derivation chain and loads the parents' files from IMVU, and the pack's
files on top of them: a pack file with the same name as a parent's replaces it (checked with a texture in client
554.8). So a pack holds only what it changes, and the parents' files never pass through T5DE.
## How the proxy serves a pack
The proxy builds the files into a CFL, IMVU's product container (package `cfl`), uncompressed, files in name
order, and serves it where the client asks for the product's files. The revision is part of the address the
client caches the product under, so a new revision makes clients load the new files.
order, and serves it at `productdata/<local ID>/<revision>`, the address the client asks for. The client caches a
product's files by that address and file name, so a new revision makes clients load the new files. The proxy
picks up changed files within a revision too, but a running client may keep the files it already loaded: raise
the revision to be sure.