文件
hyb-oa/.trellis/tasks/archive/2026-07/07-16-system-multidimensional-audit/research/baseline.md
T

3.6 KiB
原始文件 Blame 文件历史

本地审查基线

Snapshot

  • 审查对象:本地 main,bbb5c89825b0fbee60d5f093d7b30368cb7a5104。
  • commit 时间:2026-07-16 20:52:42 +08:00。
  • task 创建前工作树:clean;审查期间仅当前 task 目录为未跟踪内容,未修改业务代码、schema、迁移、部署配置或真实数据。
  • 环境:Linux、Node.js v22.22.2、npm 10.9.7、Prisma / @prisma/client 7.8.0、Fastify 5.10.0、Playwright 1.58.2。
  • 结论边界:所有结果仅证明该本地 commit;最后有证据的公网部署来源仍是 df26922,不得据此声称公网已同步或可供用户测试。

基础门禁结果

检查 结果 证据摘要
./scripts/check-minimal.sh PASS 首次因当前 PRD 缺 ## Scope 被治理门禁正确阻断;补齐任务合同后重跑通过。
Process contract PASS baseline 模式无阻断。
Trellis governance PASS 当前 task 和治理合同有效。
敏感内容检查 PASS 扫描 30 个文件,0 finding。
cd server && npm run prisma:validate PASS Prisma schema 有效。
Server static checks PASS 脚本语法/静态门禁通过。
cd server && npm test PASS 153/153 文件、786/786 用例通过。
cd client && npm run typecheck PASS TypeScript 无错误。
cd client && npm run build PASS Vite 处理 2381 modules;PWA 生成 102 个 precache entries。
Feature matrix PASS 无阻断。
部署环境合同 PASS 无阻断。
UI 静态设计规则 PASS 扫描 137 个文件,0 finding。
cd client && npx playwright test --list PASS 枚举 144 tests / 56 files;只代表清单可解析,尚不代表行为通过。
文档审计 PASS with warnings 0 error;22 个未登记文件、19 条既有启发式 warning,后续单独归类。

基础门禁观察到两个非阻断工具链提示:Node punycode 弃用提示、Browserslist 数据陈旧提示。二者不等同于产品故障,进入工程维护观察项。

已确认的门禁缺口

移动路由静态合同

node scripts/qa/check-mobile-route-contract.mjs 返回 1 个 finding:

  • client/src/router/index.tsx:336 的 /mobile/wecom-approval-archive 直接挂载 PC 页面组件 WecomApprovalArchivePage。
  • 脚本规则明确禁止 /mobile 路由直挂非 Mobile*Page 组件。
  • 当前状态:LIKELY。静态合同失败已经确认,但最终严重级别和用户影响需结合 375px 浏览器复核后裁定。

真实角色权限矩阵

node scripts/qa/check-oa-permission-matrix.mjs 未执行:

  • 脚本默认访问公网地址,并要求多个真实角色凭据;同时会写入时间戳报告目录。
  • 这超出当前“无公网、无凭据、无真实数据”的批准边界。
  • 当前状态:EXTERNAL_GATED,不能记为 PASS 或 FAIL;准入条件是另行批准公网只读检查并提供脱敏测试角色。

生成物所有权与清理

  • client/dist/ 由本轮前端 build 于 2026-07-16 21:33 生成,已被 .gitignore 忽略;任务结束前可安全删除。
  • client/playwright-report/ 于 2026-07-16 21:34 生成,已被 .gitignore 忽略;聚焦 E2E 完成后与本轮 test-results/、专用截图目录一并清理。
  • artifacts/ 下已有历史审查证据不属于本轮生成物,不删除、不改写。

安全边界复核记录

  • 未发现 dangerouslySetInnerHTML、直接 innerHTML、eval、字符串代码执行或不安全 postMessage 等明显前端执行 sink。
  • 安全结论仍需结合认证/授权、cookie/CSRF、代理信任、signed URL 和附件下载链路;“未命中关键词”不能替代这些跨层检查。