main
11
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
4da7579065 | ci: keep internal documents out of tracked files | ||
|
|
a580b26dfc | Merge PR #1692 into reviewed maintenance batch | ||
|
|
ef75335115 |
fix(loaders): retire mootdx from the default A-share chain and health canary
TDX quote servers stopped answering the client protocol mootdx/tdxpy speak (2026-07, mootdx/mootdx#157): every kline category, market and server returns empty, realtime quotes return zero rows, and get_k_data dies on a KeyError inside mootdx. Upstream has been dormant since 2024, and the weekly health lane has been red on mootdx since it started. Each auto-mode fetch still spent ~9.5s inside mootdx before falling through to eastmoney, so the dead slot was pure latency tax on every A-share call. Drop mootdx from FALLBACK_CHAINS["a_share"] and from the canary set (tracked under EXCLUDED_PUBLIC_SOURCES with the upstream issue as the reason). The loader stays registered: explicit source="mootdx" calls keep working if a compatible fork ever restores the protocol. Docs (en/zh/ja/ko/es/ar/id), tool schema hints, env examples and the data-routing/mootdx skills updated to match. Closes #1729 Signed-off-by: Yufeng He <40085740+he-yufeng@users.noreply.github.com> |
||
|
|
3c00cc4908 |
build(deps): bump the pip-minor-patch group across 1 directory with 47 updates
Bumps the pip-minor-patch group with 47 updates in the / directory: | Package | From | To | | --- | --- | --- | | [langchain](https://github.com/langchain-ai/langchain) | `1.3.18` | `1.4.3` | | [langchain-core](https://github.com/langchain-ai/langchain) | `1.6.1` | `1.6.6` | | [langchain-openai](https://github.com/langchain-ai/langchain) | `1.6.0` | `1.6.7` | | [langgraph](https://github.com/langchain-ai/langgraph) | `1.2.11` | `1.2.12` | | [duckdb](https://github.com/duckdb/duckdb-python) | `1.5.5` | `1.5.6` | | [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.9.0` | `1.9.1` | | [joblib](https://github.com/joblib/joblib) | `1.5.3` | `1.6.0` | | [akshare](https://github.com/akfamily/akshare) | `1.18.94` | `1.19.1` | | [ccxt](https://github.com/ccxt/ccxt) | `4.5.76` | `4.5.84` | | [cryptography](https://github.com/pyca/cryptography) | `50.0.1` | `50.0.2` | | [fastapi](https://github.com/fastapi/fastapi) | `0.141.1` | `0.142.2` | | [uvicorn](https://github.com/Kludex/uvicorn) | `0.52.4` | `0.54.0` | | [sse-starlette](https://github.com/sysid/sse-starlette) | `3.4.8` | `3.5.0` | | [matplotlib](https://github.com/matplotlib/matplotlib) | `3.11.1` | `3.11.2` | | [pyjwt](https://github.com/jpadilla/pyjwt) | `2.13.0` | `2.15.1` | | [baostock](http://www.baostock.com) | `0.9.3` | `0.9.4` | | [anyio](https://github.com/agronholm/anyio) | `4.14.2` | `4.15.1` | | [authlib](https://github.com/authlib/authlib) | `1.7.2` | `1.8.0` | | [cachetools](https://github.com/tkem/cachetools) | `7.1.7` | `7.2.0` | | [caio](https://github.com/mosquito/caio) | `0.12.2` | `0.12.9` | | [cssselect2](https://github.com/Kozea/cssselect2) | `0.9.0` | `0.10.1` | | [curl-cffi](https://github.com/lexiforest/curl_cffi) | `0.16.2` | `0.16.3` | | [fonttools](https://github.com/fonttools/fonttools) | `4.63.0` | `4.66.1` | | griffelib | `2.2.0` | `2.3.0` | | [jiter](https://github.com/pydantic/jiter) | `0.16.0` | `0.17.0` | | [langgraph-sdk](https://github.com/langchain-ai/langgraph) | `0.4.4` | `0.4.5` | | [langsmith](https://github.com/langchain-ai/langsmith-sdk) | `0.11.2` | `0.14.2` | | [lxml](https://github.com/lxml/lxml) | `6.1.2` | `6.1.3` | | [narwhals](https://github.com/narwhals-dev/narwhals) | `2.25.0` | `2.26.0` | | [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.44.0` | `1.45.0` | | [peewee](https://github.com/coleifer/peewee) | `4.4.0` | `4.5.2` | | [platformdirs](https://github.com/tox-dev/platformdirs) | `4.11.5` | `4.12.2` | | [protobuf](https://developers.google.com/protocol-buffers/) | `7.36.0` | `7.36.2` | | py-key-value-aio | `0.4.5` | `0.4.6` | | [pyparsing](https://github.com/pyparsing/pyparsing) | `3.3.2` | `3.3.3` | | [pytz](https://github.com/stub42/pytz) | `2026.3.post1` | `2026.4` | | [regex](https://github.com/mrabarnett/mrab-regex) | `2026.7.19` | `2026.9.29` | | [rich-rst](https://github.com/wasi-master/rich-rst) | `2.1.0` | `2.2.0` | | [soupsieve](https://github.com/facelessuser/soupsieve) | `2.9.2` | `2.10` | | [starlette](https://github.com/Kludex/starlette) | `1.6.0` | `1.7.0` | | [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.6.0` | `3.7.0` | | [tqdm](https://github.com/tqdm/tqdm) | `4.70.0` | `4.70.1` | | [tzdata](https://github.com/python/tzdata) | `2026.3` | `2026.4` | | [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.2.0` | `1.3.0` | | [wcwidth](https://github.com/jquast/wcwidth) | `0.8.3` | `0.9.1` | | [websocket-client](https://github.com/websocket-client/websocket-client) | `1.9.1` | `1.9.2` | | [yarl](https://github.com/aio-libs/yarl) | `1.24.5` | `1.25.1` | Updates `langchain` from 1.3.18 to 1.4.3 - [Release notes](https://github.com/langchain-ai/langchain/releases) - [Commits](https://github.com/langchain-ai/langchain/compare/langchain==1.3.18...langchain==1.4.3) Updates `langchain-core` from 1.6.1 to 1.6.6 - [Release notes](https://github.com/langchain-ai/langchain/releases) - [Commits](https://github.com/langchain-ai/langchain/compare/langchain-core==1.6.1...langchain-core==1.6.6) Updates `langchain-openai` from 1.6.0 to 1.6.7 - [Release notes](https://github.com/langchain-ai/langchain/releases) - [Commits](https://github.com/langchain-ai/langchain/compare/langchain-openai==1.6.0...langchain-openai==1.6.7) Updates `langgraph` from 1.2.11 to 1.2.12 - [Release notes](https://github.com/langchain-ai/langgraph/releases) - [Commits](https://github.com/langchain-ai/langgraph/compare/1.2.11...1.2.12) Updates `duckdb` from 1.5.5 to 1.5.6 - [Release notes](https://github.com/duckdb/duckdb-python/releases) - [Commits](https://github.com/duckdb/duckdb-python/compare/v1.5.5...v1.5.6) Updates `scikit-learn` from 1.9.0 to 1.9.1 - [Release notes](https://github.com/scikit-learn/scikit-learn/releases) - [Commits](https://github.com/scikit-learn/scikit-learn/compare/1.9.0...1.9.1) Updates `joblib` from 1.5.3 to 1.6.0 - [Release notes](https://github.com/joblib/joblib/releases) - [Changelog](https://github.com/joblib/joblib/blob/main/CHANGES.rst) - [Commits](https://github.com/joblib/joblib/compare/1.5.3...1.6.0) Updates `akshare` from 1.18.94 to 1.19.1 - [Release notes](https://github.com/akfamily/akshare/releases) - [Changelog](https://github.com/akfamily/akshare/blob/main/docs/changelog.md) - [Commits](https://github.com/akfamily/akshare/compare/release-v1.18.94...release-v1.19.1) Updates `ccxt` from 4.5.76 to 4.5.84 - [Release notes](https://github.com/ccxt/ccxt/releases) - [Commits](https://github.com/ccxt/ccxt/compare/v4.5.76...v4.5.84) Updates `cryptography` from 50.0.1 to 50.0.2 - [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pyca/cryptography/compare/50.0.1...50.0.2) Updates `fastapi` from 0.141.1 to 0.142.2 - [Release notes](https://github.com/fastapi/fastapi/releases) - [Commits](https://github.com/fastapi/fastapi/compare/0.141.1...0.142.2) Updates `uvicorn` from 0.52.4 to 0.54.0 - [Release notes](https://github.com/Kludex/uvicorn/releases) - [Changelog](https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md) - [Commits](https://github.com/Kludex/uvicorn/compare/0.52.4...0.54.0) Updates `sse-starlette` from 3.4.8 to 3.5.0 - [Release notes](https://github.com/sysid/sse-starlette/releases) - [Commits](https://github.com/sysid/sse-starlette/compare/v3.4.8...v3.5.0) Updates `matplotlib` from 3.11.1 to 3.11.2 - [Release notes](https://github.com/matplotlib/matplotlib/releases) - [Commits](https://github.com/matplotlib/matplotlib/compare/v3.11.1...v3.11.2) Updates `pyjwt` from 2.13.0 to 2.15.1 - [Release notes](https://github.com/jpadilla/pyjwt/releases) - [Changelog](https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst) - [Commits](https://github.com/jpadilla/pyjwt/compare/2.13.0...2.15.1) Updates `baostock` from 0.9.3 to 0.9.4 Updates `anyio` from 4.14.2 to 4.15.1 - [Release notes](https://github.com/agronholm/anyio/releases) - [Commits](https://github.com/agronholm/anyio/compare/4.14.2...4.15.1) Updates `authlib` from 1.7.2 to 1.8.0 - [Release notes](https://github.com/authlib/authlib/releases) - [Commits](https://github.com/authlib/authlib/compare/v1.7.2...v1.8.0) Updates `cachetools` from 7.1.7 to 7.2.0 - [Changelog](https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst) - [Commits](https://github.com/tkem/cachetools/compare/v7.1.7...v7.2.0) Updates `caio` from 0.12.2 to 0.12.9 - [Release notes](https://github.com/mosquito/caio/releases) - [Commits](https://github.com/mosquito/caio/compare/0.12.2...0.12.9) Updates `cssselect2` from 0.9.0 to 0.10.1 - [Release notes](https://github.com/Kozea/cssselect2/releases) - [Changelog](https://github.com/Kozea/cssselect2/blob/main/docs/changelog.rst) - [Commits](https://github.com/Kozea/cssselect2/compare/0.9.0...0.10.1) Updates `curl-cffi` from 0.16.2 to 0.16.3 - [Release notes](https://github.com/lexiforest/curl_cffi/releases) - [Changelog](https://github.com/lexiforest/curl_cffi/blob/main/docs/changelog.rst) - [Commits](https://github.com/lexiforest/curl_cffi/compare/v0.16.2...v0.16.3) Updates `fonttools` from 4.63.0 to 4.66.1 - [Release notes](https://github.com/fonttools/fonttools/releases) - [Changelog](https://github.com/fonttools/fonttools/blob/main/NEWS.rst) - [Commits](https://github.com/fonttools/fonttools/compare/4.63.0...4.66.1) Updates `griffelib` from 2.2.0 to 2.3.0 Updates `jiter` from 0.16.0 to 0.17.0 - [Release notes](https://github.com/pydantic/jiter/releases) - [Commits](https://github.com/pydantic/jiter/compare/v0.16.0...v0.17.0) Updates `langgraph-sdk` from 0.4.4 to 0.4.5 - [Release notes](https://github.com/langchain-ai/langgraph/releases) - [Commits](https://github.com/langchain-ai/langgraph/compare/0.4.4...0.4.5) Updates `langsmith` from 0.11.2 to 0.14.2 - [Release notes](https://github.com/langchain-ai/langsmith-sdk/releases) - [Commits](https://github.com/langchain-ai/langsmith-sdk/compare/v0.11.2...v0.14.2) Updates `lxml` from 6.1.2 to 6.1.3 - [Release notes](https://github.com/lxml/lxml/releases) - [Changelog](https://github.com/lxml/lxml/blob/master/CHANGES.txt) - [Commits](https://github.com/lxml/lxml/compare/lxml-6.1.2...lxml-6.1.3) Updates `narwhals` from 2.25.0 to 2.26.0 - [Release notes](https://github.com/narwhals-dev/narwhals/releases) - [Commits](https://github.com/narwhals-dev/narwhals/compare/v2.25.0...v2.26.0) Updates `opentelemetry-api` from 1.44.0 to 1.45.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-python/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-python/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-python/compare/v1.44.0...v1.45.0) Updates `peewee` from 4.4.0 to 4.5.2 - [Release notes](https://github.com/coleifer/peewee/releases) - [Changelog](https://github.com/coleifer/peewee/blob/master/CHANGELOG.md) - [Commits](https://github.com/coleifer/peewee/compare/4.4.0...4.5.2) Updates `platformdirs` from 4.11.5 to 4.12.2 - [Release notes](https://github.com/tox-dev/platformdirs/releases) - [Changelog](https://github.com/tox-dev/platformdirs/blob/main/docs/changelog.rst) - [Commits](https://github.com/tox-dev/platformdirs/compare/4.11.5...4.12.2) Updates `protobuf` from 7.36.0 to 7.36.2 Updates `py-key-value-aio` from 0.4.5 to 0.4.6 Updates `pyparsing` from 3.3.2 to 3.3.3 - [Release notes](https://github.com/pyparsing/pyparsing/releases) - [Changelog](https://github.com/pyparsing/pyparsing/blob/master/CHANGES) - [Commits](https://github.com/pyparsing/pyparsing/compare/3.3.2...3.3.3) Updates `pytz` from 2026.3.post1 to 2026.4 - [Release notes](https://github.com/stub42/pytz/releases) - [Commits](https://github.com/stub42/pytz/compare/release_2026.3.post1...release_2026.4) Updates `regex` from 2026.7.19 to 2026.9.29 - [Changelog](https://github.com/mrabarnett/mrab-regex/blob/hg/changelog.txt) - [Commits](https://github.com/mrabarnett/mrab-regex/compare/2026.7.19...2026.9.29) Updates `rich-rst` from 2.1.0 to 2.2.0 - [Release notes](https://github.com/wasi-master/rich-rst/releases) - [Changelog](https://github.com/wasi-master/rich-rst/blob/main/CHANGELOG.md) - [Commits](https://github.com/wasi-master/rich-rst/compare/v2.1.0...v2.2.0) Updates `soupsieve` from 2.9.2 to 2.10 - [Release notes](https://github.com/facelessuser/soupsieve/releases) - [Commits](https://github.com/facelessuser/soupsieve/compare/2.9.2...2.10) Updates `starlette` from 1.6.0 to 1.7.0 - [Release notes](https://github.com/Kludex/starlette/releases) - [Changelog](https://github.com/Kludex/starlette/blob/main/docs/release-notes.md) - [Commits](https://github.com/Kludex/starlette/compare/1.6.0...1.7.0) Updates `threadpoolctl` from 3.6.0 to 3.7.0 - [Release notes](https://github.com/joblib/threadpoolctl/releases) - [Changelog](https://github.com/joblib/threadpoolctl/blob/master/CHANGES.md) - [Commits](https://github.com/joblib/threadpoolctl/compare/3.6.0...3.7.0) Updates `tqdm` from 4.70.0 to 4.70.1 - [Release notes](https://github.com/tqdm/tqdm/releases) - [Commits](https://github.com/tqdm/tqdm/compare/v4.70.0...v4.70.1) Updates `tzdata` from 2026.3 to 2026.4 - [Release notes](https://github.com/python/tzdata/releases) - [Changelog](https://github.com/python/tzdata/blob/master/NEWS.md) - [Commits](https://github.com/python/tzdata/compare/2026.3...2026.4) Updates `watchfiles` from 1.2.0 to 1.3.0 - [Release notes](https://github.com/samuelcolvin/watchfiles/releases) - [Commits](https://github.com/samuelcolvin/watchfiles/compare/v1.2.0...v1.3.0) Updates `wcwidth` from 0.8.3 to 0.9.1 - [Release notes](https://github.com/jquast/wcwidth/releases) - [Changelog](https://github.com/jquast/wcwidth/blob/master/docs/history.rst) - [Commits](https://github.com/jquast/wcwidth/compare/0.8.3...0.9.1) Updates `websocket-client` from 1.9.1 to 1.9.2 - [Release notes](https://github.com/websocket-client/websocket-client/releases) - [Changelog](https://github.com/websocket-client/websocket-client/blob/master/ChangeLog) - [Commits](https://github.com/websocket-client/websocket-client/compare/v1.9.1...v1.9.2) Updates `yarl` from 1.24.5 to 1.25.1 - [Release notes](https://github.com/aio-libs/yarl/releases) - [Changelog](https://github.com/aio-libs/yarl/blob/master/CHANGES.rst) - [Commits](https://github.com/aio-libs/yarl/compare/v1.24.5...v1.25.1) --- updated-dependencies: - dependency-name: langchain dependency-version: 1.4.3 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-minor-patch - dependency-name: langchain-core dependency-version: 1.6.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-minor-patch - dependency-name: langchain-openai dependency-version: 1.6.7 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-minor-patch - dependency-name: langgraph dependency-version: 1.2.12 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-minor-patch - dependency-name: duckdb dependency-version: 1.5.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-minor-patch - dependency-name: scikit-learn dependency-version: 1.9.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-minor-patch - dependency-name: joblib dependency-version: 1.6.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-minor-patch - dependency-name: akshare dependency-version: 1.19.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-minor-patch - dependency-name: ccxt dependency-version: 4.5.84 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-minor-patch - dependency-name: cryptography dependency-version: 50.0.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-minor-patch - dependency-name: fastapi dependency-version: 0.142.2 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-minor-patch - dependency-name: uvicorn dependency-version: 0.54.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-minor-patch - dependency-name: sse-starlette dependency-version: 3.5.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-minor-patch - dependency-name: matplotlib dependency-version: 3.11.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-minor-patch - dependency-name: pyjwt dependency-version: 2.15.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-minor-patch - dependency-name: baostock dependency-version: 0.9.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-minor-patch - dependency-name: anyio dependency-version: 4.15.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-minor-patch - dependency-name: authlib dependency-version: 1.8.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-minor-patch - dependency-name: cachetools dependency-version: 7.2.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-minor-patch - dependency-name: caio dependency-version: 0.12.9 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-minor-patch - dependency-name: cssselect2 dependency-version: 0.10.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-minor-patch - dependency-name: curl-cffi dependency-version: 0.16.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-minor-patch - dependency-name: fonttools dependency-version: 4.66.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-minor-patch - dependency-name: griffelib dependency-version: 2.3.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-minor-patch - dependency-name: jiter dependency-version: 0.17.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-minor-patch - dependency-name: langgraph-sdk dependency-version: 0.4.5 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-minor-patch - dependency-name: langsmith dependency-version: 0.14.2 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-minor-patch - dependency-name: lxml dependency-version: 6.1.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-minor-patch - dependency-name: narwhals dependency-version: 2.26.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-minor-patch - dependency-name: opentelemetry-api dependency-version: 1.45.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-minor-patch - dependency-name: peewee dependency-version: 4.5.2 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-minor-patch - dependency-name: platformdirs dependency-version: 4.12.2 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-minor-patch - dependency-name: protobuf dependency-version: 7.36.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-minor-patch - dependency-name: py-key-value-aio dependency-version: 0.4.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-minor-patch - dependency-name: pyparsing dependency-version: 3.3.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-minor-patch - dependency-name: pytz dependency-version: '2026.4' dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-minor-patch - dependency-name: regex dependency-version: 2026.9.29 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-minor-patch - dependency-name: rich-rst dependency-version: 2.2.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-minor-patch - dependency-name: soupsieve dependency-version: '2.10' dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-minor-patch - dependency-name: starlette dependency-version: 1.7.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-minor-patch - dependency-name: threadpoolctl dependency-version: 3.7.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-minor-patch - dependency-name: tqdm dependency-version: 4.70.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-minor-patch - dependency-name: tzdata dependency-version: '2026.4' dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-minor-patch - dependency-name: watchfiles dependency-version: 1.3.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-minor-patch - dependency-name: wcwidth dependency-version: 0.9.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-minor-patch - dependency-name: websocket-client dependency-version: 1.9.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: pip-minor-patch - dependency-name: yarl dependency-version: 1.25.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: pip-minor-patch ... Signed-off-by: dependabot[bot] <support@github.com> |
||
|
|
aac03fa64d |
fix: complete eight user blocker fixes and report delivery
Upgrade historical CJK session indexes, preserve explicit swarm durations, resolve authorized filesystem aliases and keep replayed results through all compaction layers. Render and deliver genuine PDFs with an embedded OFL font, authenticated downloads and verified IM attachments. Preserve actual price adjustment in cache v8 and fail closed on invalid SDK holdings. Signed-off-by: Haozhe Wu <haozhe_wu@connect.hku.hk> |
||
|
|
dec2c0e6b8 |
fix: complete September 28 reliability reviews and broker documentation
Bound BaoStock messages and serialize SDK sessions; verify Copilot credential lookup expiry without changing the SDK's per-call credential resolution. Run public-loader health checks in isolated, credential-free processes and a separate dependency environment, with explicit failure reports and a weekly workflow. Render broker capabilities per profile and document verification requirements. Update September 28 News in all seven README languages. Closes #1626 Closes #1623 Closes #1617 Closes #1492 |
||
|
|
0b05671be1 |
fix(tests): confine os patches to the module under test
`some_module.os` is the shared os module, so patching an attribute through it installs the replacement for every importer in the process. That is held together only by teardown ordering, which a test does not control: any pytest_runtest_ hook touching the filesystem runs before fixture finalizers, meets the replacement, and -- when the replacement raises, as most of these do -- takes the teardown chain with it, after which the undo never happens. One such test produced ~3000 cascading errors from ~40% of a run onward. All 14 sites now go through patch_module_os, which swaps the module's reference rather than the module's contents, and a grep gate keeps the pattern from coming back. Closes #1123 |
||
|
|
8c2fd3e127 |
fix: complete env-var migration — CI gate exit 0, 9 schema fields, noqa mechanism
- Add 9 missing env vars to EnvConfig schema (QVERIS_API_KEY, VIBE_TRADING_API_URL, OPENAI_MODEL, FUTU_TRADE_PWD_MD5, etc.) - Migrate 26 os.getenv calls to get_env_config() accessor across 17 files - Add # noqa: env-gate inline suppression to ci_env_var_gate.py (21 lines) - Refactor security.py _env_flag_enabled to direct schema access - Wire CI gate into .github/workflows/test.yml - Fix api_server.py import of deleted constants - Restore _legacy.py timeout positive-value validation - Add reset_env_config() to test_security_auth_api.py for singleton freshness CI gate: exit 0 (was exit 1 with 54 violations) Tests: 4953 passed, 4 pre-existing tushare failures, 0 regressions Co-Authored-By: OpenCode <noreply@opencode.ai> AI-Model: qwen3.7-max Co-Authored-By: opencode <noreply@ai-tool.com> Co-Authored-By: Claude Code <noreply@anthropic.com> AI-Contributed/Feature: 188/188 AI-Contributed/UT: 39/39 |
||
|
|
8234058562 |
refactor: centralize environment variable management with Pydantic schema + CI gate
- Add agent/src/config/env_schema.py: Pydantic models for ~50 env vars across 6 sub-models (LLMConfig, DataConfig, APIConfig, SwarmConfig, AgentTuningConfig, PathConfig)
- Add agent/src/config/accessor.py: thread-safe lazy singleton get_env_config() + unified _parse_bool() + reset_env_config() for test isolation
- Fix TIMEOUT_SECONDS CLI display default (2400 -> 120, matching runtime)
- Fix MAX_RETRIES CLI display default ('(not set)' -> 2, matching runtime)
- Fix VIBE_TRADING_API_KEY server-side alias (security.py now resolves it via get_env_config().api.api_auth_key)
- Fix VIBE_TRADING_CHANNELS_AUTO_START=on silently ignored (unified _parse_bool accepts 'on')
- Migrate 207 scattered os.getenv/os.environ.get calls across 50+ files to centralized accessor
- Convert 12 module-level import-time fixations to lazy accessor pattern (loop.py, swarm_tool.py, _backend.py, worker.py, security.py)
- Add reset_env_config() calls after settings_routes.py env mutations (13 mutation points)
- Replace print('[WARN]...') with logger.warning() in tushare/okx/yfinance loaders
- Add tools/ci_env_var_gate.py: AST-based CI gate preventing new os.getenv calls outside src/config/
- Add tools/test_ci_env_var_gate.py: 18 test cases for the CI gate
- Update tools/ci_grep_gates.sh to call the new env var gate
- Add agent/tests/test_env_schema.py: 81 test cases covering defaults, type coercion, singleton, thread safety, bool parser
- Update agent/.env.example with schema cross-references
- Update agent/tests/conftest.py with reset_env_config autouse fixture
Closes HKUDS/Vibe-Trading#438
Co-Authored-By: OpenCode <noreply@opencode.ai>
AI-Model: alibaba-cn/glm-5.2
Signed-off-by: shadowinlife <shadowinlife@gmail.com>
Co-Authored-By: opencode <noreply@ai-tool.com>
Co-Authored-By: Claude Code <noreply@anthropic.com>
AI-Contributed/Feature: 1383/1383
AI-Contributed/UT: 735/735
|
||
|
|
5084e03fd6 | Use timezone-aware UTC timestamps | ||
|
|
1676eaa328 |
feat(factors): Alpha Zoo framework — registry, operators, safety gates
New module agent/src/factors/ providing the foundation for the Alpha
Zoo:
- base.py: 19 cross-sectional + time-series operators on wide
pd.DataFrame panels (rank/scale/ts_*/delta/decay_linear/signed_power/
safe_div + market-aware vwap). NaN propagates strictly; delta(d>=1)
enforced at the operator layer; no negative shifts allowed.
- registry.py: AST-extracts __alpha_meta__ from each zoo .py module
without importing it; pydantic AlphaMeta (extra="forbid",
frozen=True). Lazy importlib.import_module on compute(); filesystem-
loader fallback for plugin/test trees. Sanity gates reject +/-inf,
NaN ratio > 95%, and shape mismatches.
- factor_analysis_core.py: IC/IR + layered backtest math extracted
from agent/src/tools/factor_analysis_tool.py so it's reusable from
CLI, bench tool, and API.
- bench_runner.py: per-alpha compute → IC vs forward return →
alive/reversed/dead categorisation (mean IC > 0.02, pos_ratio >=
0.55, |t-stat| > 2). Shared by CLI driver and API worker.
Multi-factor skill gains a panel-style ZooSignalEngine.from_zoo()
factory (cross-sectional standardisation + weighting + optional
top-N / bottom-N long-short conversion). The legacy per-symbol
example_signal_engine.py is left untouched. SKILL.md edits in
multi-factor and factor-research cross-reference the new zoo.
Safety floor:
- test_alpha_purity.py: AST allowlist scan of every zoo/**/*.py
module. Allowed imports: pandas, numpy, scipy.*, src.factors.base,
__future__, typing, math, dataclasses. Banned names: os/sys/
subprocess/socket/urllib/requests/httpx/pathlib/Path/open/eval/exec/
compile/__import__, plus dunder-access via getattr(_, "__*"),
breakpoint, input, help, memoryview, globals, locals, vars, and
the __class__/__bases__/__mro__/__globals__/__builtins__ chain.
Module-level statements limited to docstring + imports + functions
+ ALPHA_ID/__alpha_meta__ assignments with literal RHS.
- test_lookahead.py: 300-row synthetic panel; corrupt rows >= 270;
assert factor at probe row 260 unchanged within 1e-9.
- test_base.py + test_registry.py + conftest.py with opt-in
pytest-socket integration that hard-fails outbound network during
the factors test suite.
- tools/ci_grep_gates.sh: rejects yaml.load( without safe_load,
any trademarked-name leak in shipped artifacts, and any per-stock-
code data leak in wiki/**/*.{json,csv,html}.
Governance:
- CONTRIBUTING.md with the Developer Certificate of Origin trailer
for community PRs and the alpha PR reviewer checklist.
- NOTICE at the repo root with Apache-2.0 attribution for the
upstream qlib NOTICE and the formulas-as-mathematical-content
stance for Kakushadze / GTJA / Fama-French sources.
|