Commit Graph
77 Commits
Author SHA1 Message Date
TIANHE cb2aa5c384 v5.0.4
Signed-off-by: TIANHE <TIANHE@GMAIL.COM>
2026-07-19 18:22:05 +08:00
TIANHE 88e19267eb release: finalize v5.0.1 backend 2026-07-18 14:59:18 +08:00
TIANHE a87ee6192f feat: harden backend contracts observability and delivery 2026-07-13 15:42:50 +08:00
TIANHE 90e60ffdea feat: split backend runtimes and add durable task workers 2026-07-13 03:47:59 +08:00
TIANHE e7e5064189 feat: prepare v5.0.1 beta backend 2026-07-13 02:44:50 +08:00
TIANHE ee1ae2031b v4.0.7
Signed-off-by: TIANHE <TIANHE@GMAIL.COM>
2026-07-01 03:00:21 +08:00
TIANHE e34de3f8bd v4.0.7
Signed-off-by: TIANHE <TIANHE@GMAIL.COM>
2026-06-30 14:10:15 +08:00
Dinger e27b7fbaca v4.0.4
Signed-off-by: Dinger <quantdinger@gmail.com>
2026-06-29 03:58:28 +08:00
Dinger d6988cf108 v4.0.3
Signed-off-by: Dinger <quantdinger@gmail.com>
2026-06-28 17:28:58 +08:00
TIANHE 8b8429b7b8 v4.0.2
Signed-off-by: TIANHE <TIANHE@GMAIL.COM>
2026-06-22 02:38:39 +08:00
TIANHE 870be67ce7 v4.0.1
Signed-off-by: TIANHE <TIANHE@GMAIL.COM>
2026-06-19 17:22:24 +08:00
TIANHE 234224a776 v4.0.1
Signed-off-by: TIANHE <TIANHE@GMAIL.COM>
2026-06-19 02:49:33 +08:00
TIANHE 11f7079716 v4.0.1
Signed-off-by: TIANHE <TIANHE@GMAIL.COM>
2026-06-18 04:37:54 +08:00
TIANHE 860b5848bd v4.0.1
Signed-off-by: TIANHE <TIANHE@GMAIL.COM>
2026-06-17 02:38:29 +08:00
Dinger d28126c60d chore: prepare v4.0.1 beta backend 2026-06-16 20:17:41 +08:00
Dinger c435e1eeb6 v3.0.31
Signed-off-by: Dinger <quantdinger@gmail.com>
2026-06-06 20:17:54 +08:00
Dinger 5762fdce75 v3.0.24
Signed-off-by: Dinger <quantdinger@gmail.com>
2026-06-01 18:17:15 +08:00
Dinger a1a51e9afc v3.0.22
Signed-off-by: Dinger <quantdinger@gmail.com>
2026-05-31 23:39:35 +08:00
Dinger 9a35adec2b v3.0.21
Signed-off-by: Dinger <quantdinger@gmail.com>
2026-05-31 00:08:25 +08:00
Dinger 7e2bc43152 v3.0.14
Signed-off-by: Dinger <quantdinger@gmail.com>
2026-05-25 19:59:33 +08:00
Dinger b9ba06329f v3.0.14
Signed-off-by: Dinger <quantdinger@gmail.com>
2026-05-25 19:25:56 +08:00
hang666 e64b8e0fee refactor(versioning): drop BRAND_APP_VERSION env, source version only from _version.py
Brand-config now exposes APP_VERSION directly. Removes the BRAND_APP_VERSION
env var, settings schema entry, env.example line, and the related bump/check
script targets.
2026-05-19 23:07:27 +08:00
hang666 34ac297389 chore(versioning): centralise version in VERSION file + add bump/check scripts
- Add repo-root VERSION as single source of truth (3.0.11).
- Mirror it via backend_api_python/app/_version.py; settings.py now imports
  APP_VERSION instead of hardcoding "3.0.9" in two places.
- scripts/bump_version.py rewrites VERSION + _version.py + env.example
  in one command.
- scripts/check_version.py verifies declarations match VERSION; wired into
  basic-ci.yml as a `version-check` job that fails PRs on drift.
- Switch all 7 README shields.io version badges to the dynamic
  `/github/v/release/<owner>/<repo>` endpoint so they auto-track GitHub
  Releases without needing the bump script.
2026-05-19 18:18:35 +08:00
DingerandCursor da8636cf7d docs(env): clarify PROXY_URL required for CCXT in Docker/CN
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-17 17:16:07 +08:00
DingerandCursor 6b779f2f15 fix(config): default CCXT market data exchange to binance
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-17 17:14:59 +08:00
DingerandCursor f475759c29 chore(deploy): pin default frontend GHCR image to 3.0.10
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-17 16:01:10 +08:00
Dinger 67a123a933 v3.0.9
Signed-off-by: Dinger <quantdinger@gmail.com>
2026-05-16 21:26:16 +08:00
Dinger dce93f1c84 v3.0.8
Signed-off-by: Dinger <quantdinger@gmail.com>
2026-05-16 15:37:30 +08:00
Dinger dd500be202 v3.0.7
Signed-off-by: Dinger <quantdinger@gmail.com>
2026-05-15 21:40:52 +08:00
Dinger 4c2960bf73 v3.0.6
Signed-off-by: Dinger <quantdinger@gmail.com>
2026-05-14 18:01:16 +08:00
Dinger 0bc58d04ea v3.0.6
Signed-off-by: Dinger <quantdinger@gmail.com>
2026-05-14 17:06:50 +08:00
Dinger 67cc662b45 v3.0.5
Signed-off-by: Dinger <quantdinger@gmail.com>
2026-05-14 02:24:17 +08:00
Dinger 9902edff2e v3.0.5
Signed-off-by: Dinger <quantdinger@gmail.com>
2026-05-14 00:01:10 +08:00
Dinger 7d029a5789 v3.0.5
Signed-off-by: Dinger <quantdinger@gmail.com>
2026-05-13 22:44:49 +08:00
Dinger 11e0139e2a v3.0.5
Signed-off-by: Dinger <quantdinger@gmail.com>
2026-05-13 14:12:38 +08:00
Dinger 16588529a3 Merge PR #101: Alpaca Markets adapter (stocks + ETFs + crypto, paper/live) 2026-05-12 21:26:21 +08:00
Dinger 9cbec4f096 v3.0.4
Signed-off-by: Dinger <quantdinger@gmail.com>
2026-05-12 17:03:36 +08:00
VicJayandClaude Opus 4.7 160cc6c00f feat(broker): add Alpaca Markets adapter for US stocks, ETFs, and crypto
Mirrors the existing ibkr_trading/ module structure for consistency.
Alpaca complements IBKR for users who prefer:
- Zero commission on stocks/ETFs/crypto
- Stateless REST auth (no TWS/Gateway process to run)
- Unified client for stocks AND crypto
- Built-in paper trading at paper-api.alpaca.markets

What's included:
- backend_api_python/app/services/alpaca_trading/
  - __init__.py, client.py, symbols.py, README.md
  - AlpacaClient mirrors IBKRClient surface (connect, place_market_order,
    place_limit_order, cancel_order, get_account_summary, get_positions,
    get_open_orders, get_quote, get_connection_status)
  - Uses alpaca-py SDK (added to requirements.txt)
- backend_api_python/app/routes/alpaca.py
  - Endpoints mirror routes/ibkr.py: /status, /connect, /disconnect,
    /account, /positions, /orders, /order (POST + DELETE), /quote/<symbol>
- backend_api_python/app/routes/__init__.py
  - Registers alpaca_bp at /api/alpaca
- backend_api_python/env.example
  - ALPACA_API_KEY, ALPACA_SECRET_KEY, ALPACA_PAPER vars added

Tested locally against Alpaca paper account: round-trip BUY/SELL 1 SPY
filled in 5 seconds, $0.04 slippage cost, no commission.

Known gaps (planned for follow-up PRs):
- No bracket / stop / stop-limit order types yet
- No historical bar fetching helpers
- No WebSocket streaming
- No options trading

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 14:42:46 -07:00
Dinger be615f65ab safe
Signed-off-by: Dinger <quantdinger@gmail.com>
2026-05-08 20:45:29 +08:00
Dinger 12d7fbfc9e v3.0.3
Signed-off-by: Dinger <quantdinger@gmail.com>
2026-05-07 17:01:53 +08:00
Dinger ec81c74ea3 v3.0.3
Signed-off-by: Dinger <quantdinger@gmail.com>
2026-05-04 12:36:01 +08:00
Dinger 7426138fe5 mcp
Signed-off-by: Dinger <quantdinger@gmail.com>
2026-05-02 16:15:30 +08:00
Dinger cecbe3ddb0 v3.0.3
Signed-off-by: Dinger <quantdinger@gmail.com>
2026-05-02 15:35:55 +08:00
dinger 0f5b09ae74 fix: demo flags for exchange test, strategy start errors, STRATEGY_MAX_THREADS docs
- Merge root-level demo/testnet/base_url into exchange_config for test-connection.
- Centralize exchange_demo_mode_enabled and use in factory, credentials, Binance hints.
- Surface TradingExecutor start failures (thread limit, etc.) in API response.
- Document STRATEGY_MAX_THREADS in env.example.

Made-with: Cursor
2026-04-27 16:20:36 +08:00
dinger 72f5b269a5 feat(brokers): IBKR/MT5 API fixes, cloud policy, desktop-brokers endpoint; chore(frontend): sync dist
Made-with: Cursor
2026-04-24 22:33:55 +08:00
dinger 263b69872f Merge pull request #57 from octo-patch/feat/minimax-m2-7-provider
Resolve conflicts with main: keep Custom LLM (CUSTOM_*) and add MiniMax
(MINIMAX_*), settings schema, config_loader mappings, and env.example.

Made-with: Cursor
2026-04-23 12:24:19 +08:00
dinger b134817d47 fix(llm): wire CUSTOM_API_URL into config cache and base URL resolution
PR #56 added Custom provider keys but get_base_url only read CUSTOM_BASE_URL;
map CUSTOM_* env vars in config_loader and fall back to CUSTOM_API_URL/APIKeys.

Made-with: Cursor
2026-04-23 12:18:16 +08:00
octo-patch 72d5c35299 feat(llm): add MiniMax-M2.7 provider support
Add MiniMax as a supported LLM provider alongside OpenRouter, OpenAI,
Google Gemini, DeepSeek, and Grok. MiniMax uses an OpenAI-compatible
REST API, so the existing _call_openai_compatible() handles it.

- LLMProvider.MINIMAX enum value with base_url/default_model/fallback
- MINIMAX_API_KEY metaclass property in APIKeys
- MINIMAX_API_KEY/MODEL/BASE_URL env var mappings in config_loader
- MiniMax option in settings route LLM provider selector
- MINIMAX_API_KEY, MINIMAX_MODEL, MINIMAX_BASE_URL in env.example
2026-04-23 00:35:56 +08:00
Dinger b2c430bcad v3.0.2
Signed-off-by: Dinger <quantdinger@gmail.com>
2026-04-20 15:31:48 +08:00
Alex Schneider de40194681 Add optional Adanos market sentiment provider 2026-04-20 08:43:34 +02:00