Skip to content

batch_execute normalizes JSON value keys, stripping underscores from nested payloads #756

@dsarno

Description

@dsarno

Problem

batch_execute appears to normalize JSON keys inside tool parameter values (not just parameter names). This causes keys like m_PersistentCalls to become mPersistentCalls, breaking any tool that receives structured nested data where key names matter.

Reproduction

Pass a manage_components set_property call through batch_execute with a UnityEvent value containing m_ prefixed keys. The value object arrives at the C# side with keys mPersistentCalls and mCalls (underscores stripped).

The same call made directly via manage_components (not through batch_execute) preserves keys correctly.

Impact

Any tool that receives nested JSON values through batch_execute where key names contain underscores will see them silently stripped. This affects:

Current workaround

ComponentOps.FindPropertyRelativeFuzzy does underscore-insensitive child property matching, but this only protects ComponentOps.

Expected behavior

batch_execute should pass tool parameter values through as-is without key normalization. Only top-level parameter names (like action, target, component_type) should be normalized if needed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions