v0.1.6
HKUDS/Vibe-Tradingv0.1.6Apr 28, 2026by warren618
AI Summary
A critical packaging fix for swarm presets and community-driven features including benchmark comparison, file upload streaming, and a Futu data loader.
Key Highlights
- Fix for swarm presets packaging bug affecting installed wheels.
- Benchmark comparison panel in backtest output.
- Streaming /upload endpoint with size limits.
- Futu data loader for Hong Kong and A-share equities.
- vnpy CtaTemplate export skill.
New Features
- Swarm presets packaging fix.
- Benchmark comparison panel.
- Streaming /upload endpoint.
- Futu data loader.
- vnpy CtaTemplate export skill.
- AKShare loader fixes.
- Frontend route-level lazy loading.
Full Release Notes
## 🚀 v0.1.6 — Critical packaging fix + community-driven features If you installed `vibe-trading-ai==0.1.5` via `pip install` or `uv tool install`, **`vibe-trading --swarm-presets` returned `No presets available` and `run_swarm` was unusable**. This release fixes that — please upgrade. ```bash pip install -U vibe-trading-ai # or uv tool install --reinstall vibe-trading-ai ``` ## Highlights ### 🐛 Swarm presets packaging fix (#55) Preset YAMLs were declared via `[tool.setuptools.data-files]` in `pyproject.toml`, which lands them under `<install-prefix>/.data/data/config/swarm/` rather than at `<site-packages>/config/swarm/` where the loader looked. Editable installs (`pip install -e .`) happened to work because the source-tree path resolved correctly, so the bug only surfaced in published wheels — every `pip install vibe-trading-ai==0.1.5` was broken on this code path. **Resolution**: 29 preset YAMLs moved into `agent/src/swarm/presets/` so they ship as ordinary `package-data`. Loader now resolves via `Path(__file__).parent / "presets"` — identical under editable installs and built wheels. Pinned by a 6-test packaging regression suite so this can't silently regress again. Bug reported by @qxj — screenshots made it a 5-minute root cause hunt. ### 📊 Benchmark comparison panel Backtest output now ships a benchmark comparison panel (ticker / benchmark return / excess return / information ratio) with yfinance-backed resolution for SPY, CSI 300, and other major indices. Contributed by @MB-Ndhlovu (#48). ### 🛡️ `/upload` streaming + size limits The `/upload` endpoint streams the request body in 1 MB chunks and aborts past `MAX_UPLOAD_SIZE` with partial-file cleanup. The 50 MB cap is now actually enforced under malicious / oversized clients. Pinned by 4 regression tests. Contributed by @genoshide (#53). ### 📈 Futu data loader (HK + A-share) 6th data source — Futu OpenAPI integration for Hong Kong and A-share equities, with broker-grade real-time quotes. Contributed by @hamza-mobeen (#47). ### 🔧 vnpy CtaTemplate export skill 72nd skill — `vnpy-export` generates ready-to-run `CtaTemplate` strategy code for the vnpy backtest framework. Contributed by @hamza-mobeen (#46). ## 0.1.6 maintenance - **Loader**: AKShare loader correctly routes ETFs (`510300.SH`) and forex (`USDCNH`) to the right endpoints with hardened registry fallback - **Workspace**: Relative `run_dir` normalized to active run dir — fixes empty/relative paths in tool calls (#43, @Mothilal-M) - **Security**: Path containment enforced in `safe_path` + sandboxing for journal / shadow account tools - **Build**: `MANIFEST.in` ships `.env.example` / tests / Docker files in sdist - **Frontend**: Route-level lazy loading shrinks initial bundle 688 KB → 262 KB - **Docs**: README usage examples (#45, @hamza-mobeen) - **SKILL manifest**: synced to 22 MCP tools / 72 skills / 6 data sources / 29 swarm presets ## Install / upgrade | Channel | Command | |---|---| | **PyPI** | `pip install -U vibe-trading-ai` | | **uv tool** | `uv tool install --reinstall vibe-trading-ai` | | **ClawHub** (Claude Desktop / OpenClaw) | `clawhub install vibe-trading` | | **Docker** | `docker compose pull && docker compose up -d` | ## By the numbers - 27 agent tools (22 exposed via MCP) - 72 bundled skills (+ user-created via full CRUD) - 6 data sources with auto-fallback: tushare, yfinance, okx, akshare, ccxt, **futu** *(new)* - 29 swarm presets, 7 backtest engines + options portfolio - 13 LLM providers ## 🙌 New contributors Huge thanks to everyone who opened a PR in this cycle — **all 4 are first-time contributions** to Vibe-Trading: - @hamza-mobeen — Futu data loader (#47), vnpy CtaTemplate export skill (#46), README usage examples (#45) — three first-time PRs in one cycle 👏 - @MB-Ndhlovu — backtest benchmark comparison panel (#48) - @genoshide — `/upload` streaming + size limits (#53) - @Mothilal-M — `_normalize_tool_run_dir` workspace fix (#43) Issue reporters who kept the surface area honest: thanks to @qxj for the high-quality #55 reproduction and to @myrassel for the OAuth feature suggestion (#49) we are tracking for a future release. ## Changelog **Full changes**: https://github.com/HKUDS/Vibe-Trading/compare/v0.1.5...v0.1.6 <details> <summary><b>Merged PRs since v0.1.5</b> (6)</summary> - #53 fix: stream uploads while enforcing API size limit — @genoshide - #48 feat(cli): add benchmark comparison to backtest output — @MB-Ndhlovu - #47 feat: add Futu data loader for HK and A-share equities — @hamza-mobeen - #46 feat: add vnpy export skill for CtaTemplate strategies — @hamza-mobeen - #45 docs: add usage examples to README — @hamza-mobeen - #43 feat(loop): add _normalize_tool_run_dir function and corresponding tests — @Mothilal-M </details>