ai-chatbot/docs/delivery-readiness-audit.md
2026-05-27 21:14:52 +08:00

4.6 KiB
Raw Blame History

yedir-ai 交付就绪审查摘要

日期:2026-05-27

本文档记录当前分支进入 PR / 商业化交付前的审查入口。它不是替代 CI 的结论,而是帮助 reviewer 快速理解本轮大改的边界、验证证据和剩余远端动作。

当前分支状态

  • 工作分支:codex/admin-settings-ui-refactor
  • 基线分支:github/main
  • 当前状态:已同步 github/main,behind 0;具体 ahead 数以 pnpm check:branch 当前输出为准
  • 本地工作区:干净
  • Dry-run merge:mergeConflictMarkers: 0
  • 当前 PR 体量:约 198 个文件变更;非 merge 提交数以当前 git log --no-merges github/main..HEAD 输出为准

主要交付范围

  • 后台设置页:本地 AI 设置拆出导航、命令中心、section shell、状态 badge、领域 section 组件和共享类型,降低巨型设置页维护成本。
  • 旧 Chat 清理:首页固定 Lovart 新首页,/classic 与 /chat/[id] 旧 UI 入口重定向到 /,/api/chat 保留为 Canvas/Agent 内部生成 API。
  • 首页性能:Lovart 首页改为轻量壳优先,公开首页接口增加缓存、fallback、超时和基础性能观测。
  • Canvas / Chat 工程化:拆分 LovartHome、ImageNode、CanvasChatPanel 和 /api/chat 的多个纯逻辑/展示模块,保留业务协议与调用方行为。
  • 日志安全:新增结构化 logger、客户端 logger、脱敏工具和分批日志门禁,覆盖高风险 provider、上传、认证、Canvas 和部分生成链路。
  • 仓库治理:清理 tracked 本地污染物,补齐 .gitignore、CI hygiene、secret/env/package metadata/test hygiene、dependency audit、release verification 和 branch readiness 检查。
  • 生产构建:pnpm build 与数据库迁移解耦,重型工作台页面改为动态渲染,迁移脚本增加连接/整体超时,并新增独立 Build workflow 验证生产构建。
  • 文档交付:README、部署、运维、架构、安全、贡献、支持、发布清单和依赖风险登记已按 yedir-ai 项目定位重写或补齐。

已验证证据

git fetch github main --prune
pnpm check:branch
pnpm build
SMOKE_BASE_URL=http://127.0.0.1:3001 pnpm verify:release

最近一次本地验证结果:

  • pnpm check:branch 通过,behind 0,mergeConflictMarkers: 0。
  • pnpm build 通过;构建不再隐式连接数据库,/flow-board 与 /product-planning 不再在 build-time 静态生成超时。
  • pnpm check:quality 通过,覆盖 lint、日志脱敏、品牌、CI、env、secret、metadata、测试卫生、helper 测试、TypeScript、diff hygiene 和 tracked artifact。
  • pnpm audit:security 通过 high/critical 门槛;当前剩余 1 low / 44 moderate。
  • pnpm smoke:routes 通过:
    • / 返回 200
    • /classic 返回 307 到 /
    • /chat/test-id 返回 307 到 /
    • /settings 未登录返回 307 到 /login?callbackUrl=%2Fsettings

Reviewer 建议审查顺序

  1. 先看仓库治理与 CI:package.json scripts、.github/workflows/*、scripts/check-*.mjs、docs/release-readiness.md。
  2. 再看产品入口变化:app/(chat)/page.tsx、app/(chat)/classic/page.tsx、app/(chat)/chat/[id]/page.tsx、components/home/*。
  3. 然后看设置页工程化:app/(admin)/settings/_components/*、app/(admin)/settings/_lib/*、admin-settings-client.tsx。
  4. 再看核心模块拆分:app/(chat)/api/chat/_lib/*、components/canvas/chat-panel/*、components/canvas/nodes/image-node/*。
  5. 再看生产构建边界:lib/db/migrate.ts、app/(chat)/flow-board/page.tsx、app/(chat)/product-planning/page.tsx、app/layout.tsx。
  6. 最后看日志治理和风险面:lib/observability/*、scripts/check-log-hygiene.mjs、高风险 API route 的 logger 替换。

剩余远端动作

  • Push 当前分支到 GitHub。
  • 创建 PR,并在 PR 描述中粘贴本地验证证据。
  • 如需远端验证,手动触发 GitHub Actions:基础质量门禁、Production Build、Dependency Audit、Playwright workflow。
  • 根据 PR diff 做最后一次人工审查;如 GitHub Actions 与本地结果不一致,以远端 CI 为准处理。

当前不包含的范围

  • 不删除数据库历史 Chat / Message / Vote / Stream 数据结构。
  • 不把 /api/chat 迁移为公开 API;它仍是内部生成链路。
  • 不把所有历史 console.* 一次性清零;日志治理采用高风险链路分批纳管。
  • 不解决所有 moderate / low 依赖告警;高/critical 是当前阻断线,剩余项由依赖风险登记持续跟踪。
  • 不做法律层面的商业许可证调整;License 仍以仓库根目录 LICENSE 为准。