docs(p1r): 回写 market KB 物化 D0-fork 实现完成(四单元真闭环)
D1=S 澄清纠偏→D0-fork、U-fork/U-materialize/U-retrieve/U-verify 四单元实现完成、真 PG+真 RAGFlow 端到端真闭环(commit 5a93831→8b3258e);诚实标召回回滚 D9 开放项+e2e 部分 fixme。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
8b3258e22f
commit
c8acd70837
@ -195,6 +195,8 @@
|
||||
- ✅ **2026-06-26:抽样关键链路 P1r 真 PG IT 验证(用户选抽样、6/6 全绿,commit a0569c6)**。从 50 个 P1r IT 选 6 个关键链路抽样(本 session knowledge 多 binding 停用 + AI 生成→采纳 ADR-020 + AI runtime e2e + 知识检索 P-A/B/C + market handoff),真 PG muse_slice_live + New-API/RAGFlow 真外部跑 **6/6 全绿**。修 1 个预存红(非本 session、测试基建跟上产品演进):`P1rAiRuntimeEndToEndLiveAcceptanceIT` TARGET_VERSION 13→31(ADR-020 V30 把 muse_ai_suggestion.authorization_snapshot_id BIGINT→VARCHAR、停 V13 bigint 类型不匹配)+ 补 MuseAiEventPublishOutboxService 空实现/KnowledgeRetrievalFacade empty context 两 bean(ADR-020 outbox+P-A 检索演进新增 @Resource 依赖、IT 上下文未跟上;校验属其他 IT 职责、与 P1rContentMergeGeneratedSuggestionIT 同源),核心 AI 生成→runtime_call→落库断言不变。**anti-false-green**:核实 diff 合理非放宽 + muse-server test-compile BUILD SUCCESS(独立跑因 IT `flyway.clean()` DROP `_test` 库风险未做、改以核实 diff+编译+agent 双报全绿替代)。抽样 6/6 后**用户选继续→全量 50 P1r IT 全跑 50/50 全绿(199 用例 0F/0E/1S、1 skip=RagFlow GraphRAG assumeTrue、含 4 个 LiveAcceptance 真打 New-API/RAGFlow,commit 94545ff)**:再修 2 个预存红(均非本 session)——`P1rContentPlanningCompletedApprovalIT`(TARGET_VERSION 21→31、savePlanningItem 依赖 V25 新增 muse_content_planning_field_snapshot 表 commit 94a2379、停 V21 缺表 500;核心 planning fact/command/outbox 断言不放宽)+ 4 个 live-acceptance **第二代理坑**(已记 SOCKS 清理只清 socksProxyHost、但 macOS 系统代理 127.0.0.1:7897 仍被 JVM 注入 http.proxyHost/https.proxyHost、`java.net.http.HttpClient` 走死代理→502/UNAVAILABLE;反误判=`curl --noproxy '*'` 直打同地址 health/completions 全 200 证外部健康、非外部波动;修=argLine 加 `-Dhttp.proxyHost= -Dhttps.proxyHost= -Djava.net.useSystemProxies=false`),蒸馏 external-deps-and-gotchas。**anti-false-green**:核实 Planning diff 仅 schema 版本非放宽 + 独立核实生产切片库 **muse_slice_live 167 表+数据完整未被 IT flyway.clean 误删**(work 真名 muse_content_work 我曾误用 muse_work 虚惊;IT 全走 muse_p1r_*_test 隔离库、_test 铁律遵守)。**至此本 session 验证三层全维度全绿:e2e(admin 12 + studio 56)+ CI 单测(全 reactor 2834/0)+ 真 PG IT(全量 50/50)**。
|
||||
- ✅ **2026-06-26:market install 下游物化方向——评审→拍板 B'/KB 先行→执行版 plan→U0 spike→拍 D1=S(commit 26ff1af/76a7e0d、U0 spike 产物待审)**。三层验证全绿后用户选"market install 后下游物化"方向。**深调研(2 agent corroborate+spot-check)**:install 只写 `muse_market_installation`+license projection、与 ai/knowledge 完全解耦、不物化用户空间 agent/kb;两断点=①无 install→ai/knowledge 桥 ②bind/slot 只建引用绑定(KB:binding+projection 指 sourceId、无本地 `muse_knowledge_base` 行/dataset→检索 no_dataset 第四门静默省略;agent:slot 放宽但 runtime `requireVisibleAgent` 拒裸引用)→用户 install 后不可真用(P1 knowledge handoff e2e 绿是 fixture 巧合 asset1→kb_id=1 恰有 seed dataset)。**评审版(临时-02)**:C/B'/B/暂缓 四方案,handoff 非物化桥(只跳转+消费域内部写)、物化落点应在目标域绑定路径、安装解耦正确不动;用户拍 **B'(installed_ref 最小留痕)+ KB 先行**(agent 物化下一阶段)。**执行版 plan(临时-03)**:U0-U4 实现单元,一手核验揪四硬事实(kb_id 被 assetId 污染、跨 BC 反查链断需新 `MarketAssetSourceApi`、共享 dataset 必越权、`muse_source_propagation_target` 表不存在)。**U0 spike(产 D1 证据、只 spike 测试零业务代码)**:spike 单测 13/0 钉死越权(他租户 chunk 原样返回+documentIds/metadataFilter 均 null 整库扫描、独立复跑 BUILD SUCCESS 确认)+活体真 RAGFlow 整库返回;**揪出潜伏 bug**:检索发 `metadata_filter` 但 RAGFlow 官方契约(context7 `/infiniflow/ragflow`)是 `metadata_condition`→被静默忽略(乱值条件仍返 baseline、活体对照)。**用户拍 D1=S(补隔离后共享)**:真最小留痕/省存储;S 分支据 U0 定调=隔离优先 `metadata_condition`(活体验证生效)+物化打安装维度元数据+`metadata_filter→metadata_condition` 字段修正纳入 U3+U4 隔离回归复用 spike 2 反向基线。**下一步执行 U1-U4(S 分支)**。anti-false-green:每 agent 报告独立 spot-check(install 解耦/dataset 门/kb_id 污染/共享越权/表不存在均亲验)、spike 单测独立复跑、字段 bug 经 context7 官方契约+活体双证。
|
||||
|
||||
- ✅ **2026-06-26(同日续):market KB 物化 D1=S 澄清纠偏→D0-fork + 四单元实现完成、真 PG+真 RAGFlow 端到端真闭环(commit 5a93831/30a693e/d4309ab/8b3258e)**。承上条 D1=S,执行前委托澄清揪出**越权论证主体错**:U0 spike 的"安装者间越权"前提不成立(只读共享下安装者看同一份发布者 dataset、都该看全部),**真越权是"安装者读到发布者私有内容"**——market 对 knowledge/ragflow 零依赖(src+pom 双空 spot-check)→上架不 fork、安装者共享发布者**活 dataset**、上架后 KB 仍可加私有文档(上传无 market 门禁)→整库检索读到发布者上架后新增/未公开私有 chunk。临时-03 §0 误引 review(ai-knowledge-retrieval-review:26 非越权 claim、market资产物化-review:94 是跨租户两回事)。**用户拍 D0-fork(发布侧 fork 纯公开副本、物理隔离)**:上架时 fork 一份只含公开快照文档的专用 dataset、安装者只读共享、副本仅 1 份、无需运行时隔离/不依赖 metadata_filter 字段 bug(降级潜伏 R6);执行 plan 临时-04 supersede 临时-03。**四单元实现**:U-fork(发布侧 fork:上架 markListed→**进程内 Spring 事件 AFTER_COMMIT**[非统一 Events 因其无后端消费机制=架构障碍、人类拍板进程内]→knowledge @Async fork、createDataset+逐文档复制+重索引+幂等(assetId,version)/部分成功补差集/失败重试/@Scheduled 兜底,单测 14/14)、U-materialize(installed_ref 物化+**kb_id 去污染**[market_kb 不再 parseLong assetId 改本地主键、binding/projection/列表读回跟随]+MarketAssetSourceApi 跨 BC 读+D6 fail-closed,单测 26+BcBoundaryArchTest 2/2)、U-retrieve(RetrievalApiImpl 零改、no_dataset 消除、单测 15)、U-verify(真 PG muse_p1r_fork_mat_test+真 RAGFlow **2 IT 真绿 57s 独立复跑**:fork→安装→检索命中+**发布者私有不泄露真证 d0ForkIsolationProven**[活 dataset 真传 magic、安装者检索副本拿 magic 当 query 仍不含]+AFTER_COMMIT 时序[committedAssetForked/rolledBackAssetForked false]+幂等+多安装者共享1副本)。**诚实遗留**:①召回/下架回滚未触达 installed_ref(recallAsset 仍 writeSourceStatusBlocked、knowledge 无召回消费者、D9 开放项不伪造闭环)②安装侧物化 studio e2e 标 test.fixme 待 global-setup 补 fork 就绪资产(检索/私有不泄露无独立 UI 入口由 IT 证)③副本资源回收/metadata_filter 字段 bug 修后置(R5/R6)。anti-false-green:每单元 agent 报告独立复跑核实(单测/BC/IT)、端到端 IT 独立复跑 2/2 真绿、私有不泄露真 RAGFlow 物理证非 mock。
|
||||
|
||||
### D. gateway 接线(B4,**配置层已收口;运行态后置**)
|
||||
- ✅ **配置层收口(2026-06-19)**:`muse-gateway` 已新增 `/admin-api/muse/**`、`/app-api/muse/** → grayLb://muse-server`,删除当前聚合入口未启用的 bpm/pay/report/mp 死路由,Knife4j 聚合入口改为 `muse-server`。新增 `GatewayRouteConfigurationTest` 机械门禁,断言 Muse 路由存在、停用模块路由不回潮、Knife4j 不展示停用服务;本轮 `mvn -pl muse-gateway test -Dtest=GatewayRouteConfigurationTest` **3/3 绿**。
|
||||
- ⏸ **运行态仍后置**:单体 P1R-7 仍以 `muse-server` 直服 48080 `/app-api` 为验收关键路径;`muse-server` 默认禁用 Nacos 注册,且 gateway 与 server 本地默认端口同为 48080,所以本轮不声称网关真实转发已完成。后续若启用网关部署,需补注册发现/端口方案并做 curl/e2e 首跑。
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user