Files
eth_hedge_sim/docs/审计说明-2026-08-08-半自动.md
dekun 4585dba3c3 Add 永期半自动: human arm, machine open/close, then stop.
Settings toggle, Plan panel, Fleet monitor, exit locks and armed TOCTOU gates; docs and dual audits.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-08 11:20:11 +08:00

1.7 KiB
Raw Permalink Blame History

审计说明 — 2026-08-08 永期半自动

范围

半自动:semi_auto.py、引擎授权/出场/wait_human/api/plan/semi/*、设置与 Fleet 透出、首页与中控 UI。

轮次

轮次 工具 结论
1 Security Review 3 项中高:取消授权 TOCTOU、出场参数未锁定、关半自动未清 armed
2 Bugbot 2 项高:重启后陈旧 armed、授权绕过 LIVE live_ready

已修复

  1. 选约后、opening 前、以及 open_group 直前再次校验 semi_armed;取消授权中止开仓。
  2. phase=opening 时禁止取消授权(防 LIVE 落单窗口 TOCTOU)。
  3. 开仓成功写入 semi_trade_lock;盯盘出场读锁;平仓/收尾清理。
  4. 设置关/开半自动强制 semi_armed=false;设置接口不可写入 semi_armed
  5. 进程启动无仓清 armed。
  6. arm_semi LIVE 先过 live_ready
  7. 已授权或活跃阶段禁止改本单参数。
  8. 半自动平仓禁止远虚只平永续;平仓后勿覆盖 wait_human phase。

复审

轮次 工具 结论
复审 Security 先验 MEDIUMopening→open_group 窗口) 已用 open_group 直前 is_armed + phase=opening 禁止取消授权关闭
复审 Bugbot 同窗口 TOCTOUhigh 同上已修;无其它半自动逻辑 bug

验证

  • pytest backend/tests/test_semi_auto.py:通过。
  • 授权 API 仍 require_userFleet 仅只读字段。

残留风险(可接受)

  • 授权后至开仓完成前改系统级非半自动参数(如杠杆)仍可能影响定仓;与全自动一致,非半自动独有。
  • 有仓重启保留 trade_lock;无仓清 armed 后须重新授权。