feat: use acp list sessions and manage sessions in Desktop (#9687)
This commit is contained in:
@@ -314,19 +314,6 @@ fn encode_session_list_cursor(
|
||||
Ok(URL_SAFE_NO_PAD.encode(bytes))
|
||||
}
|
||||
|
||||
fn display_title(s: &Session) -> Option<String> {
|
||||
if !s.user_set_name {
|
||||
if let Some(recipe) = &s.recipe {
|
||||
return Some(recipe.title.clone());
|
||||
}
|
||||
}
|
||||
if s.name.is_empty() {
|
||||
None
|
||||
} else {
|
||||
Some(s.name.clone())
|
||||
}
|
||||
}
|
||||
|
||||
pub(super) fn session_meta(session: &Session) -> serde_json::Map<String, serde_json::Value> {
|
||||
let mut meta = serde_json::Map::new();
|
||||
meta.insert(
|
||||
@@ -2861,7 +2848,7 @@ impl GooseAcpAgent {
|
||||
.into_iter()
|
||||
.map(|s| {
|
||||
let meta = session_meta(&s);
|
||||
let title = display_title(&s);
|
||||
let title = s.display_title();
|
||||
let mut info = SessionInfo::new(SessionId::new(s.id), s.working_dir)
|
||||
.updated_at(s.updated_at.to_rfc3339())
|
||||
.meta(meta);
|
||||
|
||||
@@ -88,6 +88,21 @@ pub struct Session {
|
||||
pub project_id: Option<String>,
|
||||
}
|
||||
|
||||
impl Session {
|
||||
pub fn display_title(&self) -> Option<String> {
|
||||
if !self.user_set_name && self.session_type != SessionType::Scheduled {
|
||||
if let Some(recipe) = &self.recipe {
|
||||
return Some(recipe.title.clone());
|
||||
}
|
||||
}
|
||||
if self.name.is_empty() {
|
||||
None
|
||||
} else {
|
||||
Some(self.name.clone())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub struct SessionUpdateBuilder<'a> {
|
||||
session_manager: &'a SessionManager,
|
||||
session_id: String,
|
||||
|
||||
Reference in New Issue
Block a user