From 437bba5a88d4478edfa3a1fb2f2e2f3d61892f40 Mon Sep 17 00:00:00 2001 From: simoleo89 Date: Thu, 4 Jun 2026 22:39:41 +0200 Subject: [PATCH] docs: document FurnitureDataReload live furnidata pipeline --- CLAUDE.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index f7fe301..c1ded40 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -277,3 +277,24 @@ for the React-side bridge code. - `../Nitro-V3` — React 19 client (consumes this lib via link) - `../Arcturus-Morningstar-Extended` — Java emulator (server side) - `../NitroV3-Housekeeping` — Next.js + Prisma admin CMS + +## Live furnidata updates: `FurnitureDataReload` (incoming header 10047) + +Server-pushed furni name/description changes (pairs with Arcturus' +`FurnitureDataReloadComposer`). `SessionDataManager.applyFurnidataDelta` (pure +`applyFurnidataDeltaTo` in `packages/session/src/furniture/`) patches +`_floorItems`/`_wallItems` by id + the `roomItem/wallItem.name/desc.{id}` +localization keys, then dispatches the window event `nitro-localization-updated` +so the client's already-subscribed surfaces refresh. `mode` 0 = delta, 1 = +reload-hint (re-runs `FurnitureDataLoader.init()`). Kept SEPARATE from the +furni-editor's `applyLiveFurnitureNameUpdate`. + +**Adding an incoming packet:** id in `IncomingHeader.ts` -> map in +`NitroMessages.ts` (`this._events.set(IncomingHeader.X, XEvent)`) -> Event + +Parser under `messages/incoming/` + `messages/parser/` -> wire the +barrel chain (`/index.ts` -> parent `index.ts` -> package `src/index.ts`). + +**Gotchas:** +- A branch based on `origin/Dev` may NOT contain the furni-editor slice + (`FurniDataUpdatedEvent` / `applyLiveFurnitureNameUpdate`) — verify, don't assume. +- Building the renderer in a fresh git worktree needs its own `yarn install`.