Repository navigation
v1.7.3 — AI Agent 运行时 + 对话滚动修复 + 分组密码能力补齐
主要更新
一、AI Agent 运行时(借鉴 openclaude)
新增 electron/agent-runtime.js,解决长任务的三个核心痛点:上下文爆掉、原地打转、崩溃丢进度。
| 能力 | 机制 |
|---|---|
| 大输出落盘 | 60% 头 + 40% 尾预览(错误堆栈/flag 常在尾部),超 24k 字符写盘可回读 |
| 旧结果微压缩 | 保留最近 6 条;不清 is_error(错误是纠错依据) |
| 确定性上下文压缩 | 90k token 触发,抽硬事实(偏移/常量/骨架/已排除路线);熔断 3 次/冷却 5 分钟 |
| 连续调用拦截 | sha256(工具+完整入参) × 3 即拦 |
| 跨轮失败环 | 三键计数,第 2 次提醒、第 3 次判死;NoSymbol 给候选函数名 |
| 工具预检 | 错误必带"怎么改":路径不存在给相近文件 |
| 结构化经验检索 | 按题型特征词打分,零命中不注入 |
| 会话续跑 | JSONL + 剥离未完成 tool_use(不清洗会 400) |
| API 重试 | 5 次指数退避、429 上限 3、4xx 不重试 |
二、复查抓到的 4 个致命缺陷
| 缺陷 | 后果 |
|---|---|
预检/失败环伪造 tool_use_id |
API 400,整轮求解中断 |
needPath 错列 run_python/ida_decompile |
两个核心工具被判"缺 path"而拒绝 |
| IDA 参数名写错(function vs function_name) | IDA 工具永远无法通过预检 |
| 压缩切点落在 tool_result 上 | 对应 tool_use 被丢弃 → API 400 |
三、对话滚动修复
流式输出时每收到一个 token 就 scrollTop = scrollHeight,用户上滑一次立刻被拽回底部。改为 stick-to-bottom(距底 ≤48px 才跟随;滚轮上滑/PageUp/Home 立即脱离),新增"回到底部"按钮;日志面板同样受保护。
四、离线可用性
Font Awesome 全量本地化(约 1MB),CSP 收紧为 font-src 'self'。原来依赖 cdnjs,实测超时 16 秒导致 <link> 阻塞解析、页面卡在 loading——内网/离线环境会表现为启动卡死。
五、分组密码能力(v1.7.0–1.7.2)
crypto-tables.js:AES/SM4 全表知识库classifySbox():exact / XOR·ADD / GF(2) 仿射三级判定(高斯消元 + 回代验证)- S 盒非线性度(Walsh 谱):修正两处公式错误——旧实现把 AES/SM4 标准表也算成 -128
inferCipherStructure():SM4 / AES 骨架推理- 多骨架解密器:SM4 全组合枚举 + AES pycryptodome 主路径;DES/Blowfish 明确不支持
测试
25 个测试文件 / 13 道真实回归题 / 全绿。
安装包:CTF-RE-TOOL.exe 需本地 npm run build:exe 后上传(便携单文件)。