71 lines
4.6 KiB
Markdown
71 lines
4.6 KiB
Markdown
# 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` 项目定位重写或补齐。
|
||
|
||
## 已验证证据
|
||
|
||
```bash
|
||
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` 为准。
|