feat(ECR-010): Ops-E 系统运营;修复登出解绑;P2 Complete
ci / h5 (push) Canceled after 0s
ci / api (push) Canceled after 0s
ci / ess-docs (push) Canceled after 0s

落地管理员 RBAC/封禁/推送任务 stub,logout 解绑 device 并统一各页 ensureAccount,同时收口 P2 生日生成与状态文档。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
jackyu66git
2026-08-11 18:54:59 +08:00
co-authored by Cursor
parent 0ee4d4f5ae
commit 5ceb3ce749
85 changed files with 2098 additions and 103 deletions
+55
View File
@@ -0,0 +1,55 @@
# P2 Status(对照 Definition of Done
**当前标签:`P2 Complete`**
判定依据:`.ai/definition-of-done.md` §9
P2 范围(feature-map):星座 · 身心节律 · 意象卡片 · 探索三级目录 · 量表矩阵 · 节气陪伴深化 · 心情记录 · 成长计划
**不含:** 真支付网关 · 消息/达人/UGC · 独立运势 Feed · 推送 · P3 长期记忆/顾问
---
## Review Report
- Feature: P2 合规全量探索收口
- Scope label: **P2 Complete**
- Architecture: PASS — handler → service → repository`star` / `rhythm` / `imagecard` / `companion` / `growth` 独立包
- API: PASS — `proto/openapi.yaml` 覆盖 star / synastry / rhythm / image-cards / explore catalog / moods / growth plans
- Security: PASS — report detail 服务端按 DeepAccess 裁剪;配额与归属校验在服务端
- Test (L0/L1/L2/L3): PASS
- L0: `go test ./...` · `npm run build:h5` · `npm run test:h5`
- L1: star / synastry / rhythm / imagecard / explore
- L2: `internal/integration` — p2_flows · synastry · explore_catalog · growth checkin
- L3: Playwright `e2e/p2-explore-paths.spec.ts` + `e2e/portrait-main-path.spec.ts`
- Frontend states (L/E/E/N): PASS — 主路径页具备加载/空/错/正常;深度版 Locked
- Documentation: PASS — Spec Active + P2-BACKLOG Done + 本文件
- Environment: PASS — `commands.md` 本机 Go/Vite + compose.dev 仅 DB
- Known Issues:
- 真支付仍为 mock(部署阶段)
- 意象卡库:手写底稿 + 确定性扩至 ≥78(非全手写美术)
- 推送未做(Ops-E / 后置)
- Ask 无 key 时规则引擎降级
---
## 本轮收口变更
| 项 | 结果 |
|---|---|
| 生日表单生成误用 `getLatestReport` | 已改回 `createPortrait` / `createStar` / `createRhythm` |
| H5 单测 auth 门禁 mock | PASS38 |
| L3 e2e auth/profiles mock | PASS2 |
| 状态真源对齐 | P2-BACKLOG · feature-map · Spec 头 · DoD §9 |
---
## 验收路径
探索目录 → `/star`(星盘/运势/合盘)→ `/rhythm``/cards``/companion`(心情+近七日)→ `/growth-plan` → 探索量表
```bash
npm run test:api
npm run test:api:integration
npm run test:h5
npm run build:h5 && npm run test:e2e
```