Skip to content

Releases: TraderAlice/OpenAlice

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

v0.9.0-beta.2

13 Mar 05:50
a2eccda

Choose a tag to compare

v0.9.0-beta.2 Pre-release
Pre-release

Changelog

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

[Unreleased]

⚙️ CI

  • Publish opentypebb to both GitHub Packages and npmjs

🐛 Bug Fixes

  • Restore opentypebb src exports for local dev, use publishConfig for dist
  • session: Remove duplicate assistant text persistence

🔧 Refactoring

  • Move model-factory to vercel-ai-sdk, rename engine.spec
  • Merge ai-config.ts into config.ts
  • Create src/server/ for port-exposed services
  • Move skills to data/default/skills/
  • Extract Connector types to connectors/types.ts
  • Extract GenerateProvider types to ai-providers/types.ts

🚀 Features

  • Publish @traderalice/opentypebb to GitHub Packages

v0.9.0-beta.1

13 Mar 04:38
63179f6

Choose a tag to compare

v0.9.0-beta.1 Pre-release
Pre-release

Changelog

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

[Unreleased]

Config

  • Default crypto to bybit demo, securities to alpaca paper with tickers

Merge

  • Unified trading architecture + AGPL-3.0 relicense

⚙️ CI

  • Add GitHub Actions workflow and fix time-sensitive test
  • Add automatic release workflow on master merge

⚡ Performance

  • Decouple CCXT init from startup, allow plugins to start immediately

🎨 UI

  • Polish frontend design — chat input, sidebar, card system
  • Round 2 polish — shared components, transitions, table hover
  • Round 3 polish — toast system, send spinner, mobile fixes

🐛 Bug Fixes

  • Inject persona + brain state into Claude Code provider
  • Extract assistant text when Claude Code result is empty
  • Align SettingsPanel with actual backend config structure
  • Use --disallowedTools instead of --allowedTools for evolution mode
  • Restore --allowedTools and hot-reload evolutionMode
  • ui: Batch quality fixes — XSS, toggle, SSE dedup, error feedback
  • Default mcpPort to 3001 so MCP tools server always starts
  • Inject MCP tool permissions via --allowedTools, gitignore .claude/
  • Skip crypto trading tools when engine is null
  • openbb: Remove commodity from provider config, fix provider option lists
  • Pass ccxt options under options key instead of spreading at top level
  • tools: Set correct providers for equity fundamental and news tools
  • openbb: Split news providers and handle 204 No Content
  • Make MCP Server always-on — Claude Code provider depends on it for tools
  • test: Update engine.spec.ts to match new VercelAIProvider constructor
  • Connectors config auto-init and migration defaults
  • Derive validSections from sectionSchemas to prevent config API drift
  • news-collector: Retry RSS fetch once on failure
  • docs: Replace Mermaid & syntax for broader renderer compatibility
  • SSE stability — auto-reconnect with exponential backoff
  • Clarify searchContracts/getContractDetails tool descriptions
  • Update stale equitySearch/cryptoSearch references in tool descriptions
  • Soften marketSearchForResearch description to avoid mandatory pre-search
  • Seed platforms.json + accounts.json to disk on legacy migration
  • Sequential loadMarkets with per-type retries for CCXT
  • Add init retry with exponential backoff for AlpacaAccount
  • Enforce aliceId as required contract identifier for trading tools
  • opentypebb: Point exports to src/ so tsx resolves without build
  • Upgrade opentypebb hono 4.7.4 → 4.12.7 to resolve type mismatch
  • Allow 'agent-sdk' in backend switch API validation
  • ui: Persist streamed tool calls and show thinking dots during text generation
  • ci: Let pnpm version come from package.json packageManager field
  • streaming: Push intermediate text events from Claude Code and Agent SDK providers
  • session: Persist intermediate text blocks during tool loops

📚 Documentation

  • Sync README with recent features
  • Document Web UI dev workflow and dual-port architecture
  • Sync README with OpenBB integration and provider default change
  • Overhaul README to reflect recent architecture changes
  • Delete stale scheduling.md, fix mcp-ask config section
  • Add Key Concepts glossary and simplify Quick Start
  • Delete stale scheduling_zh.md
  • Remove dead live demo link, update header badges
  • Add browser tool description prefix clarifying Chrome extension requirement
  • Update README for unified trading architecture and AGPL-3.0
  • Update README to reflect TypeScript-native OpenBB engine
  • Update README for Engine removal, Agent SDK, and ConnectorCenter rename
  • Add CI and license badges, remove redundant license section
  • Add contributing guide (issues welcome, PRs not accepted)

🔧 Refactoring

  • Split persona/heartbeat into default + user override
  • Move Settings from slide drawer to dedicated page tab
  • Unify AI provider default into Zod config system
  • ui: Replace header tabs with sidebar navigation and widescreen layout
  • Split analysis-kit into thinking-kit + analysis-tools
  • Split Sandbox into KlineStore + NewsStore
  • Merge analysis-kit + analysis-tools into archive-analysis
  • Disconnect archive-analysis from runtime
  • Remove lookback from indicator formula, use interval-based data window
  • Extract unified indicator calculator to extension/analysis-kit
  • openbb: Per-asset-class default provider instead of single global default
  • ui: Extract shared form components and deduplicate config pages
  • Absorb archive-analysis into news-collector, delete dead module
  • Remove trading whitelist, replace with optional symbol-whitelist guard
  • Consolidate AI provider config into single file and dedicated page
  • Unify connector interface with structured delivery
  • Introduce ConnectorCenter to centralize outbound notification logic
  • Event-driven interaction tracking in ConnectorCenter
  • Simplify heartbeat status to binary HEARTBEAT_OK / CHAT_YES
  • Rename wallet* to trading*, make commit/push/sync source optional
  • Provider tool injection + slim AccountCapabilities
  • Remove adjustLeverage and leverage from OrderRequest
  • IBKR-aligned OrderRequest + modifyOrder + dead code cleanup
  • Split resolveContract into searchContracts + getContractDetails
  • Unify equitySearch + cryptoSearch + currencySearch into marketSearchForResearch
  • Merge platform into account flow in TradingPage
  • Replace slide panel with centered modal dialogs
  • Split CcxtAccount into smaller modules
  • Split AlpacaAccount into smaller modules
  • ai-provider: Align VercelAIProvider with ClaudeCodeProvider interface
  • ui: Redesign DataSourcesPage with two distinct conceptual zones
  • AgentCenter becomes orchestration center, providers slim down, Engine deleted
  • persistence: Unify session persistence in AgentCenter

🚀 Features

  • Add MCP Ask connector for external agent conversation
  • Add evolution mode — two-tier permission system
  • Auto-seed config files on first startup, untrack from git
  • ui: Add responsive sidebar — collapse to hamburger menu on narrow screens
  • ui: Add section descriptions to Settings and fix nav highlight
  • ui: Beautify chat — ChatGPT/Claude-style layout, code copy, animations
  • ui: Polish layout — SVG sidebar icons, Alice avatar, message grouping, safe area
  • Add OpenBB equity data layer (src/openbb/equity)
  • Equity symbol search with local regex index
  • Equity indicator calculator with OpenBB data
  • Make interval a required parameter in indicator formula syntax
  • Add OpenBB crypto data layer (types + client)
  • Add OpenBB commodity data layer (types + client)
  • Add EIA petroleum status and energy outlook endpoints to commodity client
  • Add OpenBB currency data layer (types + client)
  • Add crypto search tool (adapter layer)
  • Add currency search tool (adapter layer)
  • Register crypto search, currency search, and analysis-kit tools
  • Add Data Sources page with connection test and provider key management
  • web: Render tool calls as collapsible groups in chat history
  • Add multi-provider model support with hot-reload
  • openbb: Inject provider credentials via HTTP header and add economy client
  • ui: Expand provider keys to 8 providers with descriptions
  • ui: Add per-provider Test button for API key validation
  • ccxt: Add ticker, funding rate queries and fix realizedPnL
  • ccxt: Expose order book depth query for liquidity evaluation
  • alpaca: Add real-time quote and native closePosition
  • crypto: Add extensible guard pipeline for trading operations
  • ui: Add Crypto Trading config page with exchange and guard management
  • ui: Replace manual save buttons with auto-save and debounce
  • securities: Add extensible guard pipeline for trading operations
  • ui: Add Securities Trading config page with broker and guard management
  • openbb: Add News client and complete Commodity client coverage
  • tools: Expose equity fundamentals and news tools to AI loop
  • ui: Add Portfolio Dashboard + split routes and API into domain modules
  • ui: Add card-based SDK selector and enable/disable toggles to trading pages
  • ui: Add sidebar nested navigation for trading config pages
  • Consolidate connector configs into connectors.json with enable/disable toggles
  • ui: Multi-select card grid for connectors enable/disable
  • news-collector: Add persistent news collection with RSS and OpenBB piggyback
  • Hot-reload connector enable/disable without restart
  • ui: Add News Collector section to DataSourcesPage with enable/disable cards
  • Add Custom provider option for relay/proxy endpoints
  • Add /dev debug page + rename deliver() to send() with kind
  • Persist push messages to session for history survival
  • Persistent media store with 3-word content-addressable names
  • Image ContentBlock + date-based media storage
  • Add paginated event log with full disk history
  • Add dedicated Heartbeat page with config, prompt editor, and recent events
  • Add Tool Panel for granular tool enable/disable with hot-reload
  • Add unified trading types — Contract, ITradingAccount, AccountManager, TradingGit
  • Add unified guard pipeline — merge crypto + securities guards
  • Unified trading architecture — provider adapters, tool factory, main.ts rewrite
  • Add test coverage, fix CCXT bug, merge frontend trading UI
  • Unified multi-account tool routing with source parameter
  • Aggregate getQuote across all accounts
  • Add read-only mode to CcxtAccount for keyless market data access
  • Introduce Platform layer for multi-account trading
  • Trading config CRUD API + table/panel UI redesign
  • Alpaca realized PnL via FILL activities + Portfolio page redesign
  • Add React Router for URL-based navigation
  • Replace Python OpenBB sidecar with in-process OpenTypeBB SDK
  • openbb: Add backend selector and embedded API server support
  • opentypebb: Add ~40 economy/commodity routes with FRED, OECD, BLS, EIA providers
  • web: Add sub-channel support with per-channel AI config
  • ui: Redesign chan...
Read more