install.mjs hardcoded the renderer SDK location as ../Nitro_Render_V3, so re-running it next to a renderer checkout under a different name silently cloned a second copy.
Resolve the renderer dir by priority: --renderer-dir=<path> flag, NITRO_RENDERER_DIR env, interactive prompt, then auto-detect an existing sibling among Nitro_Render_V3 / renderer. A fresh clone with no flag/env still defaults to ../Nitro_Render_V3, and existing checkouts are auto-detected (no more duplicate clones). Adds --renderer-repo=<url> for the clone URL; --help, the step labels and the summary reflect the resolved dir.
Backward-compatible, pure installer change — no client/runtime code touched.
Remove a trailing comma after the closing object in public/configuration/ui-config.example. This fixes invalid JSON syntax that could cause parsing errors when loading the UI configuration.
Wire both classic and modern catalog purchase widgets to the shared catalogSkipPurchaseConfirmation setting used by User Settings. When enabled, the primary buy/rent button now calls the purchase flow directly instead of first switching to the CONFIRM state. Existing validation, gift purchases, club checks, limited sold-out handling, and Builders Club placement flows remain unchanged.
The renderer pairing was hardcoded to the upstream repo. Make it owner-derived:
pair the client against <github.repository_owner>/Nitro_Render_V3 when that repo
carries the resolved ref, else fall back to the upstream renderer. So a fork's
client CI pairs with the fork's renderer when the companion code lives there,
and upstream still pairs with upstream. Keeps workflow_dispatch + vars.RENDERER_REPO/REF
overrides; probes ref existence via git ls-remote and warns+falls back if missing.
Pair the client against <repo owner>/Nitro_Render_V3 when that fork carries
the resolved ref, else fall back to the upstream renderer — instead of
hardcoding duckietm. Keeps dispatch-input and vars.RENDERER_REPO/REF
overrides; probes refs with 'git ls-remote' and warns+falls back if a ref
is missing. Fixes fork 'main' CI, whose client depends on fork-only
messenger composers (AddFriendCategoryComposer, ConsoleTypingComposer, …).
Replace the explicit per-package @nitrots/<pkg> entries with a single
'@nitrots/*' -> ../Nitro_Render_V3/packages/*/src/index.ts wildcard
(plus the umbrella '@nitrots/nitro-renderer' entry). Functionally
identical to a6e07c5 but far less verbose; yarn typecheck clean,
Vitest 545/545.
Replace the explicit per-package @nitrots/<pkg> entries with a single
'@nitrots/*' -> ../Nitro_Render_V3/packages/*/src/index.ts wildcard
(plus the umbrella '@nitrots/nitro-renderer' entry). Functionally
identical to a6e07c5 but far less verbose; yarn typecheck clean,
Vitest 545/545.
After syncing upstream, the client imports messenger composers/events
(AddFriendCategoryComposer, ConsoleTypingComposer, FriendIsTypingEvent, …)
that exist in fresh renderer source but tsgo resolved @nitrots to a stale
target predating them -> TS2305 'no exported member'. Mirror the vite.config
@nitrots/* aliases in tsconfig paths so typecheck reads the same source as
runtime. yarn typecheck now clean (0 errors); Vitest 545/545.
After syncing upstream, the client imports messenger composers/events
(AddFriendCategoryComposer, ConsoleTypingComposer, FriendIsTypingEvent, …)
that exist in fresh renderer source but tsgo resolved @nitrots to a stale
target predating them -> TS2305 'no exported member'. Mirror the vite.config
@nitrots/* aliases in tsconfig paths so typecheck reads the same source as
runtime. yarn typecheck now clean (0 errors); Vitest 545/545.
vite.config already aliases pixi.js to the renderer's copy, but tsconfig had no
matching path, so tsgo could not resolve the client-side import in src/pixiPatch.ts
(merge-introduced). Mirror the vite alias. Fixes TS2307.
Upstream 7007752 removed the TEXT constant + its handler case while migrating
in-component inserts to setChatValue, but NotificationDefaultAlertView still
dispatches TEXT to copy a command into the chat input (the only cross-component
path to set the input). Restore the constant and the handler case (setChatValue
+ focus, matching the command-selector path). Fixes TS2339.
vite.config already aliases pixi.js to the renderer's copy, but tsconfig had no
matching path, so tsgo could not resolve the client-side import in src/pixiPatch.ts
(merge-introduced). Mirror the vite alias. Fixes TS2307.
Upstream 7007752 removed the TEXT constant + its handler case while migrating
in-component inserts to setChatValue, but NotificationDefaultAlertView still
dispatches TEXT to copy a command into the chat input (the only cross-component
path to set the input). Restore the constant and the handler case (setChatValue
+ focus, matching the command-selector path). Fixes TS2339.