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-runrefuses 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 bareOtheris 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 rackprints a valid request: the first published rack system and the GPU it is built on. The client checks a rack file'sgpu_slugagainst itssystem_model.rfq gettakes the request'sSTOA-RFQ-…number as well as its id.whoamisays when the venue would not admit a new request, and why.- The
Best full quoteline 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 loginchecks 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(orSTOA_NO_INPUT=1) turns every prompt into an exit code, for scripts and coding agents under a pseudo-terminal. Under--jsona 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-guidecarries the full exit-code table and the rack and vocabulary rules.
1.0.1
Released 2026-09-30.
A fresh install works without flags.
stoatargets prod by default;--env localis 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 loginasks for your password and a code from an authenticator app or a text message;whoamishows who is signed in;logoutforgets the session, andlogout --everywherealso 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
categoriesandassets search. - Compose requests for quote the way the web form composes them:
rfq schemaprints the request vocabulary,rfq templaterenders a commented TOML request file from it, andrfq createvalidates the file with a server dry run before opening the request. The request goes to every invitable dealer.--idempotency-keylets 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 listandrfq get, which prints where a quote is accepted (the web application). --jsononwhoami,categories,assets search,rfq schema,rfq create,rfq listandrfq getfor scripts and coding agents;stoa agent-guideprints the instructions for a coding agent.- Requires Python 3.12 or newer and an operating system keychain, where the session token is stored.