Skip to content

v0.1.6 — Swarm presets packaging fix

Choose a tag to compare

@warren618 warren618 released this 28 Apr 09:49

🚀 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.

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: v0.1.5...v0.1.6

Merged PRs since v0.1.5 (6)
  • #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