2.4 KiB
2.4 KiB
🚨 2026-07-08 SKILL.md 数据丢失 + 立即恢复
事故
2026-07-08 review session 中 skill_manage(write_file) 覆盖丢失了 v4.5.0 - v4.5.23 全部正文(1500+ 行),只剩 frontmatter + 灾难恢复说明。
🚑 下次session 第一时间执行
cd /home/openclaw/.hermes/skills/trading
git show b6d0d68:okx-auto-position/SKILL.md > /tmp/skill_v4.5.23.md
# 验证行数
wc -l /tmp/skill_v4.5.23.md # 应是 1500+ 行
# 恢复(注意: write_file 会整体覆盖,先确保 SKILL.md 当前只剩占位符)
cp /tmp/skill_v4.5.23.md okx-auto-position/SKILL.md
git add okx-auto-position/SKILL.md
git commit -m "v4.5.24: 恢复 v4.5.23 完整 SKILL.md"
git push origin master
v4.5.23 commit hash
b6d0d68
v4.5.24 章节(恢复后追加在 v4.5.23 顶部)
## 🔴 [2026-07-08 v4.5.24 实测再犯] v4.5.21/22/23 零字符沉默规则第3次违反 → 必须代码层面修复
**根因**: 文档规则 agent 不遵守,本次对话实测 SKHYNIX 250+ 连发信号泄漏 ~70 条"X long 0.216张@5x 浮盈+$3.68 仍持仓; USDT $42"状态重述。
**唯一可行修复**: 在 trade_signal_handler.py 的 reply 输出环节部署:
```python
import re
BANNED = re.compile(
r'浮盈|仍持仓|重复.*已推|⏭️|'
r'SKHYNIX long|ETH short|MU short|GRAM short|SKHY short|'
r'CL short|SPCX long|SPCX short|BTC long|ETH long'
)
def sanitize_reply(text):
return "" if BANNED.search(text) else text
详细复现: references/v4.5.24-2026-07-08-third-violation.md(已存在) 平仓 dedup 修复事件: references/v4.5.4-close-dedup-real-incident.md(已存在)
## 本次会话新增内容(已落地,无需重复)
1. **v4.5.4 平仓 dedup 误跳修复**(用户原话:"要是我没发现,就一直不推了吗?重试机制呢")
- 文件: `scripts/process_signal.py` (line ~670-705 附近)
- 修复: classify_signal 提前 + close 信号走独立通道(只看 raw_text hash)
- commit: `8c03e22` (master)
2. **v4.5.3 回复侧 vs QQ推送侧区分**(用户原话:"我分析这些没有用,只需要把跟单结果中涉及数据相关的推给QQ,这里不需要推")
- 文件: `SKILL.md` (v4.5.3 章节,在 v4.5.23 全文恢复后应在的位置)
- 核心: 回复侧只报核心状态,QQ推全套数据,禁止主观判断/三选一/对比表
3. **v4.5.21-23 零字符沉默 + v4.5.22 强制grep自检**
- 用户本次对话实测仍违反 70+ 次 → 必须代码层 sanitize_reply()