Skip to content

feat!: qmtcli 改为只读,去掉下单与撤单 - #8

Merged
2233admin merged 1 commit into
mainfrom
claude/project-thread-mlby0s
Oct 23, 2026
Merged

2233admin merged 1 commit into
mainfrom
claude/project-thread-mlby0s

Conversation

@2233admin

Copy link
Copy Markdown
Owner

为什么

Agent 能直接用 qmtcli buy/sell 下单。2026-10-19 OMP 没有逐笔授权就挂过一笔 000963 测试卖单(已撤,未成交)。决策来源 G11:收回 Agent 的直接下单权限,下单只走带逐笔人工确认的网关(k-atana),符合「LLM 只能生成候选,不碰决策链」(k-atana #184)。

改了什么

  • 删除 buy / sell / cancel:CLI、rpc、server、capabilities、examples,以及 QMTGateway.submit_order / cancel_order。
  • trade-call 只放行 query_* / smt_query_*(READ_ONLY_TRADER_PREFIXES);order_stock、cancel_order_stock、fund_transfer、order_stock_async 等一律拒绝,trader 方法根本不会被调到。
  • MCP 去掉已不存在的 places_order / cancels_order 排除项;trade_call 仍按名排除。
  • README(中英)、xttrader 对齐矩阵、examples/agent_tool.md、AGENTS.md 安全边界、CHANGELOG(标 Breaking)同步。

k-atana 的 A 股下单走 QMTAdapter(qmt_bridge),不依赖 qmtcli 下单,所以这里直接删,不留开关。

验证

  • uv run --extra dev pytest -q:287 passed;ruff check .:通过。
  • 新测试:每个非查询方法都被拒且 trader 没被调用;rpc 的 buy/sell/cancel 返回 unknown command;gateway 没有下单方法。
  • 变异检查:把 order_/cancel_/fund_ 加回白名单,4 个新测试变红。
  • 冒烟:qmtcli buy ... 报 invalid choice。

合并依据:本地门禁全绿(项目规则:本地门禁全过可合)。


Generated by Claude Code

Agent 能直接用 qmtcli buy/sell 下单:2026-10-19 OMP 没有逐笔授权就挂过一笔
000963 测试卖单(已撤,未成交)。下单要走带逐笔人工确认的网关,不在这个工具里。

- 删除 buy/sell/cancel(CLI、rpc、server、capabilities、examples)和
  QMTGateway.submit_order/cancel_order。
- trade-call 只放行 query_* / smt_query_*;order_stock、cancel_order_stock、
  fund_transfer 等改变账户的方法一律拒绝(READ_ONLY_TRADER_PREFIXES)。
- MCP 去掉已不存在的 places_order/cancels_order 排除项。
- README、对齐矩阵、AGENTS.md、CHANGELOG 同步。

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011r885P59QAG4ZeFjXF7W4G
@2233admin
2233admin marked this pull request as ready for review October 23, 2026 06:03
@2233admin
2233admin merged commit ad500c6 into main Oct 23, 2026
3 checks passed
@coderabbitai

coderabbitai Bot commented Oct 23, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@qodo-code-review

Copy link
Copy Markdown

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-23T06:06:59.521268Z 3b36f22 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

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.

2 participants