diff --git a/STATE_AND_PLAN.md b/STATE_AND_PLAN.md index ef5a7c6..6b36d97 100644 --- a/STATE_AND_PLAN.md +++ b/STATE_AND_PLAN.md @@ -419,3 +419,22 @@ attach + clip playback) and a best-in-class 2D wardrobe that drops straight into real-cloth 3D comes in Phase 4 from harvesting donors you already own; and the thing you'll use every day — the dressing-room library + export hub — is the spine that turns every engine into value for five existing consumers. + +--- +## 3GOD → absorbed (2026-07-24) + +**Retired:** the name, the repo (`ssh://git@100.71.119.27:222/monster/3GOD.git`), and the viewer +UI — wardrobegod's stage/grid/publish covers all of it. + +**Kept and absorbed into `depot/`:** the asset CDN. It holds **773 live assets** and two shipping +games fetch from it *at runtime* (thriftgod `index.html:1176`, procity `loaders.js:7`), so the +service and its `/3god` URL stay exactly as they are. The name now survives only as a URL path. + +Checked before discarding the UI: **0 of 773 assets had tags or notes**, so nothing needed +migrating. Tagging lives in `library/index.json`. + +Two things `depot/README.md` records because they're expensive to rediscover: +1. Publish **direct over the tailnet** (`100.94.195.115:8788`) — the Cloudflare front 403s because + auth trusts the raw socket peer. thriftgod's own `prop_campaign.py --publish` is broken for this. +2. `clean_name` **deletes** illegal characters, so `shop!-cat.glb` silently resolves to an + existing *different* mesh. `god3_name()` reproduces the rule and refuses to overwrite.