@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
@@ -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
- if (matched.length !== 1) {
146
- return buildUnresolved(matched.length > 1 ? "ambiguous" : "not_found");
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.0",
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",