Release notes for bourse. The full task-by-task development history lives in
CHANGELOG-ARCHIVE.md;
upcoming work is tracked in
ROADMAP.md.
Unreleased
0.1.0 - 2026-08-03
First hex.pm release as bourse, succeeding the retired ccxt_client package.
Added
- Ten provider-authored venue integrations —
alpaca,binance,binancecoinm,binanceusdm,bybit,deribit,derive,hyperliquid,lighter,okx— each generated at compile time from one complete owned JSON spec. Runtime support is a closed set: constructing any other exchange fails withunsupported_exchange. - Two API surfaces. Raw per-exchange endpoint functions pass exchange responses
through unchanged with signing, rate limiting, circuit breaking, and transport
handled. The unified
BourseAPI adds 241 cross-exchange methods returning normalized structs, with bang variants and machine-readable descriptions. - Signing for every supported venue, including first-party signers for the three
DEX venues: EIP-712 for Derive, msgpack action hashing for Hyperliquid, and a
zk-Schnorr Port helper for Lighter.
Bourse.Signingdispatches the authored recipes; no signing behavior is inferred at runtime. - WebSocket support via
Bourse.WS— a thin wrapper overzen_websocketdriven by authored per-exchange subscription and auth patterns. - Discovery and agent integration:
Bourse.describe/0-2for method signatures, parameters, errors, and return shapes, plusBourse.MCP.tools/0for MCP tool autodiscovery. - Operational layers: per-credential weighted rate limiting with response-header
feedback, per-exchange circuit breakers, telemetry events, and sandbox
resolution for all ten venues via
Bourse.Exchange.new/2.
Changed
- Renamed from
ccxt_clienttobourse, with theCCXT.*namespace becomingBourse.*. See the migration notes in the README. - Interpretive judgment moved out of the runtime and into the authored specs. The heuristic signing classifier, symbol pattern inference, and long-tail fallback are removed; the runtime reads authored fields instead of guessing.
- Correctness is verified against recorded venue reality — registered response recordings, accepted-request goldens, and recorded exchange errors — rather than against third-party client behavior.
Fixed
- Alpaca
fetch_ohlcv/3-4had no working call shape: the default path returned an empty list, failing silently as success, and the documentedsinceoption produced an HTTP 400. The authored request slice now emits a real dated window.
Packaging
- The published package carries the library and the ten authored specs. The
repo-internal authoring and audit tooling is not shipped;
mix ccxt.build_lighter_signer, the prerequisite for private Lighter calls, is the one task consumers receive.