Files
eth_hedge_sim/docs/审计说明-2026-08-08-半自动.md
T
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

41 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 审计说明 — 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_user`Fleet 仅只读字段。
## 残留风险(可接受)
- 授权后至开仓完成前改系统级非半自动参数(如杠杆)仍可能影响定仓;与全自动一致,非半自动独有。
- 有仓重启保留 trade_lock;无仓清 armed 后须重新授权。