settings.rs

 1use anyhow::Result;
 2use serde_json::Value;
 3
 4use crate::migrations::migrate_settings;
 5
 6pub fn remove_text_thread_settings(value: &mut Value) -> Result<()> {
 7    migrate_settings(value, &mut migrate_one)
 8}
 9
10fn migrate_one(obj: &mut serde_json::Map<String, Value>) -> Result<()> {
11    // Remove `agent.default_view`
12    if let Some(agent) = obj.get_mut("agent") {
13        if let Some(agent_obj) = agent.as_object_mut() {
14            agent_obj.remove("default_view");
15        }
16    }
17
18    // Remove `edit_predictions.enabled_in_text_threads`
19    if let Some(edit_predictions) = obj.get_mut("edit_predictions") {
20        if let Some(edit_predictions_obj) = edit_predictions.as_object_mut() {
21            edit_predictions_obj.remove("enabled_in_text_threads");
22        }
23    }
24
25    // Remove top-level `slash_commands`
26    obj.remove("slash_commands");
27
28    Ok(())
29}