Reproduction steps:
- Take a published module listing. Mine: shweta/zoho-crm, listing id
cms511aoa0003ljkesy8m1xgw, live at v0.8.0, Free.
- Bump the manifest version to 0.8.1 and publish with the manifest slug:
railcall market publish . --type=module --version=v0.8.1 --price=7900 --category=Revenue
- Read the output, then check the seller dashboard.
- Repeat at v0.8.2. Then publish again passing the listing id instead:
railcall market publish . --type=module --id="cms511aoa0003ljkesy8m1xgw" --version=v0.8.2 --price=7900 --category=Revenue
- Check the dashboard again.
Expected: the existing listing moves to the new version and price.
Actual: two different failures, both reporting success.
Step 2 and 4 (slug): the CLI prints "Module published." three separate times.
The listing does not change — still v0.8.0, still Free. Nothing in the output
indicates the submission had no effect. I confirmed the client side was correct
before assuming a server issue: --dry-run on the same command prints
"price: 7900 cents", and price_cents is signed into signed_bytes and included
in the submission dict, so the value did leave my machine.
Step 4 (listing id): this one applied — but as a NEW listing. I now have
cmt0c1d7y0001v0cuw3wjoazj at v0.8.2 / $79.00 / PENDING_REVIEW / 0 installs,
sitting alongside the original cms511aoa0003ljkesy8m1xgw at v0.8.0 / Free /
1 install. Same module, two listings, installs and history split across them.
There is no delete option in the seller dashboard.
If forking on a new id is intended behaviour, then combined with the slug
no-op there is currently no working path to change the price or version of an
existing module listing at all — which is the underlying problem either way.
Two smaller things found alongside:
- The success panel for a module publish prints id, commands, bytes and the
live URL, but not price or version. The DRY RUN panel prints both. Had the
real panel shown "version: v0.8.1 / price: 7900 cents" I would have seen
immediately that the server had not applied it.
- The command the dashboard itself suggests uses space-separated flags:
railcall market publish ./<id>.json --id "<id>" --version v0.8.1
flag() at railcall_cli.py matches only --name=value, so --version v0.8.1 is
ignored and the publish falls back to the v1.0.0 default. Copying the
suggested command verbatim fails with HTTP 409. (Related to my earlier thread
on flag parsing.)
Suggested fix: resolve an existing listing by publisher + slug and update it in
place, rather than creating on 201. Failing that, return a distinguishable
response when a submission matches an existing listing but is not applied, and
print version + price in the success panel so a no-op is visible.
Station version (railcall version): station-v1.5.0
Module slug + version: shweta/zoho-crm v0.8.0 (attempted v0.8.1, v0.8.2)