v0.1.10

feyninc/pulpiev0.1.10Jun 19, 2026by warren618

AI Summary

v0.1.10 is a roll-up release introducing a comprehensive Global data layer with 18 market-data sources and 18 read-only tools, alongside 10 broker SDK connectors, enhanced alpha comparison capabilities, provider reliability improvements, and a security hardening wave.

Key Highlights

  • Global data layer expands to 18 sources and 18 read-only data tools, all exposed over MCP.
  • 10 broker SDK connectors added, supporting read and paper trading with bounded autonomy for live trading.
  • Alpha compare functionality expanded across CLI, REST, Web, and agent tools.
  • Provider-reliability overhaul includes a capability layer, explicit error handling, and a DeepSeek adapter.
  • Research Autopilot Phase 1 enables automatic hypothesis-to-config workflows.

New Features

  • 18 market-data sources with auto-detect and ban-risk-ordered fallback chains.
  • Opt-in local data cache for settled bars stored in user home directory.
  • Security hardening wave including API write auth, loopback host rejection, and explicit local shutdown auth.
  • Version reporting consistency across CLI, REST API, MCP handshake, and Web UI.
  • Research Autopilot Phase 1 for generating backtest configs from hypotheses.

Full Release Notes

## 🌍 v0.1.10 β€” Global data layer + roll-up since 0.1.9

`v0.1.10` is a roll-up release. The headline is the **Global data layer**: the market-data registry grows from 10 to 18 sources and gains **18 read-only data tools** that reach past OHLCV into fundamentals and flow, all exposed over MCP. Around it ships everything accumulated since 0.1.9 β€” **10 broker SDK connectors**, the **Alpha Zoo `alpha compare`** full stack, a **provider-reliability overhaul**, **Research Autopilot Phase 1**, an **opt-in local data cache**, and a community-driven **security-hardening wave**.

This release is available on **PyPI**, **ClawHub**, and GitHub Releases.

```bash
pip install -U vibe-trading-ai
# or
uv tool install --reinstall vibe-trading-ai
```

## Highlights

### 🌍 Global data layer β€” 18 sources + 18 read-only data tools

The loader registry grows from 10 to **18 market-data sources**:

- **Free, no key** β€” `tushare`, `okx`, `yfinance`, `akshare`, `baostock`, `tencent`, `mootdx`, `ccxt`, `futu`, `local`, plus four new direct-API additions: **Eastmoney**, **Sina**, **Stooq**, and a direct-HTTP **Yahoo** client.
- **Optional key-gated US providers** β€” **Finnhub**, **Alpha Vantage**, **Tiingo**, **FMP**; absent keys are skipped in the fallback chain, never crash it.

Fallback chains are re-ordered by **IP-ban risk** (lightweight, throttle-tolerant public endpoints lead; key-gated REST trails) behind a shared throttled HTTP gate (`backtest/loaders/_http.py`) with per-host rate buckets, jitter, and session reuse. On top sit **18 read-only data tools** β€” fund flow, dragon-tiger board, northbound (Stock-Connect) flow, margin trading, block trades, shareholder count, lockup expiry, sector membership, research reports, news, SEC filings (EDGAR + XBRL), financial statements, options chains, institutional holdings, full-market screening, symbol search, FRED macro, and `iwencai` natural-language A-share search β€” across **A-share / US / HK**, all exposed over MCP. Three shared clients (`eastmoney` / `yahoo` / `sec_edgar`) back the loaders and tools, and a consolidated `data-routing` index plus per-source `eastmoney` / `sec-edgar` skills document the layer.

### πŸ’± 10 broker SDK connectors β€” read + paper, mandate-gated live

Trading is **connector-first**: pick a profile, and paper/live is an attribute of the connector. This release brings the roster to **10 brokers** β€” IBKR (local read-only TWS/Gateway) Β· Robinhood (Agentic MCP, OAuth) Β· Tiger Β· Longbridge Β· Alpaca Β· OKX Β· Binance Β· Futu Β· **Dhan** Β· **Shoonya** (India NSE/BSE + F&O). Direct-SDK connectors share a `broker_sdk` transport and each does read + paper-account order placement; live placement passes a single fail-closed bounded-autonomy gate (`sdk_order_gate.py`: mandate + kill switch + audit). Brokers with **no runtime paper/live discriminator** (Longbridge, Dhan, Shoonya) are structurally capped at **paper + read-only** β€” their `place_order` / `cancel_order` hard-refuse any non-paper config at the first line. Order-placing tools stay off MCP (agent + CLI only).

### πŸ“Š Alpha compare across CLI / REST / Web / agent tool

`vibe-trading alpha compare` ranks any set of Alpha Zoo factors by IC / IR on your universe, sharing one `compare_runner.compare_alphas` core behind the CLI, a `POST /alpha/compare` REST route with SSE-streamed progress, the Alpha Zoo Web UI Compare view, and a read-only `alpha_compare` agent tool. A `run_bench(only=…)` subset filter benches only the compared factors instead of the whole zoo.

### πŸ”Œ Provider-reliability overhaul

A provider **capability layer** gates reasoning capture/replay, Gemini thought signatures, Kimi user-agent, and OpenRouter reasoning bodies per provider. `vibe-trading provider doctor` prints a redacted diagnostic snapshot. Streaming failures now raise an explicit, redacted `ProviderStreamError` (carrying `status_code` + `.retryable`) with one retry for transients and fail-fast on 4xx; a throttled `reasoning_delta` SSE drives a "Reasoning…" liveness indicator in the Web UI. Also: an optional native DeepSeek adapter (`VIBE_TRADING_DEEPSEEK_ADAPTER`), read-only tool hard-timeouts (`VIBE_TRADING_TOOL_TIMEOUT_SECONDS`), and per-provider temperature handling (Kimi-k2 forced to 1.0, MiniMax clamped > 0).

### πŸ”¬ Research Autopilot Phase 1

`run_research_autopilot` turns a `hypothesis_id` into a research goal (thesis as objective, backtest-relevant acceptance criteria, next-step hints), and `generate_backtest_config` auto-writes a backtest `config.json` from the hypothesis's universe and data sources β€” so the agent goes straight from idea β†’ `signal_engine.py` β†’ run.

### πŸ—ƒοΈ Opt-in local data cache + `local` loader

`VIBE_TRADING_DATA_CACHE=1` caches **settled** bars to `~/.vibe-trading/cache` (user home, **never** the repo); a staleness guard never caches a range ending today, and cached frames are byte-identical to live fetches. A new **`local`** loader reads OHLCV straight from your own **CSV / Parquet / DuckDB** files via `~/.vibe-trading/data-bridge/config.yaml`, with normal fallback-chain support.

### πŸ›‘οΈ Security & hardening wave

A community-driven hardening pass: API settings-write auth (#245), agent shell-tool opt-in (#243), loopback-host rebinding rejection (#242), explicit local-shutdown auth (#241), and identifier containment for mandate proposal-ids (#256), persistent-memory types (#257), and MCP swarm run-ids (#258). Plus responsive Stop mid-stream + SSE reconnect on returning to a running session (#229), multi-engine `web_search` fallback (#231), and Gemini `thoughtSignature` round-trip through OpenAI-compat tool calls (#176, #184).

### πŸͺͺ Version reporting is now consistent

`--version`, the REST API (`/docs` + `/api`), the MCP server handshake, and the Web UI footer all derive from one source β€” the REST API had drifted to a wrong hardcoded `5.0.0`. Packaging also now ships skill example scripts in the wheel, and the Docker image installs weasyprint's native libs so PDF reports render.

## Install / upgrade

| Channel | Command |
|---|---|
| **PyPI** | `pip install -U vibe-trading-ai` |
| **uv tool** | `uv tool install --reinstall vibe-trading-ai` |
| **ClawHub** (Claude Desktop / OpenClaw / MCP clients) | `clawhub install vibe-trading` or update the installed skill |
| **Docker** | `docker compose pull && docker compose up -d` |

Remote API/Web deployments should set `API_AUTH_KEY` and explicit trusted CORS origins. Local CLI and localhost Web UI workflows remain low-friction.

## By the numbers

- ~98 non-merge commits since `v0.1.9`
- **18 market-data sources** with auto-detect + ban-risk-ordered fallback
- **66 agent tools** (auto-discovered) Β· **54 MCP tools**
- **79 bundled finance skills**
- 29 swarm presets
- **10 broker connectors** (read + paper, bounded-live for those with a structural paper/live guard)
- 7 backtest engines + composite cross-market engine + options portfolio
- **4167 backend tests passing** (the weasyprint shadow-report PDF suite is green on CI; it segfaults only on macOS/conda without Pango)
- Clean-room verified: a fresh `pip install` of the `0.1.10` wheel imports all new loaders/tools, and the wheel + sdist ship the `eastmoney` / `sec-edgar` skills including UTF-8 Chinese reference filenames

## πŸ™Œ Credits

### Code contributors this cycle

- **@warren618** / Haozhe Wu β€” the global data layer (8 sources + 18 read-only data tools, 3 shared clients), the 10 broker SDK connectors + bounded-autonomy order gate, the alpha-compare full stack, the provider-reliability overhaul, multi-engine `web_search` fallback, responsive Stop + SSE reconnect, multi-language READMEs, integration, release.
- **@Hinotoi-agent** β€” a security-hardening wave: explicit local-shutdown auth (#241), loopback-host rebinding rejection (#242), agent shell-tool opt-in (#243), settings-write auth (#245), mandate proposal-id containment (#256), persistent-memory type validation (#257), MCP swarm run-id containment (#258)
- **@mvanhorn** β€” the opt-in local data cache (#177), Gemini `thoughtSignature` round-trip over OpenAI-compat tool calls (#176), the custom data loader guide (#194), and the glm/zhipu provider alias + model-name inference (#247)
- **@gyx09212214-prog** β€” loader robustness for malformed crypto/RSSHub timeout env vars (#227, #240), requested yfinance end-date inclusion (#226), strict run-card JSON for non-finite metrics (#238), and ddgs retry-fallback coverage (#239)
- **@BillDin** β€” swarm agent status in the chat UI (#188), explicit preset-name handling (#189), the loader-backed market-data tool for swarm workers (#199), and preset-context continuations (#200)
- **@Robin1987China** β€” the Research Autopilot goal-hypothesis bridge (#260), the local CSV/Parquet/DuckDB data loader (#252), and an assistant-prefill fix + configurable Kimi User-Agent (#248)
- **@LemonCANDY42** β€” the read-only runtime status dashboard (#210), persisted AgentLoop usage artifacts (#223), and opt-in Run Detail chart payloads (#225)
- **@zwrong** β€” the `trace.jsonl` overhaul with zero truncation + offload (#206) and session-id on exit + `resume <session-id>` (#218)
- **@forge-builder** β€” the AI contributor guide (#173) and the OpenClaw MCP research-only smoke-test docs (#165)
- **@skloxo** β€” Chinese (zh-CN) frontend localization (adopted from #217)
- **@LeeCQiang** β€” Chinese docstrings across all 452 Alpha Zoo factors (#180)
- **@KaiLuettmann** β€” GHCR pre-built image publishing on release (#187)
- **@ngoanpv** β€” Gemini `thought_signature` preservation through the AgentLoop dict path (#184)
- **@ShahNewazKhan** β€” Docker host-Ollama reachability via `host.docker.internal` (#196)
- **@sambazhu** β€” frontend sync of completed chat attempts (#236)
- **@bhlt** β€” baostock-native code format support (#230)
- **@octo-patch** β€” MiniMax M3 default model upgrade (#162)

### Lab + community

- **HKUDS** (HKU Data Intelligence Lab) β€” research direction, infrastructure, and the broader Vibe-Trading platform this builds on.
- Everyone who filed issues, reviewed PRs, and stress-tested the framework this cycle.

## Validation before publishing

- **Tests**: `4167 passed` (`pytest agent/tests/`, weasyprint shadow-PDF suite covered on CI).
- **Independent 4-agent adversarial audit** of the release diff (packaging / version-derive / Docker / frontend) β€” all SHIP-OK.
- **Wheel sanity**: `dist/vibe_trading_ai-0.1.10-py3-none-any.whl` built and inspected β€” all 8 new loaders + 3 shared clients, all 18 new data tools, and the `eastmoney` / `sec-edgar` skills (incl. UTF-8 Chinese reference filenames + scripts) present; a fresh-venv `pip install` imports every new loader/tool from site-packages.
- **Version consistency**: package, REST API, MCP server, and Web UI all report `0.1.10`.
- **Frontend**: `tsc -b` + `npm run build` clean.
- **Multi-language READMEs**: English / δΈ­ζ–‡ / ζ—₯本θͺž / ν•œκ΅­μ–΄ / Ψ§Ω„ΨΉΨ±Ψ¨ΩŠΨ© updated with the 0.1.10 news + contributor credits.

**Full Changelog**: https://github.com/HKUDS/Vibe-Trading/compare/v0.1.9...v0.1.10