Files

4.4 KiB
Raw Permalink Blame History

重构验收记录

日期:2026-10-07。测试均使用虚构账户和临时 SQLite,不使用真实模型密钥。

需求与证据

需求 当前实现 验证
可维护目录,移除 AIAPIS cmd、internal 分职责模块、frontend pages/components/api/hooks 旧源码移除,go build 和 TypeScript 构建
React 前端与侧边栏 React 19 / TypeScript / Vite;桌面与窄屏布局 Playwright 初始化、导航;1280 与 390px 截图检查
Gin 后端 httpapi Router,中间件与处理器分离 Gin 接口测试与浏览器同源调用
登录鉴权 bcrypt,哈希会话,HttpOnly/Strict Cookie,同源与 CSRF,角色控制 登录/退出/密码变更测试、只读接口拒绝
SQLite3 WAL、外键、事务初始化、用户/会话/结果/设置/审计 store 关闭重开持久化测试
扫描保留与优化 有界队列、范围检查、头副本、超时、重试、解压上限、去重 HTTP 代理完整链路与竞态测试
新增场景功能 概览、搜索筛选、证据对比、复核备注、用户管理、审计、暂停设置 2 个连续浏览器流程;代理→UI→复核→刷新
导出 同一 SQLite 查询快照,10000 条/32 MiB 上限,CSV/JSON 浏览器 CSV 下载;公式防护单元测试
敏感信息不上传 config/env/data/db/证书/日志/导出排除;请求证据脱敏;设置不返回凭证 敏感格式位置扫描无命中;config/data check-ignore;未 push
旧配置迁移 -import-config 显式本地导入,保持暂停 虚构旧配置导入测试

执行检查

  • go test ./...:通过。
  • go test -race ./...:通过。
  • go vet ./...:通过。
  • go build -o bin/privhunter ./cmd/privhunter:通过。
  • npm run build:通过(严格 TypeScript 检查与 Vite 构建)。
  • npm run test:e2e:2 项通过;初始化、登录、导航、设置、用户创建、审计、导出、密码变更、只读权限、退出,及真实 HTTP 代理采集/脱敏/复核/刷新。
  • git diff --check:通过。

边界

真实外部模型供应商未调用,避免消耗密钥和传输真实数据。模型适配协议已用本地测试服务验证;模型判断仍需人工复核。HTTPS 证书安装依赖操作系统信任设置,自动化目前验证 HTTP 代理路径。关键词脱敏不是任意敏感内容检测器,业务特殊字段应扩展规则。

不宣称本次覆盖所有可能新增功能;已实现 rebuild-plan 中列出的场景范围。未执行提交或远程推送,所有变更留在本地供审阅。

管理页反馈迭代(2026-10-07)

扫描控制与系统设置采用分组卡片、说明侧栏、固定保存栏;用户管理采用统计、成员身份列表与新增成员弹窗。检查了桌面和手机截图。保留草稿离开提示、敏感字段不回显及管理员权限保护。

结果列表只返回摘要,详情通过鉴权接口按需读取完整脱敏证据,导出仍保留证据。新增摘要/详情/导出一致性测试、详情鉴权与缺失记录测试;扫描脱敏测试从详情读取正文进行验证。

本轮 go test ./...、React 构建与 2 项端到端测试通过;补充测试后 scanner/httpapi/store 测试、go vet ./...、Go 构建和 diff 检查通过。本地 8222 服务已重启到新版本。未调用真实模型服务,未上传配置、凭证或数据库。

导航与样式维护迭代

  • 页面地址使用 #/overview、#/findings 等路径。浏览器测试覆盖刷新后保留系统设置、返回/前进、拒绝历史导航后保留配置草稿、只读用户直接访问管理员页面回概览,以及直接打开结果页。
  • 新导航 hook 独立于认证编排;侧栏使用 aria-current,文档标题显示当前页面。退出登录复用草稿保护。
  • 1590 行样式按基础、登录、布局、组件、概览、证据、配置、成员、响应式覆盖拆分;入口保持原顺序。拆分前后构建 CSS SHA-256 一致(字节内容完全相同)。
  • API 类型区分 FindingSummary 和完整 Finding,列表调用不能假定已加载正文。
  • 最终运行 go test -race ./...、go vet ./...、TypeScript/Vite 构建、2 项完整浏览器流程及 diff 检查均通过。当前本地服务返回 HTTP 200。
  • 待提交/未忽略源码与本地旧配置的凭证值比对无命中;运行目录 0700、数据库 0600;生产前端依赖 npm audit --omit=dev 返回 0 项漏洞。