diff --git a/CHANGELOG.md b/CHANGELOG.md index 137e7c05..13fcedb1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,8 @@ This project adheres to [Semantic Versioning](https://semver.org/). ## [Unreleased] +## [0.1.12] — 2026-07-22 + ### Added - **User swarm-presets directory**: preset YAMLs dropped into `~/.vibe-trading/swarm/presets/` are discovered alongside the bundled @@ -62,6 +64,31 @@ This project adheres to [Semantic Versioning](https://semver.org/). - Binance USD-M perpetual routing, slice 1 of #462 (#470, thanks @honginp) — explicit `BTC-USDT-PERP` symbol contract with execution/mark price separation, fail-closed when the two aren't timestamp-synchronized. +- **Correlation regime timeline** (#756, thanks @ebujinovch, closes #719) — a + new additive `GET /correlation/regime` endpoint plus an opt-in "Regime + timeline" strip on the Correlation tab: rolling pairwise correlations reduce + to an edge-density series, causally smoothed, and run through a two-threshold + hysteresis state machine that marks FUSED episodes ("when did the market fuse + into one bloc?"). Descriptive risk context, not a trading signal; shares + `/correlation`'s auth + rate-limit budget. Backed by the **correlation-regime + skill** (#557, thanks @ebujinovch). +- **Three new LLM providers** — SiliconFlow CN + Global (#565, thanks @UNHNQ), + iFlytek Spark (#537, thanks @FenjuFu), and a **native Anthropic Messages API** + adapter (#695, thanks @jelech; `pip install "vibe-trading-ai[anthropic]"`). + MiniMax now exposes its regional API endpoints (#731, thanks @octo-patch). +- **Historical USD-M funding settlements** for Binance perpetuals (#716, thanks + @honginp); maintenance brackets are supplied as a validated, versioned + artifact rather than a live authenticated fetch (#757, thanks @honginp), so a + plain `-PERP` backtest stays zero-credential. +- **Pluggable OCR** for `read_document` with optional LLM-vision extraction and + a configurable text-density threshold (#548, thanks @shadowinlife) — local + RapidOCR by default; cloud engines are explicit opt-in, never auto-selected. +- New academic factor `academic_corr_rewire` (#705, thanks @ebujinovch) and the + fundamental zoo wired into the `_VALID_ZOOS` whitelist (#707, thanks + @sambazhu). Binance crypto fallback loader (#643) and bounded OKX history + fetches with rate-limit handling (#644, thanks @tyj147454413-cmd). +- QVeris premium-track hardening — session budget applied to backtest data + calls (#685) and atomic credit accounting (#686, thanks @xkam7ar). ### Changed - Correlation tab accepts bare tickers like `AAPL,SPY` and walks the full @@ -69,6 +96,15 @@ This project adheres to [Semantic Versioning](https://semver.org/). @yxhuang, closes #471). - `local` loader honors the requested interval via OHLCV resampling instead of silently returning daily bars (#467, thanks @Shizoqua). +- Provider credentials are resolved through one centralized path, fixing a + gateway misroute (#563, thanks @shadowinlife, closes #549/#553). When no + `*_BASE_URL` is set, the backend now falls back to the provider catalog's + canonical `default_base_url` (the same default Web Settings already used), so + a CLI / manual-`.env` user reaches the right endpoint instead of defaulting + to `api.openai.com`. +- Signal alignment is vectorized for an ~80× speedup on wide panels (#698, + thanks @shadowinlife); swarm workers cache MCP tool-discovery specs to avoid + redundant RPC round-trips (#704, thanks @shadowinlife). ### Fixed - Explicit `source: local` backtests now route US/HK equities to the @@ -94,6 +130,34 @@ This project adheres to [Semantic Versioning](https://semver.org/). - Switching providers no longer leaves a stale `OPENAI_BASE_URL` from a previous configuration silently overriding the newly-resolved endpoint (#484, thanks @Bortlesboat, closes #482). +- **Strict-JSON / finite-number hardening** across the backtest + tools stack + (thanks @santhreal): risk ratios stay finite when equity crosses zero mid-path + (#765) or annualizes an explosive path (#739/#740); scalar backtest metrics + (#766), factor IC std (#767), and pattern trend-slope (#764) emit strict + RFC-8259 JSON (`null`, never bare `NaN`/`Infinity`); Black-Scholes helpers + treat non-positive spot/strike as intrinsic (#744). +- **Loader / data correctness** — yahoo `1m` stays minute bars instead of being + uppercased to monthly (#761, @santhreal); the composite engine falls back to + the first available sub-engine for unknown symbols (#734, thanks @Marnie0415); + mootdx history that doesn't reach the requested start is rejected (#692, thanks + @xkam7ar). +- **Session / journal robustness** — one corrupt `session.json` (#762) or a + schema-bad `messages.jsonl` line (#763) no longer aborts listing/reading; + Excel float-stringified A-share codes (#770), unicode-dash PDF page ranges + (#769), and `export KEY=` dotenv lines (#768) all parse correctly (@santhreal). +- **Native `zai` provider on glm-5.1** (#758) — endpoints that stream zero + chunks fall back to a non-streaming invoke instead of raising, and an HTML + error page surfaces an actionable base-URL hint. +- Partial market-data results are completed through the loader fallback chain + instead of silently shrinking the universe (#689, closes #681). +- Cancellation is honored before the first AgentLoop iteration (#641, thanks + @xkam7ar, closes #638); streaming output no longer triggers an `insertBefore` + DOM race in the frontend (#717, thanks @Marnie0415); codex stream HTTP + failures are classified for correct retry (#663, thanks @tyj147454413-cmd). +- Robinhood connector `account_number` wiring and remote-MCP display shape + (#726, thanks @nareshkps). +- Broad reliability fixes across packaging, web, scheduler, swarm, and CLI + (#584, thanks @xkam7ar). ## [0.1.11] — 2026-07-11 diff --git a/Dockerfile b/Dockerfile index 109ec1a5..270766d8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -50,7 +50,7 @@ FROM python:3.11-slim@sha256:e031123e3d85762b141ad1cbc56452ba69c6e722ebf2f042cc0 LABEL org.opencontainers.image.title="Vibe-Trading" \ org.opencontainers.image.description="Natural-language finance research AI agent with backtesting" \ - org.opencontainers.image.version="0.1.11" \ + org.opencontainers.image.version="0.1.12" \ org.opencontainers.image.source="https://github.com/HKUDS/Vibe-Trading" \ org.opencontainers.image.licenses="MIT" diff --git a/agent/SKILL.md b/agent/SKILL.md index 1e877483..2941fc1f 100644 --- a/agent/SKILL.md +++ b/agent/SKILL.md @@ -1,6 +1,6 @@ --- name: vibe-trading -version: 0.1.11 +version: 0.1.12 description: Professional finance research toolkit — backtesting (8 engines + benchmark comparison panel), factor analysis, Alpha Zoo (462 pre-built alphas across qlib158/alpha101/gtja191/academic/fundamental), options pricing, 88 finance skills, 30 multi-agent swarm teams, Trade Journal analyzer, and Shadow Account (extract → backtest → render) across 23 market-data sources (tushare, yfinance, okx, binance, akshare, baostock, tencent, mootdx, ccxt, futu, mt5, local, eastmoney, sina, stooq, yahoo, india_broker, qveris, longbridge, plus optional-key finnhub/alphavantage/tiingo/fmp). dependencies: python: ">=3.11" diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 40a5e042..4d3a32e5 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,12 +1,12 @@ { "name": "vibe-trading-frontend", - "version": "0.1.11", + "version": "0.1.12", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "vibe-trading-frontend", - "version": "0.1.11", + "version": "0.1.12", "dependencies": { "@fontsource/inter": "^5.3.0", "@fontsource/jetbrains-mono": "^5.3.0", diff --git a/frontend/package.json b/frontend/package.json index 0cc022bc..8d2fda8d 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,7 +1,7 @@ { "name": "vibe-trading-frontend", "private": true, - "version": "0.1.11", + "version": "0.1.12", "type": "module", "scripts": { "dev": "vite", diff --git a/frontend/src/i18n/locales/en.json b/frontend/src/i18n/locales/en.json index 3caeb1a9..5b9f4dab 100644 --- a/frontend/src/i18n/locales/en.json +++ b/frontend/src/i18n/locales/en.json @@ -1,6 +1,6 @@ { "app": { - "version": "v0.1.11" + "version": "v0.1.12" }, "charts": { "noPriceData": "No price data", diff --git a/frontend/src/i18n/locales/zh-CN.json b/frontend/src/i18n/locales/zh-CN.json index 0949066d..85bd5036 100644 --- a/frontend/src/i18n/locales/zh-CN.json +++ b/frontend/src/i18n/locales/zh-CN.json @@ -1,6 +1,6 @@ { "app": { - "version": "v0.1.11" + "version": "v0.1.12" }, "layout": { "home": "首页", diff --git a/pyproject.toml b/pyproject.toml index 4c135dfe..366c3333 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "vibe-trading-ai" -version = "0.1.11" +version = "0.1.12" description = "Natural-language finance research AI agent with backtesting" requires-python = ">=3.11" license = "MIT"