feat: auto committed

This commit is contained in:
SpecialX
2026-07-10 15:05:47 +08:00
parent 9ba368477d
commit 14d836beb0
5 changed files with 337 additions and 253 deletions

View File

@@ -60,11 +60,11 @@
### 2.3 HTTP 调用(如有)
| 被调用方 | Method.Path | 用途 | mock 策略 |
| ------------------- | ------------------------- | --------------------------------------------- | ----------------------------------------------------------------- |
| api-gateway (ai01) | POST /api/teacher/graphql | 教师 GraphQL 查询(经网关代理到 teacher-bff | api-gateway/teacher-bff 就绪前使用 MSW 拦截返回 mock GraphQL 响应 |
| api-gateway (ai01) | POST /api/auth/login | 教师登录 | api-gateway 就绪前使用 MSW 返回固定 JWT |
| push-gateway (ai02) | GET /ws | WebSocket 实时通知 | push-gateway 就绪前使用 mock-socket 模拟 WS 推送 |
| 被调用方 | Method.Path | 用途 | mock 策略 |
| ------------------- | ---------------------------- | --------------------------------------------- | ----------------------------------------------------------------- |
| api-gateway (ai01) | POST /api/v1/teacher/graphql | 教师 GraphQL 查询(经网关代理到 teacher-bff,对齐 matrix.md §5 | api-gateway/teacher-bff 就绪前使用 MSW 拦截返回 mock GraphQL 响应 |
| api-gateway (ai01) | POST /api/auth/login | 教师登录(非 GraphQL认证前提F12: JWT 存 localStorage | api-gateway 就绪前使用 MSW 返回固定 JWT |
| push-gateway (ai02) | GET /ws | WebSocket 实时通知 | push-gateway 就绪前使用 mock-socket 模拟 WS 推送 |
### 2.4 GraphQL 查询域(经 api-gateway 代理到 teacher-bff
@@ -97,8 +97,8 @@
- [ ] teacher-portal dev server :4000 启用
- [ ] MF Shell 可加载(首页渲染 AppShell + 导航)
- [ ] 子应用路由可访问(/classes /exams /homework 等子页面渲染)
- [ ] 登录流程可用POST /api/auth/login 获取 JWT 存入 cookie
- [ ] GraphQL 查询可执行(currentUser / myClasses 返回数据
- [ ] 登录流程可用POST /api/auth/login 获取 JWT 存入 localStorageF12P6 迁移 httpOnly cookie
- [ ] GraphQL 查询可执行(dashboard / viewports / me / classes / class QueryARB-001
- [ ] WebSocket 通知可接收push-gateway 推送 → 前端通知中心更新)
---
@@ -118,9 +118,9 @@ teacher-portal 是最前端,无下游消费方。但对开发体验提供:
- **HTTP/GraphQL mock**:使用 MSWMock Service Worker拦截所有请求
- POST /api/auth/login → 返回固定 JWT + UserInfo
- POST /api/teacher/graphql → 根据 operationName 返回对应 mock 响应(与 teacher-bff mock 数据一致)
- POST /api/v1/teacher/graphql → 根据 operationName 返回对应 mock 响应(与 teacher-bff mock 数据一致,对齐 §2.3
- 所有 mock 响应定义在 `apps/teacher-portal/src/mocks/fixtures/*.json`
- **WebSocket mock**:使用 mock-socket 库
- 连接 ws://localhost:8081/ws 后每 30 秒推送 1 条 mock 通知
- **JWT mock**:使用固定 mock JWT与 api-gateway mock 公钥配对),存入 httpOnly cookie
- **JWT mock**:使用固定 mock JWT与 api-gateway mock 公钥配对),存入 localStorageF12P6 迁移 httpOnly cookie
- **环境切换**:通过 `NEXT_PUBLIC_API_MOCKING=enabled` 环境变量控制是否启用 MSW上游就绪后设为 `disabled`

View File

@@ -155,6 +155,31 @@
---
### ISSUE-042-ai13仲裁核查 - 01/02 文档未同步已裁决的 GraphQL 架构
- **提请方**ai13
- **日期**2026-07-10
- **类型**:文档同步遗漏(仲裁核查)
- **阶段**P2
- **描述**
- 按"对已有仲裁进行核查"要求,审查 ISSUE-036~041均已裁决在文档中的落地情况
- 核查发现:`apps/teacher-portal/docs/01-understanding.md``02-architecture-design.md` 仍为 ai07 标识 + REST 架构,**未同步**以下已裁决事项:
- F9ISSUE-036P2 起 all-in GraphQL无 REST 过渡 — 01 §1/§3.1 仍写"P2-P3 用 REST 过渡"02 全文基于 RESTApiClient/TanStack Query/契约清单)
- ARB-001ISSUE-037teacher-bff GraphQL schema 第一版 5 Query — 01 §3.1 列 REST 端点02 §4/§10 全 REST
- ARB-002ISSUE-038/039MF Shell 暴露清单GraphQLProvider + hooks + UI 组件 + urql/graphql singleton— 01 未提02 §1.2 exposes 仅 AppShell+shared-deps、P2 配 3 remotes、shared 无 urql
- 总裁 §2.17ISSUE-038GraphQL client 单例方案 A — 02 §11.3.2 仍列"GraphQL vs REST"未决(已裁决)
- 对照已回写的 `03-long-term-architecture.md §1.4`GraphQL 最终方案01/02 严重滞后
- **建议方案**
1. 01-understanding.mdai07→ai13§1 删除 REST 过渡§3.1 REST 端点→GraphQL queriesARB-001§4 技术栈补 urql补 ARB-002 暴露清单
2. 02-architecture-design.mdai07→ai13全文 REST→GraphQL 重写MF 配置对齐 ARB-002API 层改 urql client契约清单改 GraphQL§11.3 未决决策改已决策)
- **状态**:✅ 已回写闭合2026-07-10审查批次
- **coord 裁决**:无需新裁决(复用 ISSUE-036~040 已有裁决),本次为文档同步执行
- **回写执行**
- `01-understanding.md`:已修正 ai07→ai13、§1 REST→GraphQL、§3.1 REST 端点→GraphQL queriesARB-001、§4 补 urql/GraphQL client 技术栈、补 ARB-002 暴露清单、端口对齐、字体令牌描述
- `02-architecture-design.md`:全量重写为 GraphQL 架构§1 MF 图加 GraphQLProvider 层§1.2 MF 配置对齐 ARB-002 exposes/shared/remotes=0§2 领域模型数据源改 GraphQL Query§3 缓存层改 urql cacheExchange§4 API 设计改 urql client 单例 + ARB-001 Query/Mutation§10 契约清单改 GraphQL§11.3 未决决策改已决策表;端口 3000→4000
---
**AI Agent**: ai13teacher-portal
**Branch**: feat/teacher-portal-issues-migrate-ai13
**Coordinator**: coord-ai

View File

@@ -74,7 +74,7 @@ gantt
- 学生列表页classStudents GraphQL queryiam 数据)
- 个人设置页currentUser + updateUser GraphQL query/mutation
- **依赖**teacher-bff GraphQL schema 第一版ai03 + coord 仲裁 ISSUE-037+ api-gateway 路由ai01
- **Mock 策略**MSW 拦截 POST /api/teacher/graphql + POST /api/auth/login见 contract.md §4.2
- **Mock 策略**MSW 拦截 POST /api/v1/teacher/graphql + POST /api/auth/login见 contract.md §4.2,对齐 matrix.md §5 路径前缀
- **验收标准**MF 配置不破坏单体 + GraphQL 拉取数据 + 登录→Dashboard→班级列表→学生列表链路通
### P3考试/作业/成绩 + 乐观更新 + 多 Tab 同步
@@ -135,7 +135,7 @@ gantt
| --------------------------------------------------------- | ------------------------------------------------- | -------- | ---------------------- |
| packages 骨架ai13 自建) | ui-tokens/ui-components/hooks 可 import | P2 启动 | ✅ 已就绪(批次 0.15 |
| teacher-bff GraphQL schemaai03 + coord 仲裁 ISSUE-037 | packages/shared-ts/contracts/graphql/ 第一版 | P2 启动 | ⏳ 待 coord 仲裁 |
| api-gateway HTTP :8080ai01 | /api/teacher/graphql + /api/auth/login 路由可用 | P2 启动 | ⏳ 待 ai01 |
| api-gateway HTTP :8080ai01 | /api/v1/teacher/graphql + /api/auth/login 路由可用 | P2 启动 | ⏳ 待 ai01 |
| teacher-bff core-edu 扩展ai03 P3 | classExams/classHomework/studentGrades query 可用 | P3 启动 | ⏳ 待 ai03 P3 |
| teacher-bff content/data-ana 扩展ai03 P4 | knowledgeGraph/studentAnalytics query 可用 | P4 启动 | ⏳ 待 ai03 P4 |
| push-gateway WebSocket :8081/wsai02 P5 | WS 连接可建立 + 推送可接收 | P5 启动 | ⏳ 待 ai02 P5 |