Skip to content

Releases: TraderAlice/OpenAlice

v0.9.0-beta.12

11 Apr 15:13
578b0d1

Choose a tag to compare

v0.9.0-beta.12 Pre-release
Pre-release

Changelog

All notable changes to Open Alice will be documented in this file.

[Unreleased]

🐛 Bug Fixes

  • Hyperliquid market loading + e2e support for wallet-based CCXT
  • Hyperliquid market orders via placeOrder override

🔧 Refactoring

  • Ccxt override hooks accept defaultImpl + fix hyperliquid markPrice

v0.9.0-beta.11

10 Apr 09:29
da4d5f2

Choose a tag to compare

v0.9.0-beta.11 Pre-release
Pre-release

Changelog

All notable changes to Open Alice will be documented in this file.

[Unreleased]

🐛 Bug Fixes

  • Initialize select fields with first option when no default is set

🚀 Features

  • Snapshot management in Dev page + CLAUDE.md verification rules
  • Dynamic CCXT credentials + single-page New Account wizard

v0.9.0-beta.10

09 Apr 09:40
f17659b

Choose a tag to compare

v0.9.0-beta.10 Pre-release
Pre-release

Changelog

All notable changes to Open Alice will be documented in this file.

[Unreleased]

Build

  • Add Turborepo for workspace build orchestration

🐛 Bug Fixes

  • FMP provider schema fixes + add EquitySearch fetcher
  • Restore lastInteraction on startup + readSession filter + ISO timestamps
  • Telegram auth guard hot-reload chatIds + fix misleading comment
  • Persona & heartbeat default file auto-copy + UI editing
  • Remove stale createAgent re-export + fix spec type errors
  • Resolve remaining tsc errors in bbProvider specs and MockBroker
  • Add codex provider support to channels CRUD endpoints
  • Improve codex provider error logging with request details
  • Add store:false and array input for Codex subscription endpoint
  • Use output_item.done for function call_id instead of arguments.done
  • MiniMax preset uses agent-sdk backend, not vercel-ai-sdk
  • Schema form initialization + remove Custom option from presets
  • Require explicit model selection for OAuth presets
  • Wait for connection test before closing create modal
  • Remove slash from Codex preset name + encode profile slugs in URLs
  • Codex ask() uses streaming — subscription endpoint rejects non-streaming
  • Test and save are separate user actions
  • Force API key mode with CLAUDE_CODE_SIMPLE=1 to disable OAuth fallback
  • Agent-sdk ask() throws on error instead of returning error as text

📚 Documentation

  • Update README badges and project structure

🔧 Refactoring

  • Type all market-data clients with openTypeBB standard models
  • Test-provider uses SDK instead of HTTP + add bbEngine to ctx
  • Reorganize MarketData config page + add commodity
  • Replace ToolLoopAgent with direct generateText calls
  • Replace flat AI config with profile-based system
  • Codex provider uses structured input instead of text history
  • Schema-driven preset forms via JSON Schema
  • Replace label with name as profile identifier
  • Split preset catalog + useSchemaForm hook + profile preset link

🚀 Features

  • Register ETF, Index, Derivatives SDK clients
  • Add commodity to calculateIndicator + fix test isolation
  • Add FMP CommoditySpotPrice fetcher
  • Add session awareness tools + connector context injection
  • Dev page tab layout + tool execution workbench
  • Telegram magic link onboarding for chat authorization
  • Telegram /trading panel with multi-account support
  • Hot-reload persona and brain state in system prompt
  • Add Codex AI provider — OpenAI models via ChatGPT subscription OAuth
  • Codex provider UI + dual auth mode (OAuth / API key)
  • Rewrite frontend for profile-based AI config
  • Preset system for guided profile creation + OAuth model fix
  • Modal-based profile UI + remove global API keys
  • Currency-aware UTA with FxService dual-table architecture
  • Profile creation UX — name lockdown, duplicate check, connection test
  • Ask() accepts profile parameter + test before save
  • Currency-aware portfolio UI + FX rates sidebar

🧪 Testing

  • Add bbProvider integration test framework + yfinance tests
  • Add FMP bbProvider integration tests (33 fetchers)
  • Add Codex provider e2e tests
  • Add IBKR currency tracking e2e tests

v0.9.0-beta.9

03 Apr 03:10
bbb679f

Choose a tag to compare

v0.9.0-beta.9 Pre-release
Pre-release

Changelog

All notable changes to Open Alice will be documented in this file.

[Unreleased]

🐛 Bug Fixes

  • IBKR account data — replace request-response with persistent subscription cache
  • Enforce aliceId pipe format (accountId|nativeKey) across codebase
  • TrailingAmount maps to trailStopPrice instead of auxPrice
  • Query conditional/trigger orders via { stop: true } fallback (#90)
  • Add .js extensions to ibkr ESM imports (#94)
  • Heartbeat dedup test race condition on CI
  • ModifyOrder null-check bugs in Alpaca/CCXT + extend field forwarding

📚 Documentation

  • Add orderType param guide to placeOrder tool description

🔧 Refactoring

  • Exchange override system for CCXT order routing
  • Align placeOrder/modifyOrder AI tool params with IBKR Order fields
  • Summarize getOrders output + add groupBy contract clustering
  • Extract shared MCP export layer with number coercion

🚀 Features

  • Add single-level TPSL (take profit / stop loss) to placeOrder
  • Expose TPSL on fetched orders (OpenOrder.tpsl)

v0.9.0-beta.8

25 Mar 05:05
9edb274

Choose a tag to compare

v0.9.0-beta.8 Pre-release
Pre-release

Changelog

All notable changes to Open Alice will be documented in this file.

[Unreleased]

🐛 Bug Fixes

  • Explicitly reference static members in broker registry
  • Resolve pre-existing tsc errors in trading routes, specs, MockBroker
  • Switch IBKR package build from tsup to tsc, restore mixin types
  • Resolve remaining tsc errors — E2E null checks, tool return type
  • ClosePosition with conId-only contract, quote timeout graceful skip
  • Broker init idempotent, UTA E2E shared instance, closePosition SMART routing
  • Cron listener routing snapshot fires to AI engine
  • Snapshot reliability — no fake data, retry on failure, carry-forward in equity curve
  • Recompute netLiquidation from fresh position data instead of cached broker totals
  • Add null checks to snapshot builder tests for strict tsc
  • IBKR socket error crashes process — match Python's graceful disconnect
  • Service tests write snapshots to tmpdir instead of data/trading/

📚 Documentation

  • Update README + CLAUDE.md for IBKR, broker self-registration, AccountManager lifecycle
  • Add IBKR broker README and annotate data source limitations
  • Update README for pre-v1 — align structure, mark roadmap complete

🔧 Refactoring

  • Move account lifecycle from main.ts to AccountManager
  • Broker self-registration with configSchema + configFields + fromConfig

🚀 Features

  • Dynamic broker config UI — frontend renders forms from /broker-types
  • Account enable/disable toggle
  • Capture fill data (qty, avgPrice) in order sync + IBKR completed orders
  • Add UTA snapshot system — periodic + event-driven account state capture
  • Add equity curve UI and snapshot API routes
  • Make snapshot interval configurable via config.json + frontend UI
  • Equity curve defaults to single UTA view with account switcher

v0.9.0-beta.7

22 Mar 15:14
b9a2662

Choose a tag to compare

v0.9.0-beta.7 Pre-release
Pre-release

Changelog

All notable changes to Open Alice will be documented in this file.

[Unreleased]

🎨 UI

  • Description-aside layout for config pages (MarketData, News)
  • Apply ConfigSection layout to Settings, Connectors, AI Provider
  • Unified button classes, HeartbeatPage/ToolsPage layout polish
  • TradingPage full redesign — cards, 2-step wizard, visual polish
  • Pre-release design polish — branding, layout, micro-interactions
  • Replace gradient accent with muted dark buttons
  • Add OpenAI backend card + tone down button styling

🐛 Bug Fixes

  • AlpacaBroker getOrder, UUID orderId, precision — add Alpaca e2e tests
  • Remove duplicate logToolCall from providers — AgentCenter pipeline is the single source
  • Rehydrate Decimal fields in TradingGit.restore(), add UTA Bybit e2e
  • Trading tool descriptions + show staged ops in push panel
  • Stop UTA recovery loop for permanent broker errors (missing API keys)
  • Remove CcxtBroker read-only mode, require API keys for all accounts
  • Verify broker connection before confirming account creation
  • CancelOrder return type + parseOperationResult status mapping
  • Backend switch drops stale model config + improve Agent SDK error logging
  • Clear handshake timeout on success to prevent uncaught TypeError
  • Default exchange=SMART and currency=USD for IBKR contracts
  • IBKR getMarketClock timeout fallback + E2E singleFork for shared connections
  • E2E tests use conId-based aliceId via searchContracts + getNativeKey

📚 Documentation

  • Branch safety rules in CLAUDE.md — never delete dev, never --delete-branch
  • Rename Agent SDK → Claude in frontend, update README + CLAUDE.md

🔧 Refactoring

  • Remove realizedPnL from Alpaca hot path, add UTA real-broker e2e
  • IBroker — remove provider field, add generic meta
  • Move aliceId from broker layer to UTA layer
  • MCP server create-once + auto-restart on config change
  • Remove Claude Code CLI provider, unify on Agent SDK
  • UTA self-connects on construction, remove external init/markOffline
  • Split DataSourcesPage into MarketDataPage + NewsPage
  • UTA management — remove legacy migration, add real-time health monitoring
  • Move data/default/ → default/
  • Eliminate Platform layer — one config = one UTA
  • Split uta-real-broker e2e into uta-alpaca + uta-bybit
  • Use beforeEach skip for E2E preconditions
  • Align Position with IBKR, move crypto types to CCXT
  • Separate health recovery from data service pipeline
  • Remove hardcoded credential assumptions, add IBKR to UI
  • Move contract identity resolution from UTA to IBroker

🚀 Features

  • TradingPush requires manual approval via UI panel
  • Push approval panel — reject with history, visual polish
  • Agent SDK OAuth login + revert MCP server to per-request mode
  • UTA health tracking + auto-recovery on broker failure
  • Test connection before persisting account, exchange dropdown
  • Structured error type system for broker → tool → AI chain
  • Add IbkrBroker — IBroker adapter for Interactive Brokers TWS/Gateway

🧪 Testing

  • Fix E2E for sync-fill behavior + market hours skip
  • Fix remaining return→skip in ccxt-bybit e2e + add README
  • Add IBKR E2E tests, refactor setup.ts safety mechanism
  • Add order lifecycle E2E tests that run outside market hours

v0.9.0-beta.6

17 Mar 11:25

Choose a tag to compare

v0.9.0-beta.6 Pre-release
Pre-release

Changelog

All notable changes to Open Alice will be documented in this file.

[Unreleased]

🐛 Bug Fixes

  • build: Fix opentypebb exports for production + add start script
  • pipeline: Batch parallel tool results into single user message
  • ui: Warn that Anthropic-compatible base URL must end with /v1
  • pipeline: Remove double media extraction from text-kind providers
  • Restore preview image in README
  • Sanitize orphaned tool-calls in toModelMessages
  • Correct message dispatch for TWS v201+ protocol
  • Include spec files in tsc and fix all type errors
  • Add optional chaining for legacy commits without contract/order
  • Align frontend types with IBKR-renamed backend fields
  • Upgrade deps to resolve 21 of 23 security vulnerabilities
  • ci: Build @traderalice/ibkr before tests
  • Nullable close price in crypto schema & IME composition guard (#65, #66)
  • Order loss in Trading-as-Git — execution detection + precise sync
  • Trading system precision — Decimal throughout, add reduceOnly
  • AliceId uses market.symbol (unique) instead of market.id (ambiguous)
  • Shared e2e setup + fetchClosedOrders without limit/since
  • GetOrder uses fetchOpenOrder/fetchClosedOrder (singular)

📚 Documentation

  • Add README for @traderalice/ibkr package
  • Add DESIGN.md with exploration history and decision rationale
  • Add experimental software disclaimer to README
  • Update README with UTA architecture and IBKR type system
  • Add Trading domain README — UTA design philosophy

🔧 Refactoring

  • ai-providers: Rename GenerateProvider → AIProvider + add MockAIProvider
  • Move mock.ts files into mock/ directories
  • Consolidate provider utils into ai-providers/utils.ts + add vitest config
  • Rename ai-provider.ts → ai-provider-manager.ts
  • Push history serialization down into providers, remove inputKind
  • Split decoder into modular handler files with full protobuf support
  • E2e tests share single TWS connection via setup.ts
  • Use IBKR types as UTA source of truth
  • Rename ITradingAccount → IBroker, AlpacaAccount → AlpacaBroker, CcxtAccount → CcxtBroker
  • Introduce UnifiedTradingAccount (UTA) class
  • Rename providers/ → brokers/ directory
  • Move broker types and factory into brokers/ directory
  • Inline dispatcher and state bridge into UTA, add comprehensive tests
  • Remove getAccountGit indirection, fix legacy commit crash
  • Unified Trading Account (UTA) + IBKR type system (#67)
  • Replace stub MockBroker with in-memory exchange simulator
  • Trading-as-Git async model — push=submitted, sync=filled
  • Remove defaultMarketType from CcxtBroker
  • GetOrders(orderIds) — explicit query targets, no more guessing

🚀 Features

  • Scaffold @traderalice/ibkr package — types, protocol, decoder, wrapper
  • Complete EClient with all 100+ request methods
  • Implement protobuf decoding for core TWS messages
  • ToolCallLog + fix equity nullable OHLC (#69)
  • Sync() accepts delayMs — exchange API settle time

🧪 Testing

  • Expand unit test coverage from 62% to 74% statements
  • Port Python tests + add comprehensive test suite (51 tests)
  • Add unit tests for all IBroker methods on Alpaca and CCXT
  • Precision + reduceOnly behavior tests (TDD contracts)
  • Add UTA e2e tests — MockBroker lifecycle + Bybit sandbox
  • Add raw CCXT diagnostic + e2e serial execution
  • E2e confirms aliceId fix — orders now route to perp correctly
  • Ccxt-bybit getOrder with 5s delay — still null, not a timing issue

v0.9.0-beta.5

13 Mar 16:49
def3dca

Choose a tag to compare

v0.9.0-beta.5 Pre-release
Pre-release

Changelog

All notable changes to Open Alice will be documented in this file.

[Unreleased]

🐛 Bug Fixes

  • ci: Add ui to pnpm workspace for unified dependency install
  • ci: Remove pnpm cache from publish job to avoid path error
  • openbb: Mount widgets.json on embedded server + align hono version
  • Improve Alpaca and CCXT startup error handling for missing/invalid API keys

📚 Documentation

  • Add OpenTypeBB tutorial for running financial data with OpenAlice
  • Fix API key requirements in provider table

🚀 Features

  • opentypebb: Add SEC provider with EquitySearch model
  • openbb: Enable embedded API server by default
  • openbb: Hot-reload embedded API server via plugin lifecycle

v0.9.0-beta.4

13 Mar 12:03
11687ae

Choose a tag to compare

v0.9.0-beta.4 Pre-release
Pre-release

Changelog

All notable changes to Open Alice will be documented in this file.

[Unreleased]

⚙️ CI

  • Add workflow_dispatch + independent registry checks for publish

🐛 Bug Fixes

  • ci: Override NPM_CONFIG_USERCONFIG for npmjs publish
  • Add pnpm workspace so opentypebb deps are installed automatically
  • ui: Preserve content block order in streaming (text before tools)
  • ui: Unify history and streaming message rendering

📚 Documentation

  • Add v1 roadmap to README

🔧 Refactoring

  • Extract connector classes from inline object literals
  • ui: Redesign portfolio positions table for multi-asset UTA support
  • streaming: POST /api/chat returns SSE stream instead of JSON
  • ui: Extract useChat hook with pure reducer + test coverage (17 tests)

🚀 Features

  • ui: Add favicon

🧪 Testing

  • Add web streaming integration tests (chat pipeline + SSE transport)
  • Add streaming POST SSE transport tests (3 tests)

v0.9.0-beta.3

13 Mar 06:32
70ebb7c

Choose a tag to compare

v0.9.0-beta.3 Pre-release
Pre-release

Changelog

All notable changes to Open Alice will be documented in this file.

[Unreleased]

🐛 Bug Fixes

  • ci: Write local .npmrc for npmjs publish to avoid GitHub Packages auth conflict

🔧 Refactoring

  • Introduce ISessionStore interface and test doubles (MemorySessionStore, MockConnector)

🚀 Features

  • opentypebb: Add widgets.json endpoint for OpenBB Workspace frontend