Files
CyberStrikeAI/docs/bug-sheet-review.md
T

5.3 KiB

Bug 表核对与修复

范围:2026-10-06 用户提供的 Bug记录表.xlsx。只修复当前仓库已有功能的已确认缺陷。表内命令和建议只作为待核实证据。

工作流与维护门禁

  • 阶段:P10 缺陷修复。既有代码、接口、测试为上游依据。
  • 分支:codex/bug-sheet-fixes;完成验证后合入 main。
  • 维护策略:narrow_fix。对大文件仅做局部修复,新增测试放独立文件,不做广泛重构。
  • 验收:复现/代码证据确认问题;针对性回归通过;相关包和全仓检查;提交仅包含修复、测试、文档,不包含真实配置或凭据。
  • 生命周期记录合并到本文,避免针对同一缺陷制造无关阶段提交。

已确认待修复

表内条目 证据 修复计划
C2 wait/cancel 资源权限 handler 直接按 ID 查询和取消,缺少 c2ResourceAllowed 与同模块接口一致,先校验任务访问权限,再执行
32 纯文本批量/机器人任务缺少执行证据 batch_queue_executor 和 finalizeRobotAgentSuccess 显式传 true 与普通对话的默认策略一致,允许无工具文本回复,保留 pending/HITL 检查
30、31 角色名路径字符/长度 名称未校验,文件名会转换,存在碰撞 拒绝路径和控制字符、首尾空格、超过 64 字符及文件名碰撞
工作流悬空引用 角色保存与工作流删除均未检查引用 保存时验证存在;删除引用中的工作流返回冲突
4 登录用户名为空 前端无 required,后端空用户名默认 admin 登录接口及页面拒绝空白/超过 64 字符用户名
Profile UA/响应头/Jitter 保存丢失 前端 snake_case 与后端 camelCase 不一致 对齐 JSON 字段;保留 0;拒绝负值/倒置范围
22 取消后显示成功 回传结果无条件更新任务终态 终态保持不变;取消和结果写入使用状态条件检查
同 UUID 旧连接断开误判离线 WS defer 无条件删当前连接及标记 dead 仅当前登记连接可以删除并退役会话,结束心跳 goroutine
23 WebShell 目录路径及假条目 normalizeWebshellPath 删除根斜杠;权限兜底正则接受 ls 错误行 保留 Unix 绝对路径;树/面包屑/父级保持绝对路径;只接受权限格式目录项
6 查看通知未清计数 查看回调只跳转 查看普通事件后标记已读并刷新;待审批通知仍保留待处理状态
13 配置接口明文返回 API Key GetConfig 序列化真实配置 返回掩码;保存时按原配置路径还原;模型测试在服务端解析指定通道凭据
19 WebShell 口令明文回显 列表和创建/更新响应返回 Password 响应掩码;保存时保留/替换/清空;执行按有权限的 connection_id 取服务端凭据
Markdown 智能体字段与重复 ID 保存缺少关键字段和 ID 唯一性检查 创建/更新统一校验 name、ID、指令;ID 不允许文件间重复;创建使用排他文件写入
辅助文件编辑描述丢失 辅助文件保存接口不更新 SKILL.md 元数据 辅助文件禁用描述编辑;描述未保存时阻止切换文件,提示先保存 SKILL.md
C2 终端输出粘连/尾部分号语法错误 Unix 探测直接追加 && pwd,结果按最后一行切分 使用随机分隔标记和换行探测,保留用户命令的输出及退出状态
事实正文的关系语法未生成图谱 关系字段是显式结构化输入,普通正文不是通用关系解析器 按问题表给出的替代方案,明确提示关系应填写到关系字段;保持既有正文语义

不适用

当前仓库未实现的用户容器并发配额、容器生命周期和容器释放后重新调度,不添加对应实现。

验证

  • go test ./internal/handler ./internal/app ./internal/agentfinalizer 通过。
  • 新增 C2 跨用户禁止等待/取消、所有者正常操作、机器人纯文本交付、角色名称边界、工作流引用、登录用户名测试。
  • 前端已有测试存在 HITL 断言失败,正在核实基线;未修改 HITL 脚本。
  • 当前尚未完成全部表内条目核对,也尚未合入 main。
  • go test ./internal/c2 ./internal/database 通过;新终态保护及连接替换测试通过。
  • Profile API 持久化/无效 Jitter 测试和前端实际提交字段测试通过。
  • 前端 HITL 断言问题在原始提交 82b0af1 的隔离导出目录也可复现,属于基线问题。
  • go test ./... 全仓通过。
  • WebShell 路径、错误输出、目录树测试与通知查看/待审批区分测试通过。
  • 配置凭据处理保留既有字段与空字符串清除语义;掩码标记只用于已保存的同路径凭据,新通道不能直接保存掩码。通道探活新增可选 channel_id,模型列表/审查测试支持可选凭据范围,避免同 URL 多密钥选择错误。
  • 新增 GET 配置不泄漏/不变更内存、掩码保留/替换/清空、歧义拒绝、WebShell 回显及执行凭据、Markdown 创建/更新唯一性、技能描述切换测试。
  • C2 Shell 回归只提取模板中的 Shell 辅助函数,不运行传输循环。验证无换行、有换行、尾部分号、注释、失败退出、带空格目录切换;Unix 系统通过,Windows 路径未修改。模板修复适用于重新生成的客户端。