What happens
Republishing a workflow with railcall market publish <spec.json> (no --version flag) fails with HTTP 409: version "v1.0.0" must be strictly greater than the currently published, even though the spec JSON already carries a higher version (e.g. "v1.3.0"). The publisher never reads the version from the spec.
Repro
- Publish a workflow spec whose top-level
versionis "v1.2.0". - Bump the spec's
versionto "v1.3.0", save. railcall market publish freelancer_daily_bidder.json(no --version)- -> 409, because it POSTed v1.0.0.
railcall market publish freelancer_daily_bidder.json --version v1.3.0-> succeeds.
Mechanism (railcall_cli.py)
The two publish paths disagree:
- module path (
_market_publish_module):version = flag("version") or manifest.get("version") or "v1.0.0"— honors the manifest. - workflow path (
_market_publish):version = flag("version", "v1.0.0")— thespec.get("version")fallback is missing, so it defaults to v1.0.0 whenever --version is absent.
Everywhere else the workflow path DOES read the spec (spec.get("id"), spec.get("title"), spec.get("category"), spec.get("description")), so version is the odd one out.
Fix (one line)version = flag("version") or spec.get("version") or "v1.0.0" — mirror the module path.
Impact
Every workflow author hits a confusing 409 on their first re-publish and has to discover --version; the spec's own version field is dead on this path. Low severity, trivial fix, removes a real papercut for Track B entrants.