Releases: TraderAlice/OpenAlice
Releases · TraderAlice/OpenAlice
v0.42.0-beta.1
Changelog
All notable changes to OpenAlice will be documented in this file.
[Unreleased]
UTA
- Close the order state machine + PnL read-state fix (#325)
⚡ Performance
- uta: Listing-driven sync — hanging stop/TP orders cost zero per pass
🐛 Bug Fixes
- trading: Asset class is venue-decided, not a secType guess (CCXT ≠ commodity)
- workspaces: Auto-trust project MCP servers in claude adapter spawns
- docker: Repair self-host image after the desktop package split
- ui: Terminal renderer escape hatch + unified WebGL degradation
- ports: Wildcard-aware port probe + bind MCP to loopback by default
- mcp: Lock MCP/CLI listener to loopback, never honor BIND_HOST
- market,tools: OECD house/share price fetchers — post-reshuffle dataflows
- market: FMP insider-trading aliases for the stable endpoint
- market: Normalize FMP etf-sectors weight to decimal — same units as the yfinance fallback (consumers must not see provider-dependent units)
- market: Per-board hub breaker, tripped only by transport failures
- uta: Collapse the FX currency client to SDK-only — the missed openbb-api consumer
- tool: SectorRotation goes hub-first like the UI route — agents and the UI must read the same board
- remote-access: Same-origin PTY WS upgrade + trusted-proxy-gated X-Forwarded-* trust
- ui: Template detail page — metadata header, 13px prose, list markers
- security: Mask credentials in POST/PUT /uta response echoes
- ui: Close the create-UTA wizard on save, not on first connect
- uta: Close the order state machine — auto-sync poller, fill data, PnL invariant
- uta: Cost basis consumes sync fills at execution price
- uta: Bybit open-orders listing sweeps spot+swap — unscoped call silently hides spot
- uta: Surface Alpaca error bodies — opaque 422s carried the real reason all along
📚 Documentation
- Introduce the Data Hub in README — zero-key market data story
- workspace: Teach the three-CLI split in template instructions
- Data root → ~/.openalice + sealed accounts.json across docs
🔧 Refactoring
- ui: Unify asset search (one logic, both boxes) + source-aware sidebar
- ui: One board hook + one meta grammar
- market: Remove the openbb-api backend — divorce step 1
- tools,cli: News → rss — the name should say what the data is
- paths: Unify on OPENALICE_HOME + route stray data/ literals through dataPath()
🚀 Features
- market,ui: Federated K-line sources in the chart — pick the provider (Phase 3)
- market,ui: Reform the asset search to be source-aware (explicit provider)
- market,ui: Reference-data contract + Movers board (own standard, not OpenBB-compat)
- market,ui: Calendar board (earnings / IPO / ex-dividend, FMP)
- market,ui: Macro board (curated FRED regime dashboard)
- market,ui: Term Structure board (Deribit BTC/ETH futures curve)
- market,ui: S&P 500 valuation strip on the market landing (multpl, keyless)
- market,tools,ui: Global Macro board + OECD country tools
- market,tools,ui: IMF PortWatch shipping data — stub provider retired
- config: User-global data-vendor keys (~/.openalice/provider-keys.json)
- market,tools: Keyless yfinance fallbacks for FMP-only cells
- guardian: Configurable ports via data/config/ports.json + env
- market,tools,ui: Land the salvageable no-consumer endpoints
- market,tools: Fix the broken long-tail fetchers and land the rest
- market,ui: Fed board + Global Macro house/share columns + batched OECD
- market: Reference cache — the hub's cache layer in single-node form
- market: Hub-first reference boards — zero-key out of the box
- market: Endpoint-grain hub coverage — FRED/EIA/BLS proxy sentinel + hub calendars
- ui: Surface meta.origin on boards — hub/local/stale badges
- market: Hub-first rotation + detail panels off the legacy passthrough + settings reorder
- uta: Hub FX table — one cached GET replaces per-currency vendor fetches
- cli:
traderhub— a dedicated CLI for low-frequency market data - workspace: Bundle a self-maintained opencli-reader skill into chat
- workspace,ui: CLI as the default tool access + community template tier
- ui: I18n for template/create surfaces, spawn → create, auto-derived tags
- cli: Alice-uta — trading lands on the CLI surface (cron stays MCP-only)
- ui: Make the secondary sidebar per-activity optional — News goes full-width
- ui: Status-first Market Data settings — coverage map + Advanced fold
- guardian: Own the Vite dev port — probe, strictPort, truthful banner, origin allowlist
- workspaces: Headless runs capture their agent session id + full output log
- webui: Spawn-with-resume accepts adapter-native session ids
- ui: Headless runs as a collapsed second tier under each workspace
- paths: Default user-data home moves to ~/.openalice
- desktop: Relocate packaged user data into ~/.openalice on first launch
- security: Seal broker credentials at rest (AES-256-GCM, machine-bound key)
- uta: Record externally-placed orders as squashed [observed] commits
- uta: External-order observation cadence is configurable, default 15m
- ui: External-order monitoring cadence is editable from the Trading page
🧪 Testing
- config: Sandbox the global-provider-keys spec (OPENALICE_HOME temp dir)
- market: Strict-type the cache spec helper (tsc-only issue post-merge)
- Pin OPENALICE_HOME to sandbox roots in vitest + smoke harness
v0.41.0-beta.1
Changelog
All notable changes to OpenAlice will be documented in this file.
[Unreleased]
🐛 Bug Fixes
- quant: Calc-v2 diagnostic polish from adversarial dogfooding
- workspace: Launch opencode/pi from the frontend on Windows
- ui: Restore preset enumeration — region dropdown + model combobox, shared
- ui: Endpoint URL is a read-only input box (unlocks on Custom), not tiny text
- ui: Credential edit round-trips the API key (was redacted → looked unsaved)
- ui: Loading a credential resets the model to the matched provider's default
- ai-config: Codex tab Test clamped to responses; workspace test authMode by baseUrl
- ai-config: Probe gives reasoning models room; clean message on empty reply
- bars: UTA Bar.timestamp arrives as a string over the wire — normalize
📚 Documentation
- quant: Align v1/v2 + expose calculateQuant via CLI + sync skill
- ai: Update CLAUDE.md for the World-B deletion; drop orphaned agent-sdk-notes
- readme: Reflect the World-B deletion — native-CLI execution + credential vault
- Refresh adapter list (+ opencode/pi) and web-subchannels description
🔧 Refactoring
- ui: WorkspaceAIConfigModal shares the useTestGate abstraction
- ai: Delete World B — in-process AI loop, AgentWork, heartbeat
- config: Remove the now-dead profile + heartbeat machinery
- trading: UTA health as a capability ladder (connect / read / write)
🚀 Features
- market-data: Federated bar layer — Phase 0 (vendor, behavior-preserving)
- market-data,trading: Broker K-lines via UTA + federated search — Phase 1 (CCXT)
- trading: Alpaca getHistorical — equity broker bars (Phase 4a)
- trading: Keyless read-only data UTAs — OOTB crypto K-lines, no key
- analysis: Quant Calculator v2 — barId-keyed Python-subset DSL (Phase 2)
- ai-config: Refresh provider model catalog to current lineups
- workspace: Central credentials — template injection + bidirectional modal
- automation: Cron fires a headless Workspace run, not in-process AgentWork
- ui: Reframe AI Provider page as a credential vault; Test via probe
- ui: Add Agent runtimes panel to the AI Provider page
- ai-config: First-class wire-shape registry + modern test-gated credential form
- ai-config: Persist wireShape on the credential + show the resolved endpoint URL
- ai-config: Unify Test on a shared wireShape dispatcher + honor it at runtime
- ai-config: Credential holds a wires map (multi-wire), dedup by key
- ai-config: Multi-wire credentials — one key declares every shape it speaks
- quant,trading: Retire v1 indicator from the tool surface + harden UTA bootstrap
- quant: Expose searchBars — the unified barId search handle for v2
- cli: Expose searchBars as
alice analysis search-bars— workspace agents run v2 via CLI - quant: Panels — dict/list result so v2 batches many computations in one call
- quant: 7 more primitives + a dedicated openalice-quant skill
v0.40.0-beta.2
Changelog
All notable changes to OpenAlice will be documented in this file.
[Unreleased]
🐛 Bug Fixes
- workspace: Codex headless reports via the alice-workspace CLI (CLI-mode)
🚀 Features
- cli: Split the alice CLI into an export family (data + workspace)
- workspace: Headless task management plane (registry + async dispatch + panel)
- ui: Headless Runs panel — frontend for the management plane
- workspace,ui: Runs panel — store full prompt + collapsible task cell
v0.40.0-beta.1
Changelog
All notable changes to OpenAlice will be documented in this file.
[Unreleased]
🐛 Bug Fixes
- core: Use AgentWorkResultProbe in agent-work spec gate
- demo: Wire Chat sidebar — add chat-template workspace + align templates to real names
- demo,ui: Correct /api/news handler shape + bump persist version v4→v5
- tests: Isolate session-store specs from shared on-disk file
- workspaces: Exclude Codex key files from workspace git
- equity: Ratios returns TTM + history, not just a TTM snapshot
- ui: Render the toolAccess dropdown on all create surfaces
- guardian: Resolve
.cmdshims on Windows dev spawn + CI smoke - guardian/smoke: Strip ANSI before matching; block on Windows cleanup
- guardian: Tree-kill children on Windows so UTA restart doesn't orphan
- guardian: Windows-safe basename in flag watcher (broker-config restart)
- codex: Use responses.create stream instead of responses.stream()
- workspace/codex: Don't quote
openalice-workspaceMCP key in -c override - entity-store: Serialize mutations + tolerate malformed lines (concurrent-write corruption)
- workspace: Headless live-smoke — pi prompt terminator + codex approval
📚 Documentation
- claude: Add demo-mode subsystem guide — check handlers when changing /api/* surfaces
🔧 Refactoring
- workspaces: Unify AI-config IO behind CliAdapter
- workspaces: Launcher-owned context injection + uniform initial commit
- workspaces: Tool-use disposition to persona, drop internal/external framing
- workspaces: Neutral instruction.md source → copied to CLAUDE.md + AGENTS.md
- ui: Centralize locale-aware formatting (i18n stage 1)
🚀 Features
- demo: Add Vercel Web Analytics, gated to demo mode only
- cli: Add
aliceworkspace CLI adapter over the tool registry - demo: Snapshot AAPL market data, serve in demo mode
- skills: Pre-trade pipeline — sector-rotation + build-thesis, tool-agnostic
- workspaces: Tell chat agents to hand finished work back via the inbox
- workspaces: Chat-cli template — tools via
aliceCLI, inbox via MCP - workspaces: Launcher-level toolAccess option (MCP vs CLI); merge chat-cli into chat
- devtools: Pre-fill Tools tab from a tool's declared example input
- devtools: Declare example inputs for the read-only data tools
- devtools: Example inputs for trading tools (mutations conservative)
- ui: Create-workspace dialog + single-source the form across surfaces
- entities: Phase 1 — entity store + entity_upsert/entity_search MCP tools
- entities: Phase 2 — Tracked tab + [[name]] backlinks
- entities: Surface entity_upsert / [[name]] in the chat workspace instruction
- entities: Self-describing asset names — kind-prefixed (stock-vst, crypto-btc)
- workspace: Drop the git panel; fold the files panel from a top-bar toggle
- workspace: Add opencode as a third agent adapter
- workspace: Add Pi as a fourth agent adapter (CLI-injection tools)
- ui: React-i18next foundation + language picker (i18n stage 2)
- ui: Translate ActivityBar + Settings page (i18n slice)
- ui: Translate nav secondary sidebars (i18n batch 1)
- ui: Translate login gate (i18n batch 2)
- devtools: Tool-audit skill + repo-root .mcp.json for dev-side auditing
- analysis: Right-side volume signals — RVOL/OBV/MFI/VWAP + relative-volume movers
- discovery: Add dollar_volume (traded notional) as the absolute volume axis
- tool: Expose ETF tools to the agent (ANG-79) — thematic-ETF self-serve
- workspace: Give Pi full MCP via an injected bridge extension
- ui: Show all agents on template cards + opencode/pi glyphs
- analysis: Sector rotation map — GICS-11 cross-section (ANG-80)
- ui/market: Sector rotation map — quadrant chart + ranked table
- ui/workspace: Top-right Spawn button on template detail, unify create flow
- ui/workspace: Always-visible "New session" button in workspace header
- ui: Dedicated file viewer tab + clickable [[wikilinks]]
- workspace: Pi by-id session resume via launcher-assigned id
- workspace: Codex + opencode by-id session resume (post-spawn harvest)
- workspace: Unified headless launch interface + standard dispatch API
- ui: Add Traditional Chinese (zh-Hant)
- ui: Translate Inbox / Tracked / News pages (i18n)
- ui: Translate Chat workspace surface (i18n)
v0.30.0-beta.1
Changelog
All notable changes to OpenAlice will be documented in this file.
[Unreleased]
🐛 Bug Fixes
- build: Resolve UI dist caching footgun + electron pack readiness
- test: Sync workspace aliases to e2e + bbProvider configs
- electron: Upgrade to v38 + restore full turbo build
- workspaces: Templates resolution survives tsup bundling
- ui: Mobile secondary sidebar accessible via drill-down drawer
- workspaces: Override PWD env to match spawn cwd
- workspaces: PWD env override + observable resume failure
- workspaces/codex: Read MCP URL from spawn env, not backend env
- workspaces/claude: Drop fragile --continue, fresh-spawn when no id
- ui/sidebar: Trim ActivityBar, widen secondary, popover BETA hint
- ui/sidebar: Inline disclosure for BETA hint, avoid overflow clip
- ui/routing: Land on Inbox instead of Traditional Chat by default
- ui/routing: Redirect /chat URLs to /inbox
- ui/sidebar: Move Chat above Workspaces in top nav
- trading-proxy: Rewrap upstream Response so middleware can mutate headers
- trading-proxy: Use
*catch-all instead of/*(Hono routing) - docker: Restore broker SDK deps to root package.json
- uta: Make services/uta typecheck clean (closes ANG-65)
- ui: Activate matching sidebar on URL adoption
- workspaces: De-stale chat / finance-research / auto-quant templates
- ui: Retarget store.spec off the removed chat ViewSpec
- ui: Unwire deleted chat/channels demo MSW handlers from the barrel
- ui: Bump tab-store persist version (drop stale chat/notif tabs)
📚 Documentation
- todo: Record vitest config consolidation followup
- todo: Retire mcp-ask connector
- readme: Rewrite Quick Start for the dev orchestrator + 5173 reality
- readme: Reflect UTA-split architecture — two-process model + carrier framing
- readme: Add Authentication section + Docker login hint
- claude.md: Rewrite Project Structure + Key Architecture
- claude.md: Rewrite Git Workflow + retire TODO.md to Linear
- claude.md: Point future-work surface at Linear (follow-up to d1d417f)
- claude.md: Rewrite Quick Start + Pre-commit Verification
- claude.md: Refuse external PRs before pull, not after
- claude.md: Reframe architecture around Workspace launcher + Trading-context injector
- claude.md: Note --filter='!@traderalice/desktop' for cloud sessions
- claude: Update CLAUDE.md for the legacy-chat excision
- readme: Align README with legacy-chat excision
🔧 Refactoring
- config: Single-source port architecture, derive everything from connectors.json
- build: Dev/test consume workspace package source, drop predev hook
- paths: Centralize fs resolution behind paths.ts, prep for DMG
- uta-protocol: Lift broker preset catalog into shared package
- telegram: Await UTA-manager calls in prep for SDK swap
- uta-service: Relocate simulator routes from Alice to UTA
- tool/trading: Await UTA-manager + per-account async calls (Phase A)
- trading: Move aliceId expansion into UnifiedTradingAccount
- uta-split: Physically move src/domain/trading into services/uta
- ui: Split Trading Accounts × Portfolio responsibilities
- workspaces: Drop CLI-pick checkboxes from create flow
- build: Extract Electron shell to apps/desktop
- ui: Move Automation from Legacy to Beta in sidebar nav
- core: Excise legacy chat cluster + retire AgentCenter (backend)
- ui: Remove traditional-chat / notifications-legacy / connectors surfaces
🚀 Features
- electron: Introduce guardian skeleton (port probe + backend spawn)
- dev: Orchestrator unifies pnpm dev to single command with auto port adjustment
- workspaces: Path-centric debug infra for session spawn/resume
- workspaces: Headless probe API for self-debug closure
- docker: Self-host image with bundled claude + codex CLIs
- ui/workspace: Collapsible side panels + Git status labels
- workspaces: Template catalog + README convention + version lineage
- uta-protocol: Bootstrap shared wire protocol package
- uta-service: Bootstrap co-located UTA service process
- guardian: Introduce L2 supervisor module, replace scripts/dev.ts
- guardian: Add flag-based UTA restart protocol
- uta-split: Cut Alice trading routes over to BFF proxy
- uta-client: Lift trading types to uta-protocol + build SDK skeleton
- uta-service: Add 4 routes the AI tool layer needs
- uta-client: Wire SDK's commit/sync/simulatePriceChange/getContractDetails
- uta-service: Add 4 stage-only wallet routes for the AI tool layer
- uta-service: Expand aliceId server-side in contracts/details route
- uta-service: Add POST /quote with aliceId expansion + SDK envelope fixes
- alice: Swap main.ts to UTAManagerSDK — Alice no longer holds broker state
- docker: Dual-bundle build + tini-supervised Guardian prod entry
- safe: Add agent-first red-team penetration kit
- auth: Admin token + session cookie + middleware (L1+L2 gate)
- auth: Gate WebSocket upgrades + close TDD loop on playbooks 01-03
- auth: UI login gate + /api/auth/status localhost passthrough
- auth: SPA shell exception + bind 0.0.0.0 in container
- ui: Stage 1 demo mode — UI runs with no backend
- workspace: Bearer auth option for Claude provider config
- workspace: Carry authMode through profile Apply + MiniMax preset
- ai-providers: Honor profile authMode in GenerateRouter runtime (ANG-72)
- demo: Stage 2 PR-1 — Vercel-deployable + visual skeleton
- demo: Stage 2 PR-2 — PTY transcript replay + recorder tool
- demo: Stage 2 PR-3 — flagship scenario (Inbox ↔ workspace ↔ transcript)
- demo: Stage 2 PR-4 — secondary fixture richness
- migrations: Add 0007 to retire legacy-chat config orphans
🧪 Testing
- paths: Cover dataPath/defaultPath/uiBundlePath/templatesPath
- auth: Unit tests for token-store, session-store, and middleware
- core: Rewrite AgentWork/heartbeat/cron specs for the rewired path
v0.21.0-beta.5
Changelog
All notable changes to OpenAlice will be documented in this file.
[Unreleased]
🚀 Features
- activitybar: Introduce Beta section; promote trading-related entries
v0.21.0-beta.4
Changelog
All notable changes to OpenAlice will be documented in this file.
[Unreleased]
🐛 Bug Fixes
- workspaces: Allow port 3002 origin for web terminal CORS
📚 Documentation
- claude.md: Cover cloud claude/* side-branch hotfix pattern
- readme: Add Workspace + Inbox to Key Concepts
- readme: Post-Workspace generation pass — Brain retired, two-layer Automation, Inbox + Workspace surfaced
- claude-md: Add README maintenance discipline
- readme: Drop "Roadmap to v1" section
🔧 Refactoring
- activitybar: Linear-style widened sidebar with collapsible sections
🚀 Features
- workspaces: Windows compat via Git for Windows bash wrap
- inbox: Per-entry delete (trash button + Delete shortcut)
- workspace: AI provider test button with test-before-save gating
- workspace: Lock Codex wire_api to "responses" + chat-only provider hint
- activitybar: Split Chat into workspace-shortcut + Legacy section
- activitybar: Promote Connectors to Legacy section, drop from Settings
v0.21.0-beta.3
Changelog
All notable changes to OpenAlice will be documented in this file.
[0.21.0-beta.2] - 2026-05-15
🔧 Refactoring
- workspace: Finance-research uses cp-discovery, not plugin install
🚀 Features
- workspace: Finance-research template + satellite-repo pattern
v0.10.0-beta.5
Changelog
All notable changes to OpenAlice will be documented in this file.
[Unreleased]
📚 Documentation
- TODO: Flag profile + AI Provider model needs structural rethink
🔧 Refactoring
- workspaces: Drop global-config inheritance, wire MCP per-spawn
🚀 Features
- workspaces: Per-workspace AI provider config via CLI-native files
- workspaces/ui: Add ⚙ AI Provider button to sidebar workspace row
- workspaces/ui: Readable tab titles + sidebar truncate + SDK icons
- workspaces: Overview dashboard with card-based status view
- workspaces: Group Overview dashboard by template type
- chat: Two-section sidebar — workspace chat (recommended) + traditional
- chat: Chat sidebar UX — default tag, collapsible groups, visual parity
v0.10.0-beta.4
Changelog
All notable changes to OpenAlice will be documented in this file.
[Unreleased]
🚀 Features
- workspaces/auto-quant: Zero-config via public mirror + per-workspace isolated data