lili 5a938319a8 feat(market): U-fork 发布侧 fork 公开副本(D0-fork 第一单元、进程内事件接线)
D0-fork 第一单元:知识库上架时发布侧 fork 一份只含公开快照文档的专用 dataset、安装者只读共享、物理隔离发布者私有。KnowledgeMarketForkService(核心):公开集界定(上架时刻 searchable/generative active 文档、私有不进副本)+RAGFlow 三步复制(createDataset+逐文档 uploadDocuments+startParseDocuments、无 copy API)+异步重活(幂等键(assetId,version)/部分成功补差集/失败按 FailureClass 重试/审计)。

订阅 glue(人类拍板进程内 Spring 事件、非统一 Events 因其无后端消费机制):事件对象 MarketKbListedEvent 落 market-api(守 BC、market 发 knowledge 听);market markListed publishEvent;knowledge @TransactionalEventListener(AFTER_COMMIT 不绑架审核事务)+@Async(不阻塞审核线程)+TenantUtils(异步租户上下文)+错误隔离。@Scheduled 兜底扫 forkStatus≠ready 重试(进程内事件不持久化、保最终一致、config-gated 默认关)。副本 datasetId+forkStatus 写回 ragflow_binding(market_public_fork+binding_summary JSONB)+market_asset.tags(经 MarketAssetForkApi 供 U-materialize 读)、不加 DDL。移除冗余 outbox kb_listed 双重死代码。

单测 14/14(ForkService 6+Consumer 3+Backfill 5)、BcBoundaryArchTest 2/2(market 不依赖 knowledge)、market-server 212+knowledge-server 268 回归绿、编译 SUCCESS。诚实:端到端为单测层验证、AFTER_COMMIT 真事务时序集成验证留 U-verify。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-26 11:05:13 -07:00
2026-06-19 04:26:32 -07:00
Description
No description provided
36 MiB
Languages
Java 64.8%
TypeScript 17.2%
Vue 13.8%
HTML 1.5%
JavaScript 1.2%
Other 1.3%