docs(进度总账): 回写 studio G 已安装 KB 停用/恢复 + 全量 e2e 35/1
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
d4c530524e
commit
be392157cb
@ -156,7 +156,7 @@
|
||||
|
||||
- ✅ **2026-06-15:整套 studio e2e 单次全绿 8/8**(chromium,MSW off 直连单体 48080)——accept-suggestion 正+负 / knowledge-confirm / live-read ×4(content·market·account·ai) / workspace 壳;MSW-off 已固化进 `playwright.config.ts` webServer `env`(CI 自起 vite 生效)+ `.env.local`(本地);`workspace.spec.ts` 原 mock 假绿(断言「星海迷途」,MSW 关后必红)**已改写为不依赖 mock 的活体壳冒烟**,消除最后一处 MSW 互斥红。下列各 ✅ 切片即构成此 8/8。**(套件此后随切片增长:live-read ×4→×6 增「购买/授权」「安全事件」深页 + market-publish ×3→×8 增上架生命周期徽标 + 申诉提交·撤回·补充材料写路 + appealStatus 回显 + account-security-ack ×1 写路 + agent-create ×1 自建智能体写路,`playwright test --list` 当前共 21 例(+knowledge-graph);每轮按改动旅程实跑验证——accept-suggestion/knowledge-confirm/security-ack/market 上架徽标·申诉 依赖手工重种子。**2026-06-15 reseed 全部每轮种子依赖后 `--workers=1` 串行整套 20/20 单次全绿**(真实后端 MSW-off;**2026-06-15 已落地可入库种子**:`e2e/global-setup.ts`(pg 直连真实 PG、凭据从 infra.env 读不入库)+ playwright `globalSetup`/`workers:1`,每轮自动复位 graph/confirm-draft/accept(block3→rev1)/security-ack/appeal fixture;`source infra.env && pnpm test:e2e` 即 **20/20 单次全绿、零手工 `/tmp` 种子**(消费态下实证 globalSetup 复位后整套绿;新 agent-create 不消费这些 fixture,本轮以 `E2E_SKIP_SEED=1` 单例实跑)。)**
|
||||
- ✅ **2026-06-20:全量 e2e 9 spec/22 用例本地活体单次全绿**(goal=全量e2e真跑通)。PG 宿主 100.64.0.8 恢复在线(直连可达、Flyway 24/public 165 表)→ 查出 jar(Jun-19 00:59)缺 GET bindings 端点(commit 3a7a72f Jun-19 13:30)致 405、**rebuild Jun-20 新 jar**(反假绿:不用过时 jar 跑)→ 起栈 48080(local,infra,清 socks)→ `playwright test` MSW-off 真打:**22 passed / 0 failed / 0 skipped / 0 flaky(9.1s)**——accept-suggestion 正负×2 + account-security-ack + agent-create + knowledge-bindings(**06-19 PG 离线阻塞项 unblock**) + knowledge-confirm + knowledge-graph + live-read×6 + market-publish×8 + workspace。基础种子:核验 4/5 在,**knowledge-bindings 投影固化进 `e2e/global-setup.ts` #6**(可入库、下次自动补);0 红故无就地修。**诚实边界**:本地全栈活体(rebuild jar + 真 PG muse_slice_live),**非 CI**(maven.yml 不跑 e2e/需活体后端+浏览器)。
|
||||
- ✅ **2026-06-21:studio 补 3 缺 UI 端面 + 修 planning 二次保存 500(真后端 e2e 真跑)**。按"可端到端验证"补 3 缺口(各 hook+UI+vitest+真后端 playwright):**D Block 分割合并**(`BlockStructureBar`:章节结构条列 block、split 半分/merge 下一节,乐观锁读 revision;e2e split1→2→merge→1 绿);**E 正文来源归因**(`SourceAttributionPanel`:右栏「来源」Tab 读 GET source-attribution,user_original→用户原创;e2e 绿);**F 知识库停用/恢复**(`KnowledgePage` 自建 KB 按 status 切停用(confirm)/恢复;核实真后端 `SummaryRespVO.processingStatus=kb.getStatus()` 透出启用态(disabled/searchable),**排除"RespVO 缺启用字段"误判→无需改后端**;e2e disable→disabled/restore→active 绿)。**修真后端 bug(反假绿,#29 B5 回归)**:全量 e2e 暴露 `planning-edit` save **500**——`ContentPlanningServiceImpl.captureFieldSnapshot` 的 `deleteBySectionId` 走 @TableLogic 逻辑删除,被删物理行仍占 uk(tenant_id,section_id,field_key)(不含 deleted),用户二次保存同字段 INSERT 撞键→500;改原生 `@Delete` 物理删除根治。rebuild jar+重启 48080 验证:planning-edit e2e 1 passed + 连续 2 次 save code=0(rev3→4,旧 jar 第 2 次必 500)。**全量 e2e:34 passed**(planning-edit 经 fix 转绿)。**已修** `work-schema-binding` flaky:schema-options 由 CreateWorkModal 首页挂载预取(staleTime 60s),全量跑(后端热)请求早于 waitForResponse 注册→race→30s timeout;注册前置到 goto,复跑转绿。**剩 1 known issue(tracked,非我引入/非 #30):`market-publish`「提交审核全链」全量 timeout**——提交真成功(submitResp 200/submitted/requestId)但「我的发布记录」首页不含刚提交的 uniqueName:`MarketPublishServiceImpl#listMyPublishRecords` 拼 draft(分页 pageNo=1/pageSize=50)+request 却**无统一时间倒序**,e2e 累积 publish records 超 50 条后最新记录落到首页外(market 工作线列表组装/分页设计 + fixture 不幂等;亦是真 UX:用户看不到最新发布记录,与 market 其它列表全 `orderByDesc` 不一致)。**修法**=listMyPublishRecords 统一倒序(注:`PublishRecordItem` record 现无时间字段,需先加 occurredAt + toRecordItem 填,属契约改动)/修 draft 分页+request 全加的分页语义,或 spec 改不依赖列表首屏,或 global-setup 清 e2e publish draft/request。studio vitest 全绿(+8 用例)、tsc/eslint 0。commit:D `d0ea947`/`af78116`/`c76cdec`、E `cc57c59`、F + planning fix(content) + work-schema flaky fix。
|
||||
- ✅ **2026-06-21:studio 补 4 缺 UI 端面 + 修 planning 二次保存 500(真后端 e2e 真跑)**。按"可端到端验证"补 4 缺口(各 hook+UI+vitest+真后端 playwright):**D Block 分割合并**(`BlockStructureBar`:章节结构条列 block、split 半分/merge 下一节,乐观锁读 revision;e2e split1→2→merge→1 绿);**E 正文来源归因**(`SourceAttributionPanel`:右栏「来源」Tab 读 GET source-attribution,user_original→用户原创;e2e 绿);**F 知识库停用/恢复**(`KnowledgePage` 自建 KB 按 status 切停用(confirm)/恢复;核实真后端 `SummaryRespVO.processingStatus=kb.getStatus()` 透出启用态(disabled/searchable),**排除"RespVO 缺启用字段"误判→无需改后端**;e2e disable→disabled/restore→active 绿);**G 已安装 KB 停用/恢复**(`KnowledgePage`「从市场安装的」卡片按 `muse_knowledge_binding.binding_status` 切停用(confirm)/恢复、保留卸载;installed 启用态存 binding_status,经 list 映射 disabled→'disabled'/else→'installed' 透出,studio normalizeKnowledgeStatus 判 active/disabled;e2e 真后端 disable→disabled/restore→active 绿,global-setup section10 复位 binding id=1)。**修真后端 bug(反假绿,#29 B5 回归)**:全量 e2e 暴露 `planning-edit` save **500**——`ContentPlanningServiceImpl.captureFieldSnapshot` 的 `deleteBySectionId` 走 @TableLogic 逻辑删除,被删物理行仍占 uk(tenant_id,section_id,field_key)(不含 deleted),用户二次保存同字段 INSERT 撞键→500;改原生 `@Delete` 物理删除根治。rebuild jar+重启 48080 验证:planning-edit e2e 1 passed + 连续 2 次 save code=0(rev3→4,旧 jar 第 2 次必 500)。**全量 e2e:35 passed/1 failed**(planning-edit 经 fix 转绿、+G installed KB 使通过数 34→35;唯一 fail=market-publish known issue 见下,非本批引入)。**已修** `work-schema-binding` flaky:schema-options 由 CreateWorkModal 首页挂载预取(staleTime 60s),全量跑(后端热)请求早于 waitForResponse 注册→race→30s timeout;注册前置到 goto,复跑转绿。**剩 1 known issue(tracked,非我引入/非 #30):`market-publish`「提交审核全链」全量 timeout**——提交真成功(submitResp 200/submitted/requestId)但「我的发布记录」首页不含刚提交的 uniqueName:`MarketPublishServiceImpl#listMyPublishRecords` 拼 draft(分页 pageNo=1/pageSize=50)+request 却**无统一时间倒序**,e2e 累积 publish records 超 50 条后最新记录落到首页外(market 工作线列表组装/分页设计 + fixture 不幂等;亦是真 UX:用户看不到最新发布记录,与 market 其它列表全 `orderByDesc` 不一致)。**修法**=listMyPublishRecords 统一倒序(注:`PublishRecordItem` record 现无时间字段,需先加 occurredAt + toRecordItem 填,属契约改动)/修 draft 分页+request 全加的分页语义,或 spec 改不依赖列表首屏,或 global-setup 清 e2e publish draft/request。studio vitest 全绿(+9 用例,全套 79/79)、tsc/eslint 0。commit:D `d0ea947`/`af78116`/`c76cdec`、E `cc57c59`、F `494f3b5`、G `d4c5305`、planning fix `a9323ad`、work-schema flaky `fa65168`。
|
||||
- 现状:其余旅程仍 ~14% 真连、dev 默认 MSW;但 MVP#1 已打通"关 MSW→直连活体→playwright e2e"模式(见下),可复用到后续旅程。
|
||||
- ✅ **AI 候选采纳(rendered UI 活体证,2026-06-14)**:`main.tsx` 加 `VITE_API_MOCK=false` 开关关 MSW、前端直连活体单体;`accept-suggestion.spec.ts` 在 chromium 实跑——**happy-path**(生成经 page.route stub 发真实 suggestionId→点"采纳替换"→真合并)隔离跑绿 + DB 证(block rev1→2、正文=候选);**negative-path**(陈旧 revision)绿(乐观锁 1041000002)。连带**真实修复 client.ts 注入 tenant-id**(活体集成缺口,dev MSW 不校验故没暴露)。**遗留**:happy-path 受种子状态依赖(合并后 block rev 变 + RQ 缓存,需 fresh 种子复跑);`workspace.spec.ts` 已改活体壳冒烟(2026-06-15,MSW 互斥红消除、整套 8/8 全绿);suggestion 合并后留 pending=merge 不在同事务回写 AI 域状态(靠 outbox→AI 异步翻,本机 dispatcher 节流故 DB 仍 pending,读 `ContentSourceServiceImpl` 确认,非产品 bug)。
|
||||
- ✅ **content/market/account/ai-agent 读旅程(rendered UI 活体证,2026-06-14)**:`live-read.spec.ts` 4/4 绿(MSW off,chromium:作品列表/市场浏览/个人中心/智能体列表均渲染真实后端数据)——证 tenant-id 修复后 studio 直连活体单体跨 BC 取数、真实数据形态与页面渲染契约对齐。
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user