优化: L3事件总线入AppState(基建就位,emit双写留批3)

ai_event_bus字段独立于工作流event_bus,批2b仅入AppState+初始化。
emit点双写+前端订阅留批3:无后端订阅者(工作流独立域)+前端经ai-chat-event已收→全双写空转,待真实消费者(跨端/多模块)出现再针对性接入。渐进可回退。
This commit is contained in:
2026-06-22 00:46:35 +08:00
parent cdb227f999
commit 72e57c6232

View File

@@ -366,6 +366,16 @@ pub struct AppState {
pub resolvers: Arc<ResolverRegistry>, pub resolvers: Arc<ResolverRegistry>,
/// AI 会话状态 /// AI 会话状态
pub ai_session: Arc<Mutex<AiSession>>, pub ai_session: Arc<Mutex<AiSession>>,
/// L3 AI 事件总线(pub-sub 域,独立于工作流 event_bus)。
///
/// 批2b:总线入 AppState 就绪(基建就位)。emit 点双写 + 前端订阅**留批3**:
/// 现阶段无后端订阅者(工作流独立域)+ 前端经 ai-chat-event 已收 → 全双写空转,
/// 待真实消费者(跨端透传/多模块订阅)出现再针对性双写(渐进接入,机制优先)。
///
/// dead_code:批2b 仅入 AppState,emit 点未双写(publish 无调用方);
/// 标 allow 保留作批3 接入(零调用方≠垃圾,预留保留)。
#[allow(dead_code)]
pub ai_event_bus: crate::commands::ai::event_bus::EventBus,
// ── 知识库 ── // ── 知识库 ──
/// 知识库 Repo /// 知识库 Repo
pub knowledge: KnowledgeRepo, pub knowledge: KnowledgeRepo,
@@ -649,6 +659,8 @@ impl AppState {
ai_messages: AiMessageRepo::new(&db), ai_messages: AiMessageRepo::new(&db),
ai_tool_executions: AiToolExecutionRepo::new(&db), ai_tool_executions: AiToolExecutionRepo::new(&db),
ai_session: Arc::new(Mutex::new(AiSession::new())), ai_session: Arc::new(Mutex::new(AiSession::new())),
// L3 批2b:AI 事件总线入 AppState(独立于工作流 event_bus)。emit 双写留批3。
ai_event_bus: crate::commands::ai::event_bus::EventBus::new(),
knowledge: KnowledgeRepo::new(&db), knowledge: KnowledgeRepo::new(&db),
knowledge_events: KnowledgeEventsRepo::new(&db), knowledge_events: KnowledgeEventsRepo::new(&db),
knowledge_config: Arc::new(Mutex::new(KnowledgeConfig::default())), knowledge_config: Arc::new(Mutex::new(KnowledgeConfig::default())),