Commit Graph

34 Commits

Author SHA1 Message Date
Lance c6d9ef469e release: merge dev into main (2026-04-20) (#1487)
* feat(store): prevent deletion of active strategies and update translations (#1461)

Co-authored-by: Dean <afei.wuhao@gmail.com>

* fix: allow model switching without re-entering wallet key

Users with existing wallets could not switch AI models because the
"Start Trading" button required a valid private key even when one was
already configured. Now the button is enabled when hasExistingWallet
is true, and handleSubmit passes an empty key so the backend preserves
the existing key.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* refactor: replace window.location with useNavigate for routing in auth components (#1470)

Co-authored-by: Dean <afei.wuhao@gmail.com>

* feat(trader): implement margin mode handling for order and leverage settings

* refactor(trader): update SetMarginMode to avoid legacy endpoint and improve logging

* feat(api): enhance strategy handling by integrating claw402 wallet key validation

Added validation for the claw402 model's wallet key during strategy test runs. If the selected AI model is claw402, the server now checks for a valid wallet key and returns appropriate error messages if it's missing or if the model fails to load. This ensures better error handling and user feedback when working with AI models.

* refactor(api): streamline claw402 wallet key retrieval and error handling

Refactored the strategy handling logic to encapsulate claw402 wallet key retrieval in a new method, `resolveStrategyDataWalletKey`. This improves code readability and maintains consistent error handling for missing or invalid wallet keys during strategy test runs. The changes enhance the overall robustness of the AI model integration.

* feat(trader): add claw402 wallet key resolution for trader configuration

Implemented a new method, `resolveTraderDataWalletKey`, to retrieve the claw402 wallet key based on the selected AI model and user ID. This enhancement allows for better integration of the claw402 model within the trader configuration, ensuring that the correct wallet key is used for trading operations. The `AutoTraderConfig` struct has been updated to include the new `Claw402WalletKey` field, improving the overall handling of wallet keys in the trading process.

* feat(claw402): preflight USDC balance before AI calls (#1479)

* chore: ignore nofx-server build artifact

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat(claw402): preflight USDC balance before AI calls

Short-circuit claw402 Call/CallWithRequestFull when the wallet balance
can't cover the estimated cost of the call, surfacing ErrInsufficientFunds
instead of letting x402 fail mid-flight after the sign step.

- wallet: cached balance lookup (30s TTL, per-address mutex) to avoid
  hammering the Base RPC; separate error-returning and display-only APIs
  so callers can distinguish zero balance from an unreachable RPC.
- claw402: 1.5× safety multiplier on the flat per-call estimate, 4.0×
  for reasoner models whose chain-of-thought cost can blow past the
  flat rate. Fail-open on RPC errors — x402 still gates actually-empty
  wallets, and we prefer availability over extra strictness.
- shortAddr redacts the wallet in error strings to avoid leaking the
  full address into telemetry bundles.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

* fix(telemetry): report token usage for SSE streaming paths (#1475)

* fix(telemetry): report token usage for SSE streaming paths

ParseSSEStream already parsed the usage block from SSE chunks but only
printed it, so claw402 streaming calls (and native streaming) never
fired TokenUsageCallback. GA4 therefore undercounted AI usage on the
streaming path.

Return the parsed usage from ParseSSEStream and have both callers fire
the callback with their own Provider/Model.

* chore: drop leftover debug Printf in ParseSSEStream

Telemetry is now wired via TokenUsageCallback, so the Printf is
redundant noise in the stream path.

* fix(gemini): update default model to gemini-3.1-pro

Google discontinued gemini-3-pro-preview on 2026-03-26 and directs all
callers to gemini-3.1-pro / gemini-3.1-pro-preview. Users on their own
API key were getting errors from the native Gemini endpoint because the
provider default pointed at the retired ID. Claw402 was unaffected
because its route map already used gemini-3.1-pro.

Align both the native provider default and the handler's preset list
with gemini-3.1-pro so every code path sends a live model ID.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* refactor: extract ResolveClaw402WalletKey to store layer and expand OKX margin mode tests

- Move duplicated claw402 wallet resolution logic into store.AIModelStore.ResolveClaw402WalletKey
- api/strategy.go and manager/trader_manager.go now delegate to the shared method
- Add detailed doc comment on OKX SetMarginMode explaining the local-state-only approach
  and why the legacy /api/v5/account/set-isolated-mode endpoint is not called
- Add 3 new test cases: cross mode leverage, OpenShort tdMode, SetTakeProfit tdMode

* fix(auth): prevent SetupPage remount from wiping freshly-set auth token (#1481)

After #1470 moved routing into react-router, SetupPage is rendered at two
different tree positions (top-level guard + /setup Route). When register
success flushSync-sets `user`, the top-level guard stops matching and the
Route-level SetupPage mounts as a new instance, re-running its cleanup
useEffect and removing the auth_token that handlePostAuthSuccess just wrote.
Subsequent requests 401 and bounce the user back to /login.

Redirect /setup to /welcome when user is already set so SetupPage is never
re-mounted during the auth transition.

* fix(wallet): handle JSON-RPC null error field in balance query

Some RPC implementations return explicit "error": null on success.
json.RawMessage deserializes this as the 4-byte literal "null", so
len() > 0 was true, causing every balance query to fail with
"rpc error: null". Skip the null literal to avoid false positives.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs(readme): add quick demo video to localized READMEs (#1486)

* docs(README): add quick demo section with video link and image

* docs(README): update demo video link

* docs(i18n): add quick demo section with video link and image for multiple languages

---------

Co-authored-by: Dean <afei.wuhao@gmail.com>

---------

Co-authored-by: deanokk <wuhao@vergex.trade>
Co-authored-by: Dean <afei.wuhao@gmail.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: root <root@localhost.localdomain>
2026-04-20 01:12:43 +08:00
shinchan-zhai 9937542020 docs: add MiniMax to AI models and beginner mode to setup across all i18n READMEs
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 22:16:46 +08:00
tinkle-community 966995fb88 refactor: remove BlockRun provider, retain Claw402 as sole x402 payment provider
Remove all BlockRun (Base + Solana wallet) references from codebase:
- Delete blockrun_base.go, blockrun_sol.go, wallet setup docs, icon
- Move shared EIP-712 signing code to x402.go for Claw402 reuse
- Clean up provider constants, model lists, UI components, translations
- Update all README files (EN + 6 i18n) and getting-started docs
2026-03-24 01:44:54 +08:00
tinkle-community b539b90119 docs: sync all i18n READMEs with new autonomous AI trading assistant structure 2026-03-11 16:39:29 +08:00
tinkle-community 093d2a329d feat(gate): complete Gate.io exchange integration with trader refactoring
Gate.io Integration:
- Add Gate trader with full Trader interface implementation
- Add order_sync.go for background trade synchronization
- Fix quantity display (convert contracts to actual tokens via quanto_multiplier)
- Fix fill price return in OpenLong/OpenShort/CloseLong/CloseShort
- Add Gate-specific CoinAnk K-line data source support
- Add Gate to supported exchanges in frontend and backend
- Add Gate/KuCoin logo SVG icons

Trader Package Refactoring:
- Move exchange-specific code into subdirectories (binance/, bybit/, okx/, bitget/, hyperliquid/, aster/, lighter/, gate/)
- Create types/ package for shared types to avoid circular dependencies
- Move TraderTestSuite to trader/testutil package to avoid import cycles
- Update market.GetWithExchange to support exchange-specific data
2026-01-31 23:15:17 +08:00
tinkle-community e19e289c58 docs: add KuCoin exchange support 2026-01-31 18:26:38 +08:00
tinkle-community 5ea9a3990e docs: center README titles 2026-01-31 02:17:06 +08:00
tinkle-community 5b5199359c docs: rebrand as AI Trading OS across all languages 2026-01-31 02:15:07 +08:00
tinkle-community ee081ebc85 docs: add official website links to all README files
- Official Website: https://nofxai.com
- Data Dashboard: https://nofxos.ai/dashboard
- API Documentation: https://nofxos.ai/api-docs

Updated: EN, ZH-CN, JA, KO, RU, UK, VI
2026-01-17 23:18:37 +08:00
tinkle-community 8b86d4d85c docs: add prerequisites section and reorganize README structure across all languages 2026-01-06 08:16:00 +08:00
tinkle-community 27196a379e update docs 2025-12-21 01:28:18 +08:00
tinkle-community 710d9e4943 feat: increase default max users to 10 and add update reminder
- Change default MaxUsers from 5 to 10 in config
- Add update reminder section in install.sh output
- Add 'Keeping Updated' section in all README translations
2025-12-20 13:44:47 +08:00
Maximilian Ford 8f07869d74 docs: complete ja and ko READMEs (#1206) 2025-12-10 14:45:46 +08:00
tinkle-community 63ddeec7ba docs: rewrite README with updated features and deployment guide
- Update project description to reflect current AI trading platform
- Rewrite Core Features with 6 key capabilities
- Add complete deployment guide (Docker + manual installation)
- Update all i18n versions (zh-CN, ja, ko, ru, uk, vi)
- Remove outdated JSON config examples
2025-12-09 17:27:38 +08:00
tinkle-community 04f006abad docs: update airdrop program text 2025-11-27 04:08:43 +08:00
tinkle-community e98aeb2d03 docs: add priority rewards for pinned issue PRs 2025-11-27 04:05:29 +08:00
tinkle-community a5f34861c6 docs: add contributor airdrop program to all READMEs 2025-11-27 04:02:22 +08:00
tinkle-community 47c174c160 docs: move exchanges and AI models sections after screenshots 2025-11-27 03:39:42 +08:00
tinkle-community 8e0a746969 docs: add supported AI models table to all README files 2025-11-27 03:31:37 +08:00
tinkle-community 3ce631292a docs: simplify exchange sections, consolidate into Supported Exchanges table
- Remove individual exchange registration sections from all READMEs
- Remove redundant Binance, Hyperliquid, Aster DEX detailed setup sections
- Consolidate all exchange info into Supported Exchanges table with register links and setup guides
- Rename section to "Supported Exchanges (DEX/CEX Tutorials)" in respective languages
2025-11-27 03:19:59 +08:00
tinkle-community f2f91f281d docs: add Bybit, OKX, and Lighter exchange support
- Mark Bybit, OKX as supported in CEX section
- Mark Lighter as supported in Perp-DEX section
- Add Bybit API setup guide
- Add OKX API setup guide
- Add Lighter agent wallet setup guide
- Update all READMEs (EN, ZH-CN, JA, KO)
2025-11-27 03:05:19 +08:00
tinkle-community b9119b9c66 docs: add supported exchanges table and API/wallet setup guides
- Add supported exchanges table to EN, ZH-CN, JA, KO READMEs
- CEX: Binance (supported), OKX (coming soon), Bybit (coming soon)
- Perp-DEX: Hyperliquid (supported), Aster DEX (supported)
- Include referral links with fee discounts for all exchanges
- Remove What's New sections from all READMEs
- Create Binance API setup guide
- Create Hyperliquid agent wallet setup guide
- Create Aster DEX API wallet setup guide
2025-11-27 02:56:19 +08:00
tinkle-community 94d84f9c39 update disclaimer 2025-11-25 20:18:29 +08:00
tinkle-community 31b9d9e60f update docs 2025-11-24 00:26:16 +08:00
tinkle-community edccb7e7df update docs 2025-11-24 00:04:45 +08:00
tinkle-community d844791820 update Korean README docs 2025-11-23 21:58:50 +08:00
tinkle-community 84df6465d9 update docs 2025-11-23 21:13:27 +08:00
tinkle-community c67e6cf727 update docs 2025-11-23 21:10:37 +08:00
tinkle-community 4a08d5ebd2 update readme 2025-11-15 22:20:06 -05:00
Shui d9c6f8c9bf Fix(readme): modify docoments (#956)
* fix(trader): get peakPnlPct using posKey
* fix(docs): keep readme at the same page
---------
Co-authored-by: zbhan <zbhan@freewheel.tv>
2025-11-15 22:20:06 -05:00
tinkle-community b282045b66 update readme 2025-11-15 22:17:11 -05:00
tinkle-community 9385547937 Feat/hyperliquid agent wallet docs (#936)
* feat(docs): add Hyperliquid Agent Wallet tutorial for all languages
- Add comprehensive Hyperliquid Agent Wallet setup guide with referral link
- Update all 5 language versions (EN, ZH, JA, RU, UK)
- Remove "Alternative" prefix from Hyperliquid and Aster DEX section titles
- Remove direct wallet method, only recommend secure Agent Wallet approach
- Include step-by-step registration, funding, and agent wallet creation
- Add security warnings and best practices for all languages
Co-Authored-By: tinkle-community <tinklefund@gmail.com>
* feat(docs): add Hyperliquid and Aster DEX to Table of Contents in all languages
- Add navigation links for Hyperliquid and Aster DEX registration in all 5 README versions
- Ensure all three exchanges (Binance, Hyperliquid, Aster) have equal visibility in TOC
- Add complete TOC structure to Japanese README (was missing before)
- Maintain consistency across English, Chinese, Japanese, Russian, and Ukrainian versions
Co-Authored-By: tinkle-community <tinklefund@gmail.com>
---------
Co-authored-by: tinkle <tinkle@tinkle.community>
Co-authored-by: tinkle-community <tinklefund@gmail.com>
2025-11-12 19:05:04 +08:00
tinkle-community 24ed1999d9 feat(docs): add Hyperliquid Agent Wallet tutorial for all languages (#935)
- Add comprehensive Hyperliquid Agent Wallet setup guide with referral link
- Update all 5 language versions (EN, ZH, JA, RU, UK)
- Remove "Alternative" prefix from Hyperliquid and Aster DEX section titles
- Remove direct wallet method, only recommend secure Agent Wallet approach
- Include step-by-step registration, funding, and agent wallet creation
- Add security warnings and best practices for all languages
Co-authored-by: tinkle <tinkle@tinkle.community>
Co-authored-by: tinkle-community <tinklefund@gmail.com>
2025-11-12 18:29:37 +08:00
SkywalkerJi 0abfd13dbf fix: Fix README link (#563)
* Resolved front-end linting issues.
* Streamlining Docker Build Scripts
* Leveraging Native ARM64 Runners on GitHub.
* Use lowercase framework names.
* Streamlining dependencies within the README.
2025-11-06 00:31:05 +08:00