NexusAI 1.3.1
What's new
Bug-fix release. On Paper 26.2, dialogue-memory.yml could stop saving entirely, and a lone UTF-16 surrogate (often an emoji cut in half) could block saves of dialogue memory and pool.yml. Both are fixed, plus event delivery and a cleaner server stop. The startup-banner option is back. Everyone on 1.3.0 or 1.2.x can update. Missing keys are appended to config.yml automatically, it stays at config-version: 2, and NexusAIApi.API_VERSION stays 3.
Upgrading
- Replace the old jar with
NexusAI-1.3.1.jarand restart. Commands, placeholders and the API are unchanged. - From 1.3.0, three keys are appended on the first start:
startup-banner,context.log-timeoutsanddialogue.log-stop-budget(alltrue, oneconfig.yml.bak). From 1.2.x, 22 keys are appended. Details are indocs/migration-1.3.1.md.
Changes
startup-banneris a boolean again.true(default) prints the full console banner as in 1.3.0;falselogs one line instead:NexusAI enabled. Ready in N ms.- A context provider that overruns its timeout now logs one INFO line (rate-limited per provider). Turn it off with
context.log-timeouts: false. - A stop that runs during the first load of
dialogue-memory.ymllogs one INFO line with the stop budget and how many dialogue characters were saved. Turn it off withdialogue.log-stop-budget: false. - Documentation: new sections in
docs/limitations.md(world context cost, context provider timeouts) anddocs/faq.md(dialogue memory stop budget, Java 25 for every 26.x server).
Fixed
- Paper 26.2 (SnakeYAML 2.6):
dialogue-memory.ymlwas not saved at all while memory held text with U+2028, U+2029, U+0085,\ror another control character, so the session's dialogue was lost. Such text is now written with escapes, as on older Paper versions. - Lone UTF-16 surrogates: a half-cut emoji or similar character stopped every save of
dialogue-memory.ymlandpool.yml. Length cuts now keep surrogate pairs whole, and a lone surrogate is stored as U+FFFD. The same fix coversmoderation.log,actions.log,usage.yml,token-usage.yml, provider and model names, and/nai import. - A failed dialogue memory save now logs a WARNING (without dialogue text) instead of a FINE line, and leaves the file as it was.
\r\nand lone\rin replies and greetings are stored as\n./nai importno longer copies? idlines into the prompt above, soprompts.ymldoes not get duplicate ids.NexusPostGenerateEventandNexusGenerateFailEventfor placeholder requests are no longer dropped when the reply was already complete.- A NexusAI event that Bukkit refuses to deliver is now logged at WARNING (rate-limited) instead of being dropped silently.
- Server stop with requests still waiting for the provider: open requests are cancelled at once, with one INFO line, and no more
AI completion handler failedorFailed to schedule a command resulterrors. Stop no longer waits up to 7 s. - Singular wording in dialogue memory log lines for a count of one.
Most of these problems are also present in 1.3.0, so updating is recommended.
Compatibility
- Paper and Purpur 1.20.6–26.3; Folia 1.21.8, 1.21.11, 26.1.2 and 26.2; Java 21 or newer (Java 25 on 26.x)
- PlaceholderAPI 2.11.6+ (soft-depend); on Folia 2.11.7+
- Spigot and CraftBukkit are not supported.
Download
NexusAI-1.3.1.jar, SHA-256 c5336378c8fa54993abf7f1e28faf535e12a60b6c7a039e520c993fac00f0e50
Full history: CHANGELOG.md
This mod has no additional files

