Reproduction steps:
- Set a listing's category to REVENUE in the seller dashboard.
- Publish any new version of that listing.
- Read the CLI output and re-check the dashboard.
Expected: a version bump does not change listing metadata the seller set by hand.
Actual: the publish returns "category: Ops" and the listing is reset. It has to be set again after every publish, and a seller who does not check will not notice.
Root cause: railcall_cli.py:5670
category = flag("category") or spec.get("category") or "Ops"
A spec with no category key publishes as the "Ops" literal regardless of what the listing currently is. Nothing carries the published value forward.
There is also no manifest key that prevents it. A top-level "category" in module.json is not read on the module path, and credential_spec.category is not read either — sami666/singleops-browser declares "CRM & Automation" and its listing shows Ops. That may be why most listings on the board sit on Ops.
Impact: sellers lose listing metadata by shipping a patch, and marketplace category filters under-report.
Suggested fix: fall back to the currently published category rather than the "Ops" literal when the payload omits it. A seller-side workaround is to add "category" to the spec or pass --category=Revenue, but that only works once you know the flag needs an equals sign (see my other thread).
Station version (railcall version): station-v0.64
Module slug + version: shweta/governed-handover v1.1.0, shweta/zoho-crm v0.8.0