v0.3.5 — Kali 安装修复 + Stargaze 视觉精修
v0.3.5 — 2026-08-18 · 安装体验修复 · 三波视觉精修 (stargaze edition)
安装体验
- 预构建
frontend/dist提交到仓库:在 Kali / 裸 Linux 等没有 Node.js 的环境直接./scripts/start-dhunter.sh start就能起来,Web UI 不会空白; start-dhunter.sh自带 build 兜底:检测到frontend/dist/index.html缺失时,自动npm install --no-audit --no-fund && npm run build,npm 不可用则给出明确报错(不再静默 "no web UI found");- README 修正:Node.js 行从"必需"改为"可选",删掉"仓库已带预构建 dist"那种让人不敢信的表述。
视觉体系 (Stargaze Edition)
- 字体体系:移除 Inter,改用 Fraunces(衬线展示体)+ Space Grotesk(无衬线正文)+ JetBrains Mono(代码),解决"AI 模板感";
- 品牌符号
BrandMark.vue:纯 CSS 双星环 logo(外环 0.6px + 内环 0.9px 渐变描边,12/6 点位两颗四角星、3/9 点位两颗亮星、中央十字星),替换原来占位的 PNG; - 多色星图统计强调:仪表盘统计卡从"全紫"改为 nebula / aurora / red / aurora 多色 accent,配合 6px 发光圆点 + 字间距 0.16em 标签;
- Status badge 改色:running/queued/claimed/open 从单色紫改为 aurora 青 + live pulse 动画;
- 列表 stagger 入场:targets / runs / vulns 三类列表加 0/40/.../360ms 错峰上浮动画(cubic-bezier 0.16,1,0.3,1)。
交互细节
- 目标卡 5 按钮 → 4 按钮 + 导出▾ 下拉:导出 Markdown 报告 / HTML 报告统一到上弹下拉菜单(避免压边框);
- 设置页三轮呼吸空间:grid 14→20→28px、col 12→18→22px、card body 18→22px、form-grid 12→16px;
- 漏洞页新增"运行"列:点击 run-id 芯片直达运行详情;
- 搜索页空态 + 热门关键词:2 列布局,左 10 个关键词 chip(带 stagger),右 3 条搜索技巧;
- 设置页三个 section title 配渐变下划线分隔。
工程
- 新增
scripts/build-release.sh:跨平台编译(darwin/arm64 + linux/amd64,CGO=0、trimpath、-s -w)并打包agents/+frontend/dist/+configs/+scripts/+ README/LICENSE/notes 为 tarball; - README 截图全部刷新为 stargaze edition(
assets/screenshots/*.png)。
v0.3.2 — 2026-08-16 · 上下文窗口压缩 · 增量规划 · 版本对比 · 收藏/通知/向导
Token 进一步优化
- 滑动窗口压缩:tool loop 超过 20 轮后,最早的轮次折叠成「工具活动摘要」合并进首条消息,只保留最近 12 轮完整上下文——长 run 的上下文有硬上限(普通 run ≤ 20 轮完全不受影响,缓存不破坏);旧轮次的 thinking 块随整轮一起丢弃(thinking 不能单独裁剪,signature 会校验失败,整轮丢弃是安全等价的实现);
- reason 增量规划:planner 从第 2 轮起只看到新增 facts(known_fact_ids),不再每轮全量重发已知情报。
功能
- 报告版本对比:项目会话页勾选两次评估(最多 2 个)→ 展示漏洞差集(本次新增 / 已消失 / 两次均有),同一目标的"这次扫出了什么新的"一目了然;
- 目标收藏:目标卡片 ★ 置顶(后端 favorite 列 + 列表排序,重启保留);
- 浏览器通知:运行页挂载时请求一次权限,run 结束时桌面通知(成功/失败/状态);
- 首启向导:首次进入且目标为空或未配置模型时,弹出三步引导(欢迎 → 配置模型 → 授权目标)。
DHUNTER_NOTES.md —— 仅对已获得书面授权的目标使用,未授权测试可能触犯法律。
v0.3.1 — 2026-08-16 · Token 优化 · 跨运行去重 · 预算可视化
Token 消耗优化(成本)
- 显式 prompt caching:system 块标记 cache_control: ephemeral,Anthropic 原生端点跨轮次/跨 worker 复用前缀(DeepSeek 等兼容网关忽略该字段、走自动前缀缓存);
DHUNTER_LLM_CACHE_SYSTEM=0可关闭; - 工具结果截断 20k → 8k:上下文峰值直接砍半(tool_result 会在后续每轮重发);
- verifier 瘦身:改用固定精简 system(不再转发含红线/知识注入的 worker system);证据/复现截断 4k/3k → 2k/1.5k;运行中验证从"每 10 秒定时"改为仅在新漏洞落地时触发,收敛后兜底全量复核。
功能
- 跨运行漏洞去重:同一目标在后续 run 中重复上报同一漏洞 → 409 并指向已有记录(dismissed 的除外,允许重新验证),列表不再堆积重复发现;
- 预算实时显示:运行详情页展示「已消耗 / 预算(百分比)」,随消耗变红预警(设置页红线依旧生效,到点自动停止)。
v0.3.0 — 2026-08-16 · 安全加固 · 契约修复 · 前端完善
安全加固(自身)
- 前端报告/证据渲染接入 DOMPurify,堵住"目标页内容 → 管理员浏览器"的存储型 XSS 链;
- 三进程统一 Bearer 鉴权:Python agent(9100)新增
DHUNTER_AGENT_TOKEN(Go server 自动携带),与平台/MCP 同一标准; - 删除默认静态 token(
dhunter-admin-please-change-me等):admin.token留空时首次启动自动生成随机值并持久化,重启不变; - 登录接口新增 每 IP 限速(默认 10 次/分钟),防口令爆破;
- Token 预算红线生效(此前是死代码):设置 → Token 预算 到点自动停止并保留进度;
- 新增
force_reset_password密码找回路径:configs/dhunter.yaml设bootstrap_password + force_reset_password: true,重启即重置(无密码时拒绝执行)。
功能修复(用户可见)
- 双账号 A/B IDOR 真正可用:后端接收
account_a/account_b(此前被静默丢弃),"已配置会话"标记不再误报; - 实时事件流修复:SSE 事件携带 type + call_id,推理/回复/工具调用三个 pane 恢复分类显示,run 结束后页面状态自动更新(此前一直停在 running 需手动刷新);
- 运行记录列表显示目标名(后端 JOIN targets 返回 target_value/target_name);
- 仪表盘趋势图改为真实数据(按漏洞发现时间聚合),不再展示硬编码假曲线;新增 30s 自动刷新;
- 失败 run 的失败原因在详情页直接展示;创建表单提示 30 分钟运行上限;
- 报告支持导出 HTML(DOMPurify 净化的独立文件);
- 小修:BoardView 终态停止轮询、事件流 1000 条截断、搜索框 IME 守卫、paused 状态样式、Targets 页加载错误提示、删除死组件。
测试与工程
- 新增 Go E2E 契约测试(10+ 用例):锁定 targets/runs/vulns/report/SSE/鉴权/密码重置的 HTTP 契约,杜绝前后端字段名再漂移;
- 新增 前端测试框架(vitest)28 个用例 + CI 接入;
- 端口默认值统一 13343(此前 Go/Python 多处写死 8080);vite dev 代理同步修正;
- 新增
scripts/dev-env.sh:手动启动一键生成/复用三进程一致 token; smoke-test.sh结束时自动清理测试数据。