MCPcopy Create free account
hub / github.com/GCWing/BitFun / persist_user_mode_skill_selection

Function persist_user_mode_skill_selection

src/apps/desktop/src/api/skill_api.rs:247–278  ·  view source on GitHub ↗
(
    mode_id: &str,
    all_skills: &[SkillInfo],
    enabled_keys: &HashSet<String>,
)

Source from the content-addressed store, hash-verified

245}
246
247async fn persist_user_mode_skill_selection(
248 mode_id: &str,
249 all_skills: &[SkillInfo],
250 enabled_keys: &HashSet<String>,
251) -> Result<(), String> {
252 let mut disabled_user_skills = Vec::new();
253 let mut enabled_user_skills = Vec::new();
254
255 for skill in all_skills
256 .iter()
257 .filter(|skill| skill.level == SkillLocation::User)
258 {
259 let should_enable = enabled_keys.contains(&skill.key);
260 let default_enabled = resolve_skill_default_enabled_for_mode(skill, mode_id);
261
262 if default_enabled && !should_enable {
263 disabled_user_skills.push(skill.key.clone());
264 } else if !default_enabled && should_enable {
265 enabled_user_skills.push(skill.key.clone());
266 }
267 }
268
269 bitfun_core::service::config::mode_config_canonicalizer::persist_agent_profile_from_value(
270 mode_id,
271 serde_json::json!({
272 "disabled_user_skills": normalize_skill_key_list(disabled_user_skills),
273 "enabled_user_skills": normalize_skill_key_list(enabled_user_skills),
274 }),
275 )
276 .await
277 .map_err(|e| format!("Failed to update user skill overrides: {}", e))
278}
279
280fn build_disabled_project_skill_keys(
281 all_skills: &[SkillInfo],

Callers 1

Calls 6

iterMethod · 0.80
containsMethod · 0.45
pushMethod · 0.45
cloneMethod · 0.45

Tested by

no test coverage detected