Skip to content
Browse the docs

Changelog

All notable changes to the stoa client. Versions follow Semantic Versioning.

1.0.2

Released 2026-10-09.

A clean dry run is a request the venue accepts, and the client says what to do when it is not.

  • rfq create --dry-run refuses what the real create refuses, with a sentence that names the field.
  • Vocabulary fields that list Other (cooling, chassis OEM, memory type and the like) accept your own wording: the venue files unlisted wording under Other and keeps the text; a bare Other is refused. A value that differs from a published one only by case is read as that value, and the client says so.
  • rfq template --asset-type rack prints a valid request: the first published rack system and the GPU it is built on. The client checks a rack file's gpu_slug against its system_model.
  • rfq get takes the request's STOA-RFQ-… number as well as its id.
  • whoami says when the venue would not admit a new request, and why.
  • The Best full quote line is gone: the venue never names a best quote.
  • A create that fails once it was sent prints the exact command that repeats it safely, idempotency key included.
  • Exit codes: 5 means this client is too old for the venue (the upgrade command printed works for a pinned install too), 6 means no keychain can hold the session. stoa login checks for a keychain before it asks for a password, and the message says what to set up on macOS over SSH, Linux and WSL.
  • --no-input (or STOA_NO_INPUT=1) turns every prompt into an exit code, for scripts and coding agents under a pseudo-terminal. Under --json a failure also prints one JSON error object on stdout.
  • Signing in: an expired sign-in challenge says so instead of asking for more codes; a text message that could not be sent no longer ends the sign-in; the prompt keeps offering the authenticator when a text was sent.
  • A rate-limited create prints the venue's sentence and when to try again.
  • The SELL warranty split shows in the approval preview; quote prices read as money.
  • stoa agent-guide carries the full exit-code table and the rack and vocabulary rules.

1.0.1

Released 2026-09-30.

A fresh install works without flags.

  • stoa targets prod by default; --env local is for a developer server on this machine.
  • The first command you run in a terminal signs you in when no session is saved: it asks for your email, password and second factor, then continues. Without a terminal, a command exits with code 3 and asks you to run stoa login.
  • Signing in needs an active Stoa Markets registration and a second factor on your account.

1.0.0

Released 2026-09-30.

First public release.

  • Sign in with your Stoa Markets account: stoa login asks for your password and a code from an authenticator app or a text message; whoami shows who is signed in; logout forgets the session, and logout --everywhere also ends every session you have, browser included. Catalog and request commands run under your signed-in session. Signing in requires command line access for your organization and a second factor on your account.
  • Browse the catalog the venue trades with categories and assets search.
  • Compose requests for quote the way the web form composes them: rfq schema prints the request vocabulary, rfq template renders a commented TOML request file from it, and rfq create validates the file with a server dry run before opening the request. The request goes to every invitable dealer. --idempotency-key lets a retry reuse a key: while the request it opened is live, the same key returns that request instead of opening another.
  • Read your organization's requests and the quotes dealers return with rfq list and rfq get, which prints where a quote is accepted (the web application).
  • --json on whoami, categories, assets search, rfq schema, rfq create, rfq list and rfq get for scripts and coding agents; stoa agent-guide prints the instructions for a coding agent.
  • Requires Python 3.12 or newer and an operating system keychain, where the session token is stored.