feat: updated enabled_skills handling to support both list and comma-separated strings

This commit is contained in:
2026-06-03 12:24:10 -06:00
parent 9205a6899f
commit 7637a4e46b
7 changed files with 129 additions and 27 deletions
+14 -3
View File
@@ -30,8 +30,12 @@ pub struct Session {
enabled_mcp_servers: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
skills_enabled: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
enabled_skills: Option<String>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "super::deserialize_csv_or_vec"
)]
enabled_skills: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
save_session: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
@@ -83,10 +87,17 @@ impl Session {
self.skills_enabled
}
pub fn enabled_skills(&self) -> Option<&str> {
pub fn enabled_skills(&self) -> Option<&[String]> {
self.enabled_skills.as_deref()
}
pub fn set_skills_enabled(&mut self, value: Option<bool>) {
if self.skills_enabled != value {
self.skills_enabled = value;
self.dirty = true;
}
}
pub fn new_from_ctx(ctx: &RequestContext, app: &AppConfig, name: &str) -> Self {
let role = ctx.extract_role(app);
let mut session = Self {