Skip to content

Command blocks with JSX expression syntax for props fail to register with backend #71

@josh-padnick

Description

@josh-padnick

Bug

When a <Command> block uses JSX expression syntax for its command prop (i.e. command={"..."} instead of command="..."), the backend fails to find the component at execution time:

Failed to find component: component not found: create-github-repo
Failed to execute script on the server

Steps to Reproduce

Use a JSX expression for the command prop on a Command block:

<Command
    id="create-github-repo"
    command={"gh repo create org/repo --private && echo \"Done\""}
    title="Create repo"
/>

Run the block → error: component not found: create-github-repo

Changing to a plain string attribute works fine:

<Command
    id="create-github-repo"
    command="gh repo create org/repo --private && echo Done"
    title="Create repo"
/>

Context

This was encountered when trying to use escaped double quotes (\") inside a command attribute. Plain string attributes (command="...") don't support backslash escapes — the MDX parser rejects \ (U+005C) as an unexpected character in attribute names. The natural workaround is to use a JSX expression (command={"..."}), which supports JS string escapes, but the backend doesn't recognize the component when props are passed this way.

Expected Behavior

JSX expression syntax (command={"..."}) should work identically to plain string syntax (command="...") for component registration and execution.

Workaround

Avoid characters that need escaping in command attributes. For example, use echo Repo created: $REPO_URL instead of echo "Repo created: $REPO_URL".

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions