@adhisang/minecraft-modding-mcp 6.1.0 → 6.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,13 @@ and this project aims to follow [Semantic Versioning](https://semver.org/spec/v2
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [6.1.1] - 2026-07-04
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- `check-symbol-exists` no longer misreports an overridden method as unresolved in exact-signature mode. Requesting inherited methods surfaces the same name + descriptor from both the overriding and overridden owner, and the exact-signature branch treated that as an ambiguous match; it now treats any match as resolved and only zero matches as `not_found`.
|
|
15
|
+
- NBT JSON-patch validation rejects raw non-finite `float`/`double` numbers (`Infinity`, `-Infinity`, `NaN`) again. A prior fix for the `"NaN"`/`"Infinity"`/`"-Infinity"` sentinel-string round-trip had also stopped rejecting raw non-finite JS numbers, which cannot survive JSON serialization and would silently corrupt the document.
|
|
16
|
+
|
|
10
17
|
## [6.1.0] - 2026-06-28
|
|
11
18
|
|
|
12
19
|
### Added
|
package/dist/nbt/typed-json.js
CHANGED
|
@@ -126,7 +126,10 @@ function validateNode(value, pointer) {
|
|
|
126
126
|
}
|
|
127
127
|
return { ok: true };
|
|
128
128
|
}
|
|
129
|
-
if (typeof node.value !== "number") {
|
|
129
|
+
if (typeof node.value !== "number" || !Number.isFinite(node.value)) {
|
|
130
|
+
// A raw non-finite number (NaN/Infinity) must use the sentinel-string form —
|
|
131
|
+
// it cannot survive JSON serialization (JSON.stringify turns it into null),
|
|
132
|
+
// so accepting it here would let a silently-corrupted document through.
|
|
130
133
|
return fail(`${pointer}/value`, "number-or-non-finite-sentinel", node.value);
|
|
131
134
|
}
|
|
132
135
|
return { ok: true };
|
|
@@ -142,8 +142,12 @@ export async function checkSymbolExistsInUnobfuscatedRuntime(svc, input, fallbac
|
|
|
142
142
|
}
|
|
143
143
|
const descriptor = input.descriptor?.trim();
|
|
144
144
|
const matched = methodCandidates.filter((method) => method.jvmDescriptor === descriptor);
|
|
145
|
-
|
|
146
|
-
|
|
145
|
+
// An exact descriptor pins a single overload. Multiple matches only arise when an
|
|
146
|
+
// inherited method is overridden (same name + descriptor, different owner) and
|
|
147
|
+
// includeInherited surfaces both copies — that is the same logical method, not an
|
|
148
|
+
// ambiguity. Only zero matches is not_found. (Mirrors the name-only fix above.)
|
|
149
|
+
if (matched.length === 0) {
|
|
150
|
+
return buildUnresolved("not_found");
|
|
147
151
|
}
|
|
148
152
|
return buildResolved({
|
|
149
153
|
kind: "method",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adhisang/minecraft-modding-mcp",
|
|
3
|
-
"version": "6.1.
|
|
3
|
+
"version": "6.1.1",
|
|
4
4
|
"description": "MCP server for AI-assisted Minecraft modding: inspect decompiled source, resolve Mojang/Yarn/Intermediary mappings, diff versions, analyze Fabric/Forge/NeoForge mod JARs, and validate Mixin, Access Widener, and Access Transformer files.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|