From 0095ace411e495f3e4d7569c94783cb997356c89 Mon Sep 17 00:00:00 2001 From: oudecheng <13802883547@139.com> Date: Fri, 15 May 2026 08:43:33 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E6=8C=89=E9=80=9A?= =?UTF-8?q?=E9=81=93=E6=9F=A5=E8=AF=A2=E4=BC=9A=E8=AF=9D=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=EF=BC=8C=E4=BC=98=E5=8C=96=E4=BC=9A=E8=AF=9D=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/command/handlers/session_query.rs | 12 ++++++++---- src/gateway/cli_session.rs | 11 +++++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/command/handlers/session_query.rs b/src/command/handlers/session_query.rs index d63c88d..fced38c 100644 --- a/src/command/handlers/session_query.rs +++ b/src/command/handlers/session_query.rs @@ -49,9 +49,11 @@ async fn handle_list_sessions( include_archived: bool, ctx: CommandContext, ) -> Result { + // 使用当前通道名称查询会话,而不是硬编码 "cli" + let channel_name = &ctx.channel_name; let records = handler .cli_sessions - .list(include_archived) + .list_by_channel(channel_name, include_archived) .map_err(|e| CommandError::new("LIST_SESSIONS_ERROR", e.to_string()))?; let summaries: Vec = records @@ -131,7 +133,8 @@ mod tests { async fn test_list_sessions_empty() { let service = create_test_service(); let handler = SessionQueryCommandHandler::new(service); - let ctx = CommandContext::new("test", "test"); + // 使用 "cli" 通道,与 CliSessionService::create 一致 + let ctx = CommandContext::new("test", "cli"); let cmd = Command::ListSessions { include_archived: false, }; @@ -149,10 +152,11 @@ mod tests { let service = create_test_service(); let handler = SessionQueryCommandHandler::new(service.clone()); - // 创建一些会话 + // 创建一些会话(使用 cli 通道) service.create(Some("test session")).unwrap(); - let ctx = CommandContext::new("test", "test"); + // 使用 "cli" 通道查询,与创建会话的通道一致 + let ctx = CommandContext::new("test", "cli"); let cmd = Command::ListSessions { include_archived: false, }; diff --git a/src/gateway/cli_session.rs b/src/gateway/cli_session.rs index 35fb4ac..b5338dc 100644 --- a/src/gateway/cli_session.rs +++ b/src/gateway/cli_session.rs @@ -42,6 +42,17 @@ impl CliSessionService { .map_err(|err| AgentError::Other(format!("list sessions error: {}", err))) } + /// 列出指定通道的会话 + pub(crate) fn list_by_channel( + &self, + channel_name: &str, + include_archived: bool, + ) -> Result, AgentError> { + self.store + .list_sessions(channel_name, include_archived) + .map_err(|err| AgentError::Other(format!("list sessions error: {}", err))) + } + pub(crate) fn rename(&self, session_id: &str, title: &str) -> Result<(), AgentError> { self.store .rename_session(session_id, title)