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.
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.