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}