From c211d1e43a02266226fb8d04856e703a4e6a625d Mon Sep 17 00:00:00 2001 From: sigoden Date: Tue, 8 Oct 2024 10:52:44 +0800 Subject: feat: session persists role name (#914) --- src/config/mod.rs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'src/config/mod.rs') diff --git a/src/config/mod.rs b/src/config/mod.rs index 291d477..1c669a7 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -839,10 +839,14 @@ impl Config { pub fn role_info(&self) -> Result { if let Some(role) = &self.role { - Ok(role.export()) - } else { - bail!("No role") + return Ok(role.export()); + } else if let Some(session) = &self.session { + let role = session.to_role(); + if !role.name().is_empty() { + return Ok(role.export()); + } } + bail!("No role"); } pub fn exit_role(&mut self) -> Result<()> { @@ -1089,8 +1093,8 @@ impl Config { pub fn clear_session_messages(&mut self) -> Result<()> { if let Some(session) = self.session.as_mut() { session.clear_messages(); - if let Some(prompt) = self.agent.as_ref().map(|v| v.interpolated_instructions()) { - session.update_role_prompt(&prompt); + if let Some(agent) = self.agent.as_ref() { + session.set_agent(agent); } } else { bail!("No session") -- cgit v1.2.3