[GH-ISSUE #2909] fix(android): make advertised DEX descriptor patterns portable to JavaScript v mode #1022

Closed
opened 2026-10-15 18:30:26 +00:00 by bsakaguchi · 1 comment
Owner

Originally created by @N0zoM1z0 on GitHub (Oct 13, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/2909

Reproduction

On pinned main d4f0c5e664e26fe7ed1566dcc4b85ea9b57d52da, Linux x64, Node 24.18.0/npm11.16.0:

npm ci
node_modules/.bin/vitest run tests/boundary/mcp/advertisedPatternsVMode.test.ts

The actual production server catalog, obtained through the MCP SDK, contains three uncompilable output-schema patterns:

  • inspect_android_class: methods/items/dex_descriptor
  • inspect_android_method: method/dex_descriptor
  • trace_android_references: dex_descriptor/anyOf[0]

All three use the shared method descriptor regex containing L[^;()]+;. Constructing new RegExp(pattern, "v") throws Invalid character in character class. The existing advertised-pattern portability regression fails with these three entries.

Expected behavior and impact

Advertised patterns should compile in the supported JavaScript modes after SDK/schema conversion, without changing which DEX descriptors are admitted. Fix the producing descriptor grammar once; preserve descriptor parsing and the three consumers.

The real Linux JADX0.7.1 CLI/MCP workflow passed under the pinned SDK's normal validator. This report does not claim every MCP client fails; the demonstrated defect is the advertised portable-regex contract for v-mode consumers. No engine or target execution is needed to reproduce the catalog failure.

Validation scope

Reproduced by the broad suite and an independent focused run. Related build/static failures on this baseline are already being addressed in #2894/#2895/#2899 and should not be mixed into this fix. Full/compact catalogs, accepted/malformed descriptor regressions, and the real Linux JADX workflow should be checked after correction.

Originally created by @N0zoM1z0 on GitHub (Oct 13, 2026). Original GitHub issue: https://github.com/morluto/rea/issues/2909 ## Reproduction On pinned main `d4f0c5e664e26fe7ed1566dcc4b85ea9b57d52da`, Linux x64, Node 24.18.0/npm11.16.0: ```sh npm ci node_modules/.bin/vitest run tests/boundary/mcp/advertisedPatternsVMode.test.ts ``` The actual production server catalog, obtained through the MCP SDK, contains three uncompilable output-schema patterns: - `inspect_android_class`: methods/items/dex_descriptor - `inspect_android_method`: method/dex_descriptor - `trace_android_references`: dex_descriptor/anyOf[0] All three use the shared method descriptor regex containing `L[^;()]+;`. Constructing `new RegExp(pattern, "v")` throws `Invalid character in character class`. The existing advertised-pattern portability regression fails with these three entries. ## Expected behavior and impact Advertised patterns should compile in the supported JavaScript modes after SDK/schema conversion, without changing which DEX descriptors are admitted. Fix the producing descriptor grammar once; preserve descriptor parsing and the three consumers. The real Linux JADX0.7.1 CLI/MCP workflow passed under the pinned SDK's normal validator. This report does **not** claim every MCP client fails; the demonstrated defect is the advertised portable-regex contract for v-mode consumers. No engine or target execution is needed to reproduce the catalog failure. ## Validation scope Reproduced by the broad suite and an independent focused run. Related build/static failures on this baseline are already being addressed in #2894/#2895/#2899 and should not be mixed into this fix. Full/compact catalogs, accepted/malformed descriptor regressions, and the real Linux JADX workflow should be checked after correction.
bsakaguchi 2026-10-15 18:30:26 +00:00
  • closed this issue
  • added the
    bug
    label
Author
Owner

@N0zoM1z0 commented on GitHub (Oct 13, 2026):

The production descriptor pattern is now fixed on main by #2910 (69bd81f7f2). The equivalent behavior is verified through the real SDK full/compact catalogs and descriptor admission corpus. #2917 has been narrowed to the distinct malformed parameter/return producer regressions; it does not duplicate the production change.

<!-- gh-comment-id:6151661248 --> @N0zoM1z0 commented on GitHub (Oct 13, 2026): The production descriptor pattern is now fixed on main by #2910 (69bd81f7f2768b22fb75caa753f4b21a8e5d249d). The equivalent behavior is verified through the real SDK full/compact catalogs and descriptor admission corpus. #2917 has been narrowed to the distinct malformed parameter/return producer regressions; it does not duplicate the production change.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#1022
No description provided.