feat(ci): 搭建 A0 工程骨架与契约基线 #2

Merged
wang259797 merged 7 commits from feat/ci-a0-foundation into main 2026-11-02 09:27:48 +00:00
Owner

背景

完成开发计划 A0「工程骨架与契约基线」:建立单仓工具链、API/Worker 骨架、Prisma 基线与 shared 契约包,并交付 Cloud Blue 视觉的 Web 壳层与登录页。依赖 PR #1(docs 分支)先合入 main。

改动

  • build(ci):pnpm 10 + Node 24.15.0 + Turborepo、ESLint 9 flat、Prettier、commitlint、husky、Gitea CI。
  • build(db):PG18/Redis7.4/S3 本地 compose、.env.example、Prisma 首版迁移与幂等种子。
  • feat(api):NestJS 11 + Fastify、Pino + trace_id、统一错误体、Zod 管道、/health 真实探活、OpenAPI 3.1。
  • feat(web):React 19 + Vite 6 + Router 7 + TanStack Query + Zustand、Semi 封装与图标统一出口、布局/登录/错误页。
  • test(ci):Playwright 冒烟 4 条。
  • docs(docs):A0 实施报告与 README 本地开发说明。
  • build(api):OpenAPI 契约快照入库。

影响面

  • 新增 5 个 workspace 包、3 张平台骨架表与 1 个首版迁移;不涉及业务表与权限口径。
  • 本地端口因宿主占用调整为 15432/16379/19000-19001;MinIO 镜像不可得,本地以 S3Mock 替代。
  • 种子仅覆盖 system_configs,超管/角色/字典/行业包待后续批次建表后补齐(Q-A0-01)。

回滚方式

按提交逆序 revert,或回退本分支;迁移仅新增表,可保留无害。若已部署,回滚代码后无需删除表。

验证证据

  • format:check / lint / typecheck(10/10)/ test(74)/ build(8/8)全绿。
  • test:int 通过(真实 PG/Redis,/health 200);openapi:export + openapi:diff 通过。
  • test:e2e 4/4;compose 三服务 healthy;API /api/docs 200;worker 启动正常。
  • 详细记录见 docs/开发计划/灵犀_A0工程骨架与契约基线_实施报告_V0.1.md。

批次说明

本 PR 超出 GIT-14「单 PR ≤ 400 行」限制:A0 是计划中不可拆的工程批次(工具链 + 契约 + 骨架需同时可用),且已按模块拆为 7 个提交;请在 Review 中按批次例外处理,后续批次严格拆分。

## 背景 完成开发计划 A0「工程骨架与契约基线」:建立单仓工具链、API/Worker 骨架、Prisma 基线与 shared 契约包,并交付 Cloud Blue 视觉的 Web 壳层与登录页。依赖 PR #1(docs 分支)先合入 `main`。 ## 改动 - `build(ci)`:pnpm 10 + Node 24.15.0 + Turborepo、ESLint 9 flat、Prettier、commitlint、husky、Gitea CI。 - `build(db)`:PG18/Redis7.4/S3 本地 compose、`.env.example`、Prisma 首版迁移与幂等种子。 - `feat(api)`:NestJS 11 + Fastify、Pino + trace_id、统一错误体、Zod 管道、`/health` 真实探活、OpenAPI 3.1。 - `feat(web)`:React 19 + Vite 6 + Router 7 + TanStack Query + Zustand、Semi 封装与图标统一出口、布局/登录/错误页。 - `test(ci)`:Playwright 冒烟 4 条。 - `docs(docs)`:A0 实施报告与 README 本地开发说明。 - `build(api)`:OpenAPI 契约快照入库。 ## 影响面 - 新增 5 个 workspace 包、3 张平台骨架表与 1 个首版迁移;不涉及业务表与权限口径。 - 本地端口因宿主占用调整为 15432/16379/19000-19001;MinIO 镜像不可得,本地以 S3Mock 替代。 - 种子仅覆盖 `system_configs`,超管/角色/字典/行业包待后续批次建表后补齐(Q-A0-01)。 ## 回滚方式 按提交逆序 revert,或回退本分支;迁移仅新增表,可保留无害。若已部署,回滚代码后无需删除表。 ## 验证证据 - `format:check` / `lint` / `typecheck`(10/10)/ `test`(74)/ `build`(8/8)全绿。 - `test:int` 通过(真实 PG/Redis,`/health` 200);`openapi:export` + `openapi:diff` 通过。 - `test:e2e` 4/4;compose 三服务 healthy;API `/api/docs` 200;worker 启动正常。 - 详细记录见 `docs/开发计划/灵犀_A0工程骨架与契约基线_实施报告_V0.1.md`。 ## 批次说明 本 PR 超出 GIT-14「单 PR ≤ 400 行」限制:A0 是计划中不可拆的工程批次(工具链 + 契约 + 骨架需同时可用),且已按模块拆为 7 个提交;请在 Review 中按批次例外处理,后续批次严格拆分。
wang259797 added 7 commits 2026-11-02 09:24:29 +00:00
统一 pnpm 10 + Node 24.15.0 + Turborepo 单仓,落地 ESLint 9 flat、Prettier、commitlint、husky 与 Gitea CI,作为后续批次的一致门禁。
提供 PG18/Redis7.4/S3 本地 compose、环境变量样例与 Prisma 首版迁移;建立 outbox_events、idempotency_keys、system_configs 三张平台骨架表及幂等种子。MinIO 镜像不可得,本地以 S3Mock 替代。
NestJS 11 + Fastify 统一错误体与 trace_id,/health 真实探活 DB/Redis,OpenAPI 3.1 契约含 20 个错误码;shared 包提供错误码、权限点、ULID、分页与通用 schema;worker 完成队列进程骨架。
React 19 + Vite 6 + Router 7 + TanStack Query + Zustand;Semi 二次封装与 Remix 图标统一出口;顶部模块 + 左侧功能菜单布局、Cloud Blue 主题、登录页与 401/403/404/500 页面;请求层含 token 注入、单飞刷新与统一错误提示。
覆盖登录进入工作台、403/404 错误页、模块切换与面包屑联动,并接入 CI 产物归档。
记录 A0 完成范围、门禁实测、环境适配与待确认事项;README 补充本地启动、演示登录及 A0 状态。
build(api): 提交 OpenAPI 契约快照
ci / 质量门禁 (pull_request) Canceled after 0s
ci / 质量门禁 (push) Canceled after 0s
63d8889bee
固化 A0 基线契约(OpenAPI 3.1,含 ErrorCode/ErrorResponse 与 x-error-codes),供 openapi:diff 做破坏性变更检测。
wang259797 merged commit 0f54f87c87 into main 2026-11-02 09:27:48 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wang259797/lingxi#2