[GH-ISSUE #1581] [Bug] ADB input patterns break Unicode-set MCP schema validation #533

Closed
opened 2026-10-15 18:25:57 +00:00 by bsakaguchi · 0 comments
Owner

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

The new ADB input schemas reintroduce patterns that compile under JavaScript u mode but fail Unicode-set (v) compilation. A client/model validator that rejects one advertised schema rejects the complete ordinary-chat request before any REA tool executes.

Reproduced with the production-only package from a8d0cf99a88f0ad3a45d06ea5049030d9f51914b, Node 24.18.0 on Linux x64, and native DeepSeek Harness 0.2.0-rc.2 connected to REA through its normal stdio MCP integration. The loopback model fixture validates every advertised pattern; this is not a live DeepSeek model/API acceptance claim. Qwen, Pi and Hermes accepted the same 170-tool inventory, which demonstrates why successful discovery in one client is insufficient.

Affected advertised inputs:

  • read_adb_setting.key: ^[A-Za-z0-9._-]+$
  • start_adb_activity.action: ^[A-Za-z][A-Za-z0-9._-]*$
  • start_adb_activity.component: ^[A-Za-z0-9._-]+(\/[A-Za-z0-9._-]*)?$
  • start_adb_activity.extras[].key: ^[A-Za-z0-9._-]+$

The native DSH request failed with INVALID_REQUEST and Invalid regular expression: /^[A-Za-z0-9._-]+$/v: Invalid character in character class. The same defect can be reproduced directly with new RegExp('^[A-Za-z0-9._-]+$', 'v'). No device or analysis target is needed to reject the advertised catalog.

Expected: preserve the existing identifier grammars and all tools, while using portable character-class escapes. Reuse REA's existing portable identifier pattern where the grammar matches, fix the remaining ADB key/component patterns, and verify the complete SDK-advertised inventory and native DSH ordinary chat/tool flows. This is the same compatibility boundary covered by #1212 and advertisedPatternsVMode.test.ts, introduced again by additional contracts.

Originally created by @N0zoM1z0 on GitHub (Oct 10, 2026). Original GitHub issue: https://github.com/morluto/rea/issues/1581 The new ADB input schemas reintroduce patterns that compile under JavaScript `u` mode but fail Unicode-set (`v`) compilation. A client/model validator that rejects one advertised schema rejects the complete ordinary-chat request before any REA tool executes. Reproduced with the production-only package from `a8d0cf99a88f0ad3a45d06ea5049030d9f51914b`, Node 24.18.0 on Linux x64, and native DeepSeek Harness 0.2.0-rc.2 connected to REA through its normal stdio MCP integration. The loopback model fixture validates every advertised pattern; this is **not** a live DeepSeek model/API acceptance claim. Qwen, Pi and Hermes accepted the same 170-tool inventory, which demonstrates why successful discovery in one client is insufficient. Affected advertised inputs: - `read_adb_setting.key`: `^[A-Za-z0-9._-]+$` - `start_adb_activity.action`: `^[A-Za-z][A-Za-z0-9._-]*$` - `start_adb_activity.component`: `^[A-Za-z0-9._-]+(\/[A-Za-z0-9._-]*)?$` - `start_adb_activity.extras[].key`: `^[A-Za-z0-9._-]+$` The native DSH request failed with `INVALID_REQUEST` and `Invalid regular expression: /^[A-Za-z0-9._-]+$/v: Invalid character in character class`. The same defect can be reproduced directly with `new RegExp('^[A-Za-z0-9._-]+$', 'v')`. No device or analysis target is needed to reject the advertised catalog. Expected: preserve the existing identifier grammars and all tools, while using portable character-class escapes. Reuse REA's existing portable identifier pattern where the grammar matches, fix the remaining ADB key/component patterns, and verify the complete SDK-advertised inventory and native DSH ordinary chat/tool flows. This is the same compatibility boundary covered by #1212 and `advertisedPatternsVMode.test.ts`, introduced again by additional contracts.
bsakaguchi 2026-10-15 18:25:57 +00:00
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#533
No description provided.