Release prep for Alpha Zoo v1. Wraps up the 0.1.8 main-branch content so PyPI + ClawHub publish can run from a clean checkout. Version - pyproject.toml: 0.1.7 → 0.1.8 - wiki/docs/content.js: DOCS_DEFAULT_VERSION 0.1.7 → 0.1.8 + 0.1.7 retained in the version dropdown - agent/SKILL.md frontmatter: 0.1.7 → 0.1.8 Packaging - pyproject.toml [tool.setuptools.package-data] adds the new src.factors zoo asset globs (zoo/**/*.yaml, zoo/**/*.md, zoo/**/NOTICE) alongside the existing src and backtest entries - MANIFEST.in adds `recursive-include agent/src/factors *.yaml *.md` and `include NOTICE` CHANGELOG.md (first changelog file in the repo) - Full 0.1.8 entry covering the Alpha Zoo (4 zoos × 452 alphas), Web UI + 4 REST routes, CLI subcommand suite, safety floor (AST purity gate + lookahead test + pytest-socket + grep gates), community governance (CONTRIBUTING + DCO + NOTICE + per-zoo LICENSE.md), and the IC/IR core extraction. - Known limitations subsection: btc-usdt is single-asset; cross- sectional IC needs ≥2 instruments; crypto-majors basket planned for 0.2. - [Unreleased] anchor at top for the next cycle. agent/SKILL.md (ClawHub package descriptor) - Frontmatter description gains Alpha Zoo + 75 skills (was 74) - New `### Alpha Zoo (452 pre-built alphas)` section with the 4-zoo breakdown + CLI / REST / signal-engine entry points - Skill count 74 → 75 wherever it appears - Trademarked-name string intentionally absent (CI gate b enforces) 5 READMEs (EN/ZH/JA/KO/AR) per `docs/alpha-zoo/readme-update-spec.md` - Roadmap: Alpha Zoo `Planned` → `Shipped 0.1.8` with expanded description (452 alphas, 4 zoo sources, CLI + agent + Web UI) - Skill count 74 → 75 (Tool category 10 → 11, `alpha-zoo` added) - Agent tools count 29 → 31 (alpha_zoo_tool, alpha_bench_tool) - Project structure tree: new `factors/` block (base / registry / bench_runner / zoo), new `api/` block (alpha_routes), new top-level `tools/` block (ci_grep_gates.sh). Frontend pages list expanded (AlphaZoo, Correlation, Settings) - Quick Example: second snippet showing `alpha bench` one-liner - New "What You Can Do" row for the bench-a-pre-built-alpha-zoo path - New `<details>` block under Detailed Capabilities listing the 4 zoos + counts + sources + license stance - Examples → Strategy & Backtesting: 3 snippets (bench, list+show, multi-factor compose via ZooSignalEngine.from_zoo) - API Server route table: 4 `/alpha/*` rows (list, get, bench, bench stream SSE) - CLI Reference: alpha subcommand introduced in the top block; single-run examples block extended with 3 alpha commands `### Key Features` 4-card grid (#7) and Demo section (#13) are intentionally NOT touched here — they need layout redesign + new GIFs/screenshots; design notes in docs/alpha-zoo/readme-redesign-7-13.md will be implemented in a follow-up PR. 969 tests pass; CI grep gates green (no yaml.load misuse, no trademarked-name leak, no per-stock-code data in wiki); TypeScript clean on the frontend.
6.1 KiB
6.1 KiB
Changelog
All notable changes to Vibe-Trading are documented in this file. This project adheres to Semantic Versioning.
[Unreleased]
Added
Changed
Fixed
[0.1.8] — 2026-05-17
Added — Alpha Zoo (450+ pre-built quant alphas)
agent/src/factors/— base operators (rank,scale,ts_*,delta,decay_linear,signed_power,safe_div, market-awarevwap) and a registry that AST-extracts metadata from each alpha module without importing it. Lookahead is enforced at the operator level (delta(d>=1)), and registry sanity checks reject+/-infand outputs that are more than 95 % NaN.- 4 zoos shipping 452 alphas total:
- qlib158 (154 alphas) — port of Microsoft Qlib's
Alpha158feature handler under Apache-2.0, with pinned commit SHA per file. - alpha101 (101 alphas) — implementation of Kakushadze (2015) "101 Formulaic Alphas" (arXiv:1601.00991), written from the paper appendix; the relevant trademarked string is intentionally absent.
- gtja191 (191 alphas) — implementation of Guotai Junan's 2014 "191 Short-period Trading Alpha Factors" research report.
- academic (6 factors) — Fama-French 5 + Carhart momentum, shipped as honest price-based proxies (not the canonical FF series).
- qlib158 (154 alphas) — port of Microsoft Qlib's
vibe-trading alpha {list,show,bench,compare,export-manifest}CLI subcommand.showandexport-manifestenforce path-traversal guards.- New agent tools:
AlphaZooTool(browse) andAlphaBenchTool(orchestrator with Jinja2 autoescape + strict CSP HTML report). ZooSignalEngine.from_zoo(...)— composite multi-factor signal engine with cross-sectional standardisation, weighting, and optional top-N / bottom-N long-short conversion.wiki/scripts/build_alpha_library.py— Alpha Library renderer. Readsmanifest.jsonproduced byvibe-trading alpha export-manifestand emits 452 per-alpha HTML pages plus 4 per-zoo overviews, each withscript-src 'none'CSP. The landing page hydrates per-zoo counts fromcontent/index.json.- New blog post: "Which of the 191 GTJA alphas still work in 2026?" with aggregate IC statistics, theme breakdown, and the top alphas that survive eight years of out-of-sample data.
Added — Web UI for Alpha Zoo
- New page at
/alpha-zooin the Vite + React frontend with three views: browse (4 zoo cards + filter bar + paginated table), detail (formula, metadata, collapsible source code), and bench-runner (form → SSE-streamed progress + Alive/Reversed/Dead stat cards + Top-5-by-IR table + by-theme breakdown chart). "Alpha Zoo" nav entry added to the layout. - Four new REST routes in the FastAPI server:
GET /alpha/list— filterable alpha catalogueGET /alpha/{alpha_id}— meta + source codePOST /alpha/bench— kicks off a background bench job and returns ajob_idGET /alpha/bench/{job_id}/stream— Server-Sent Events withprogress,result,done, anderrorevent types. In-memory job state with a 1-hour TTL; no Redis/Celery dependency.
- Bench math is refactored into
agent/src/factors/bench_runner.pyso the CLI driver (agent/scripts/w4a_run_benches.py) and the new API worker share a single implementation.
Added — Safety floor
agent/tests/factors/test_alpha_purity.py— AST allowlist scan over everyzoo/**/*.pymodule (whitelist: pandas, numpy, scipy.*,src.factors.base,__future__,typing,math,dataclasses; banned:os,sys,subprocess,socket,urllib,requests,httpx,pathlib,Path,open,eval,exec,compile,__import__, andgetattr(_, "__*")).agent/tests/factors/test_lookahead.py— sentinel future-row injection on a 300-row synthetic panel; corrupting rows after the probe must leave the probe value unchanged within 1e-9.tools/ci_grep_gates.sh— CI gate that rejectsyaml.load(withoutsafe_load, any trademarked-name leak in shipped artifacts, and any per-stock-code data leak inwiki/**/*.{json,csv,html}.agent/tests/factors/conftest.py— opt-inpytest-socketintegration that hard-fails any test attempting outbound network during the factors test suite.
Added — Community governance
CONTRIBUTING.md— Developer Certificate of Origin sign-off requirement and a contributor checklist for new alpha PRs (purity, lookahead,__alpha_meta__shape, LaTeX-matches-code, per-zoo LICENSE.md, DCO).NOTICE(repo root) — Apache-2.0 attribution for Qlib and a declaration that the bundled formulas from Kakushadze, GTJA, and the academic baselines are mathematical content (paper prose, tables, and figures are not reproduced here).- Per-zoo
LICENSE.mdfor each ofqlib158/,alpha101/,gtja191/, andacademic/, plus an upstreamNOTICEforqlib158/.
Changed
agent/src/tools/factor_analysis_tool.pyextracted its IC/IR and layered-backtest helpers toagent/src/factors/factor_analysis_core.pyso the newalpha_bench_toolreuses the same maths. Public tool signature is unchanged;_compute_ic_seriesand_compute_group_equityremain importable as backward-compatible aliases.agent/cli.pygrew by 7 lines to register thealphasubcommand; all handler logic lives inagent/src/factors/cli_handlers.py.- Packaging:
pyproject.tomlnow shipszoo/**/*.yaml,zoo/**/*.md, andzoo/**/NOTICEas package data;MANIFEST.inrecursively includesagent/src/factors.
Known limitations
- The
btc-usdtuniverse is single-asset; cross-sectional IC requires ≥2 instruments, so the bundledalpha101_btcbench run returns alive/reversed/dead = 0/0/0 by construction. Use a multi-symbol crypto basket (e.g. BTC + ETH + SOL + the top-N perpetuals) for meaningful cross-sectional results; a curatedcrypto-majorsuniverse is planned for 0.2.
Internal
wiki/alpha-library/manifest.jsonandwiki/alpha-library/content/are generated artifacts and gitignored. Runvibe-trading alpha export-manifest --out wiki/alpha-library/manifest.json --forcefollowed bypython wiki/scripts/build_alpha_library.pyto regenerate the static site.