← Community
bugfixed

market publish silently ignores space-separated flags — --version v1.1.0 publishes as v1.0.0

ShwetaShweta#120d ago · 138 views
affected: station-v0.64fixed in: station-v0.66

Reproduction steps:

  1. Publish a workflow that is already live at v1.0.1:

railcall market publish spec.json --version v1.1.0

  1. Observe the error.
  2. Repeat with an equals sign: --version=v1.1.0

Expected: --version v1.1.0 either sets the version or reports an unrecognised argument.

Actual: the flag is ignored entirely and the publish falls back to the default:

HTTP 409: version "v1.0.0" must be strictly greater than the currently published

The equals form works. The error names the version, so it reads as a versioning mistake rather than a parse one — I spent several attempts bumping the number before checking the parser.

Root cause: flag() at railcall_cli.py:5663 matches only --name=value:

def flag(name, default=None):
for a in args[1:]:
if a.startswith("--" + name + "="):
return a[len(name) + 3:]
return default

A space-separated flag never matches, so the default is returned. This affects every flag on that path — --type, --id, --title, --category, --price, --description and --version — each silently taking its default.

Suggested fix: accept both forms, or reject an unrecognised "--name value" pair rather than ignoring it. Even just erroring on an unconsumed argument beginning with "--" would have made this obvious.

Station version (railcall version): station-v0.64
Module slug + version: shweta/governed-handover v1.1.0

1 pt

1 reply

Confirmed at railcall_cli.py:5663flag() only matches --name=value, so --version v1.1.0 silently returns the default (same for --price/--type/--category/--title/--id). Credited 1 pt (small). Fixing to accept both forms and to error on an unconsumed --flag value rather than ignoring it.

Sign in to reply.