Changelog
View SourceAll notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[1.0.3] - 2026-02-26
Removed
- Remove unused
exvcrdependency (tests use:meckdirectly) - Remove unused
Alpa.Resourcemacro module (never adopted by any API module) - Remove empty
Alpa.Applicationsupervisor (no supervised children) - Remove empty
config/dev.exsandconfig/prod.exsstubs - Remove dead
Alpa.VCRCasetest helper and ExVCR configuration
Changed
- Replace
exvcrwith directmeck ~> 0.9dependency - Compress logo from 1.3MB to 329KB (resized 1024→512px)
- Add
priv/plts/and*.pltto.gitignore
[1.0.2] - 2026-02-26
Fixed
- Fix
parse_decimal/1crash on malformed strings (useDecimal.parseinstead ofDecimal.new) - Fix WebSocket credential redaction breaking reconnection in both stream modules
- Fix order/transfer params leaking into HTTP client opts in
Trading.Orders,Crypto.Trading,Crypto.Funding - Fix params leak in
Trading.Watchlists.create/1andupdate/2 - Fix params leak in
Trading.Account.update_configurations/1 - Fix
Config.newuse_paperinference to respect explicit opt over URL heuristic - Remove duplicated
parse_datetime/1in Clock and CryptoWallet models (import from Helpers) - Fix telemetry test warnings (use module function reference)
Changed
- Test suite expanded from 420 to 685 tests, overall coverage from 52.8% to 70.6%
- Added
mock_patch/2to test MockClient helper
[1.0.1] - 2026-01-31
Added
- Facade delegates for
Alpa.Options.Contracts(option_contracts/1,option_contract/2,option_search/2) - Facade delegates for
Alpa.Crypto.Trading(crypto_buy/3,crypto_sell/3,crypto_place_order/1,crypto_assets/1,crypto_positions/1) - CI pipeline with formatting, credo --strict, and dialyzer checks
.dialyzer_ignore.exsfor ExVCR/CaseTemplate compatibility
Fixed
- Reduced cyclomatic complexity in
Client.requestandPagination.do_fetch_all - Use implicit
tryin WebSocket modules (credo --strict compliance) - Alphabetized alias groups in crypto modules
- Code formatting across all source files
- Elixir version requirement lowered to
~> 1.14(was~> 1.16) - LICENSE link in README uses absolute URL for HexDocs compatibility
.gitignorepattern for hex build tarballs (*.tar)- Documentation consistency across README, hex docs, and wiki
Changed
- Minimum Elixir version: 1.14 (was 1.16)
[1.0.0] - 2026-01-10
Added
- Complete rewrite with modern Elixir 1.14+ stack
- HTTP Client: Switched from HTTPoison to Req for better performance and DX
- TypedStruct Models: All API responses now use typed structs with Decimal precision
- Runtime Configuration: Proper runtime config via
config/runtime.exs - Structured Errors:
Alpa.Errorstruct with typed error categories
Trading API
- Account information and configuration
- Full order management (place, replace, cancel) with all order types
- Bracket orders, OCO, OTO support
- Position management with partial close support
- Asset queries with filtering
- Watchlist CRUD operations
- Market clock and calendar
Market Data API (v2)
- Historical bars with timeframe and adjustment options
- Historical quotes (NBBO data)
- Historical trades
- Market snapshots (combined latest data)
- Multi-symbol queries for all data types
- Latest bar/quote/trade endpoints
WebSocket Streaming
Alpa.Stream.TradeUpdates- Real-time order status updatesAlpa.Stream.MarketData- Real-time trades, quotes, and bars- Automatic reconnection handling
- Subscription management
Options Trading
- Option contract search with filtering
- Contract lookup by symbol or ID
Crypto Trading
- Crypto asset queries
- Crypto position management
- Buy/sell with quantity or notional amount
Crypto Funding
- Wallet listing
- Transfer listing and lookup
- Withdrawal requests
Changed
- Minimum Elixir version: 1.14 (was 1.10)
- API responses now return typed structs instead of raw maps
- Configuration uses runtime.exs instead of compile-time config
- Error handling uses structured
Alpa.Errortype
Removed
- Legacy v1 bars endpoint (now uses v2 market data API)
- Compile-time configuration via
Application.get_env
For pre-1.0 changelog, see the original alpa package.