docs(mvp): 总账收口 S7 全线+S6a+M3/S8 Dify app 阻断+剩余路线图

S7d 代码层 b583bd6d、S6a 2ac42a06 记账;标注真环境阻断:Dify 各 app 模型后端未配好(写作透传
/chat-messages 500),所有者须在 Dify 侧修复,M3/S8 live 才过;S6 走 Datasets 不受此阻断。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
lili 2026-07-08 01:26:59 -07:00
parent b583bd6dc6
commit 6c68b26c6f

View File

@ -48,7 +48,16 @@
- **S7b**commit fcd0623a新增独立瞬态加密表 `muse_ai_generated_fulltext`V36AES 加密+TTL+决定即清),执行器写瞬态 Store不在终态 purge出向存活到决定投影在 done 前发 chunk 引用行payload 只含 contentRef、绝不带正文SSE `chunkData` 回 Store 取正文填 content采纳/放弃即 purge。完整正文永不进 chunk payload/候选长期列四重亲验。ai 模块 528 用例绿。
- **S7c**commit 43a08624纯前端。采纳恒走 merge_after_edit+finalContent=用户审定完整正文改没改都送Canonical 由客户端回传写入修掉「原样采纳写摘要」潜伏缺陷流健壮性三分happy/疑似截断提示重生成/流空标 degraded 警告)。**MSW-off e2e 真后端+真 New-API 端到端证实 Canonical content_text===客户端 finalContent**、revision 递增。tsc/vitest 121/build/lint/e2e 全绿。
- 真 PG 一次真生成经护栏+chunk 携全文+决定后 purge+重连回取的整链冒烟,并入 M1 由主会话跑现有 harness避免新造 P1r live IT 触发内容过滤器)。
剩余:**S7d**(生成 provider 切 Difyworkspace 已就绪S6a 端口重命名主树重做中(此前 worktree 隔离基线陈旧 320 commit 作废,教训入个人记忆)。
- **S7d**commit b583bd6d代码层完成`RoutingMuseAiRuntimeClient` 补 Dify 装配为占位 Unavailable 时的 fail-closeddify 选中但未装配/凭据缺→返回 Dify 专属 `AI_DIFY_UNAVAILABLE` 拒绝,**绝不回退 New-API**,亲验 dify 分支三出口均不触碰 newApiClientDify non-stream-read 超时 90→180s 对齐180≤180<SSE 死线 240solo-compose.env.example 启用 Dify 凭据取自既有 S1 DIFY New-API 保留ai 模块 530 用例全绿`P1rDifyChatLiveAcceptanceIT` 真连 100.64.0.8:18080 wiring/契约/失败映射通过。**在用 Agent runtimeProvider 存于 `muse_ai_agent_version.config` 运行时 DB JSON 非静态种子**故真正切 Dify live 数据操作 M3
**⚠ M3/S8 live 阻断(真环境发现,所有者须处理)**Dify「muse-写作透传」app75f105e8`/chat-messages` 返 HTTP 500、而 `/info` 返 200 → **该 app 在 Dify workspace 里的模型后端未配好Dify 侧 app 配置,非 Muse 代码)**。Muse 代码表现正确(映射 `AI_DIFY_PROVIDER_5XX` 可重试+fail-closed、不伪成功、不回退 New-API。**所有者须先在 Dify 控制台为 Muse 各 app写作透传、极可能还有「全书解析」S8 用的 app配好模型后端**M3S7 Dify 生成 happy-path与 S8 live 才能过。知识 DatasetsS6 用)已由 S1 `P1rDifyDatasetsContractLiveIT` 契约验证、不依赖 chat 模型后端,故 **S6 不受此阻断**
**S6/S7/S8/S9 线剩余2026-07-08 收口)**
- **S6a 完成**commit 2ac42a06知识端口 RagFlow→Knowledge 重命名 + 裁 7 无用操作285 单测+双 profile 编译绿)。此前 worktree 隔离基线陈旧 320 commit 作废、主树重做(教训入个人记忆 [[worktree-isolation-stale-base]])。
- **S6be 待做**(不受 Dify chat-app 阻断,可全程真验):`DifyKnowledgeRuntimeClient` 5 操作 adapter → 检索改多 dataset 并行+按 score 合并 topKDify `retrieve` 单库、响应 `records[].segment.content/score`)→ DDL V35 加 `runtime_batch_id`+轮询主键 documentId→batch → 删 RAGFlow 实现/装配/live IT → 新 `P1rDifyKnowledgeRuntimeEndToEndLiveAcceptanceIT` + 检索质量 smoke。
- **S8 待做**live 段依赖 Dify「全书解析」app 模型后端修好):导入解析按 provider 选 parser + `DifyMuseAiImportLlmParser` + 摘 New-API 配置(本步是 New-API 退出完成门)。
- **S9 待做**(前置 S6+S8docker-compose.solo.yml + 无 Nacos 干净启动 + 全程真后端真库真 Dify 黄金旅程 + review v0.2 §9 七条判据留证。
- **主会话欠的 live 冒烟**M1New-API 真生成经护栏+chunk 携全文+决定后 purge+重连回取整链,避免造新 P1r 克隆、走现有 harnessM3Dify 生成 happy-path待 app 模型修好)。
**E1 content 创作闭环切片(2026-06-27)**:已补 AI suggestion 采纳归档、前端“改后合并”入口、IndexedDB 草稿键对账、旧知识草稿失效、工作台知识/导入/导出/记录入口、Block 版本历史最小 API/UI。Content merge 写 Canonical 与来源归因后,必须由 AI owner 写 `accepted` 状态、accepted decision archive、AI command、business auditAI owner 不可用时整笔 merge 回滚,避免 Canonical 已写但候选仍 pending。Content 正文变更后通过 Knowledge owner API 将关联 pending draft 标为 `conflicted/needs_recheck` 并写 Knowledge draft decision archive通知失败不回滚 Canonical 主写Knowledge confirm 端仍按来源状态 fail-closed。Studio `CandidatePanel` 支持编辑最终正文并按 `accept_as_is`/`modify_then_merge` 提交IndexedDB 草稿键改为 `workId+blockId+revision` 防跨作品/版本污染。`saveBlock`/`mergeBlockSuggestion` 现在写 `muse_content_block_revision_snapshot`工作台“历史”Tab 只读展示 Canonical revision 快照;导入可创建真实任务,导出支持范围/格式选择、任务查询与下载凭证消费,知识/记录入口跳转对应工作台。fresh 证据:后端局部单测 `ContentSourceServiceTest` 25/0F/0E、`ContentAppServiceTest` 19/0F/0E、`MuseKnowledgeDraftInvalidationServiceTest` 3/0F/0E、`AiSuggestionMergeProjectionFacadeTest` 7/0F/0E契约/覆盖门 `ContractFirstGateTest` 4/0F/0E + `P1rApiCoverageReportTest` 8/0F/0Ereal-PG `P1rContentCoreCompletedApprovalIT` 13/0F/0E/0S + `P1rContentMergeSuggestionIT` 5/0F/0E/0S + `P1rContentMergeGeneratedSuggestionIT` 1/0F/0E/0Sstudio `tsc -b --force` 通过、lint 0 errors、Vitest 12/12追加 `AIPanel.contract.test.tsx` + `sse.test.ts` 22/0F/0E导出 UI 追加 `useWorks.test.tsx`+`ExportWorkModal.test.tsx` 11/0F/0E、目标 ESLint 0 errors。共享 PG 写入闸门批准后已补跑 MSW-off Playwright 真后端 `accept-suggestion.spec.ts` 2/0F/0E:正路真 New-API 生成 suggestionId=79、authz `rpe-local-*`、Block revision 160→161、AI owner accepted decision archive 非空;负路 stale revision 业务冲突。边界:`muse-studio/src/types/content.ts` 生成类型因 openapi-typescript 版本漂移未同步hook 内暂维护 `BlockRevision` 最小类型;完整导入向导已在 RC 后补,见下方记录;真后端导出下载 e2e 已在 2026-06-28 补跑通过FileApi 异常仍按后端合同 fail-closed。