NexusAI 1.1.1
What's new
Bugfix release: gpt-5 request parameters, /nai talk fallback after HTTP 429, masking of tool names and dialogue summaries and base URL handling. Everyone on 1.1.0 should update; there are no new config keys and config.yml stays at config-version: 2.
Upgrading
- Replace
NexusAI-1.1.0.jarwithNexusAI-1.1.1.jarand restart. - No config changes: 1.1.1 adds no keys, so there is nothing to append or edit, and
config-versionstays2. - To roll back: stop the server, put
NexusAI-1.1.0.jarback and start it.config.ymlcan stay as it is.
gpt-5 models
- Fix: OpenAI
gpt-5models (gpt-5,gpt-5-mini,gpt-5.1, and the same names with a provider prefix) are treated as reasoning models. The request sendsmax_completion_tokensinstead ofmax_tokensand omitstemperature, the same wayo1/o3/o4already did. Amax-tokensbelow 2048, including0or a negative value, is sent as 2048. gpt-oss,deepseek-r1,qwqand otherreasonernames still sendmax_tokens. A non-reasoning request body is unchanged from 1.1.0.
Talk fallback
- After HTTP 429 pauses the queue provider,
/nai talkusesfallback-modelwhen that model is on a different provider that is not paused. If the fallback is on the same provider, is also paused or is not set, the player still seestalk.busy. - A connection error, a timeout and HTTP 500 do not send talk to
fallback-model. - A successful fallback reply does not clear the queue cooldown and does not start the request-gate pause, so a later placeholder can still be answered by the same fallback model. Placeholders stay on fallback text while the request gate itself is paused.
- Fix: a reply that is empty only after colour codes or markup are removed, and a rejected reply, no longer cool the fallback down; the next line tries it again, as on the queue path. Missing, null or whitespace-only content is a transport error: the player sees
talk.busy, and that fallback or queue row cools down forlimits.provider-pause-seconds. - Fix: HTTP 401 on the fallback walks that provider's key ring in the same turn. The console line for a failed fallback names the fallback's HTTP status, with the key masked.
- Fix:
/nai reloadapplies a newhttp.max-in-flightandhttp.queue-sizeto/nai talk.
Tool calls and masking
- Fix: a
tool_callslist is used only when the turn offered tools. Otherwise the text goes through the same filters as any other reply, so a section sign, a boundary marker or an echoed key is not shown or stored. - Text returned next to a real tool call goes through those filters before it can reach the player or dialogue memory. A boundary marker next to a real tool call rejects the whole reply, and the action does not run.
- Fix: a tool name is masked in
actions.logand the server log, and an unknown tool name is not repeated in the follow-up note. A stored dialogue summary is masked the same way before it is written todialogue-memory.ymlor sent again.
Base URL
- Fix: a base URL whose path already contains
/chat/completionsis not given a second copy. Matching ignores letter case (/Chat/Completions) and keeps a longer path (/chat/completions/extra). A query string is still moved to the end, as in 1.1.0. - A fragment stays on the URL (
/v1#fragbecomes/v1/chat/completions#frag). HTTP does not send the fragment, so a log of the request line will not show it.
Known issues
- The player-input boundary and the reply filter reduce prompt-injection risk. They do not eliminate it.
- An HTTP 429 on one model pauses its whole provider. Put
fallback-modelon a different provider so/nai talkcan still answer. - A dialogue summary written by a version before 1.1.1 can keep a raw key in
dialogue-memory.ymluntil the next summary for that player and character; requests that use it are masked. To clear it now, stop the server and deletedialogue-memory.yml(or itssummary:lines). Only dialogue memory is lost. - The other known issues listed for 1.1.0 are unchanged.
Compatibility
- Paper and Purpur 1.20.6–26.2; Folia is not supported; Java 21 or newer
- PlaceholderAPI 2.11.6+ (soft-depend)
- Tested with PlaceholderAPI 2.12.3 on Paper 1.20.6-151, 1.21.1-133, 1.21.4-232, 1.21.8-60 and 26.2-129, and on Purpur 1.20.6-2233 and 26.2-2633 (Java 21 on 1.20.6–1.21.8, Java 25 on 26.2). Load scenarios S1–S5 were run again against this build with JFR; the numbers are in
docs/LOADTEST.md. - Paper and Purpur 26.3, Spigot and CraftBukkit are not supported.
Download
NexusAI-1.1.1.jar, SHA-256 78382527ef67cfe0365135711953ddd1f7ae68676673a1fdeae79b301cdef99f
Full history: CHANGELOG.md
This mod has no additional files

