Skip to content

feat(ths): switch_account 多账户盲切工具(Alt+N) - #6

Merged
suny911 merged 1 commit into
mainfrom
feat/switch-account
Jul 13, 2026
Merged

feat(ths): switch_account 多账户盲切工具(Alt+N)#6
suny911 merged 1 commit into
mainfrom
feat/switch-account

Conversation

@suny911

@suny911 suny911 commented Jul 13, 2026

Copy link
Copy Markdown
Collaborator

背景

xiadan 新版皮肤支持多账户登录,账户下拉框为每个已登录账户注册 Alt+1..Alt+9 加速键。操盘副驾需要在多账户场景下切换资金账户继续执行策略——但受控端保持账户无感知(最小影响原则):不加 account 参数、不核验身份,只提供一个发快捷键的开关。

变更

  • WinThsBackend.switch_account(slot):slot 参数闸(int 强转 + 1-9 范围,非法值在碰任何 Win32 前拒绝)→ _ensure_bound → 拉前台 + hot_key(["alt", str(slot)]) 盲切,回执明确标注「未核验结果,请先 balance/position 指纹核对」。
  • dispatcher:METHOD_WHITELIST / trading_methods(插件开关门控 + win_lock 串行化 + 25s 总超时)/ _invoke 路由 / tools/list 过滤名单,四处登记。
  • schema 双源同步:FALLBACK_TOOLS_SCHEMA 与 docs/tools_schema.json(受既有全等校验测试护住)。
  • 测试:dispatcher 路由/信封回归 + slot 参数闸独立用例(绑定层打桩,非 Windows 可跑)。本地 111 passed / 10 skipped(skip 均为 Windows-only,与基线一致)。

账户身份核对責任在调用方

切换后所有工具作用于新的当前账户。调用方(操盘副驾)纪律:switch_accountbalance/position 指纹核对 → 批式操作 → 用完切回默认账户。

待实测(Windows 端)

  • Alt+N 加速键经 keybd_event 注入是否被 xiadan 接收(vs 仅下拉框展开时生效)
  • 切换耗时 / 面板重载延迟,sleep_time*2 是否足够
  • 网关 mcp.guling.pro 对客户端上报的新工具是否透传(PROTOCOL 显示 tools/list 由客户端应答,理论上零改动)

🤖 Generated with Claude Code

同花顺 xiadan 支持多账户登录(账户下拉框 Alt+1..Alt+9 加速键切换当前
资金账户)。本工具把切换能力暴露给 MCP 调用方,受控端保持账户无感知:

- 只做「拉前台 + 发 Alt+N」盲切,不核验切换结果;账户身份核对责任在
  调用方(切换后必须用 balance/position 做指纹核对再继续操作,工具
  description 已写明)
- slot 参数闸:非整数 / 超出 1-9 一律在碰 Win32 之前拒绝
- 纳入 trading_methods:受插件开关门控 + win_lock 串行化 + 25s 总超时
- FALLBACK_TOOLS_SCHEMA 与 docs/tools_schema.json 双源同步(受
  test_fallback_schema_matches_file_schema 全等校验护住)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@suny911
suny911 marked this pull request as ready for review July 13, 2026 15:29
@suny911
suny911 merged commit cd523e6 into main Jul 13, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant