- Add nil checks for session.TargetRef in all four execute*Action handlers
(Trader/Exchange/Model/Strategy) to prevent panic on corrupted sessions;
actions that don't need a target (query/query_list/create) are excluded.
- Fix toast.success indentation in handleToggleTrader so success messages
only fire when the API call actually succeeds.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix Stop() race condition using sync.Once
- Add ensureHistory() to prevent nil panic in planner/dispatcher
- Add bounds check on trader ID slicing
- Log saveExecutionState and clearSetupState errors instead of discarding
- Remove always-true modelID condition in onboard setup
- Add Chinese setup keywords and expand model name aliases
- Strip max_tokens from claw402 requests to avoid thinking-model budget exhaustion
- Hide Agent nav tab (Beta) pending merge to main
- Sync tests with code changes
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1. Prevent double-close panic on Stop() by using sync.Once in Scheduler,
Brain, and Sentinel; remove duplicate Stop() call in main.go
2. Add trade quantity (100k) and leverage (125x) sanity caps to prevent
LLM hallucinations or input errors from reaching the exchange
3. Mask secrets in onboarding setup state — only store "****" markers in
SystemConfig instead of plaintext API keys/secrets
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>