station-v0.24 · Licenses tab + paid-module UX loop + Stripe fixes
What's new
Studio surfaces
- Licenses tab (new sidebar entry) — visual home for module licenses. Cards per license with tier + days-left + grace-warning badges. Activate box (paste JSON or upload file) + per-license Deactivate. Empty state points at the marketplace.
- Modules tab — license-gated rejections now render Buy license (deep-link to marketplace) + Activate license (jumps to Licenses tab) buttons. Other rejection reasons (bad signature, missing files) unchanged.
- Marketplace tab — installing a paid module fires a confirm dialog explaining the buy-then-claim ceremony BEFORE the download, so users don't strand themselves at a rejected-module wall. Success card includes a purple "License required" callout with marketplace deep-link + exact
railcall market claimcommand.
Loader
_load_modulesincludesmanifest.idin license-gated rejection payloads so the frontend can build marketplace URLs without a second lookup.
Marketplace (server-side, already deployed)
- Stripe checkout enforces the $0.50 minimum with actionable error messages (e.g. "listing priced at $0.20 is below Stripe's $0.50 minimum"). Free listings unaffected.
- Stripe's actual error messages now surface to buyers ("card declined", currency mismatch, etc.) instead of the generic "try again".
CLI (unchanged from v0.23 — no re-pin needed)
Still ships license activate/list/verify/deactivate, market claim, connect salesforce.
SHA256
7983ebc49343b3b93ac791bee961ccb634f61da46e3b97866fe94453395cf5c3
Install / update
curl -fsSL https://railcall.ai/install.sh | bash # fresh
railcall update # existing