Reproduction steps:
- Publish a workflow that is already live at v1.0.1:
railcall market publish spec.json --version v1.1.0
- Observe the error.
- 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