settings: Migration for fixing duplicated agent keys (#30237)

As a byproduct, this fixes bug where it's impossible to change Agent
profile

Closes #30000 

Release Notes:

- N/A
This commit is contained in:
Oleksiy Syvokon 2025-05-08 15:38:19 +03:00 committed by GitHub
parent 9f6809a28d
commit 3cc8850a58
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 91 additions and 2 deletions

View file

@ -140,6 +140,10 @@ pub fn migrate_settings(text: &str) -> Result<Option<String>> {
migrations::m_2025_05_05::SETTINGS_PATTERNS,
&SETTINGS_QUERY_2025_05_05,
),
(
migrations::m_2025_05_08::SETTINGS_PATTERNS,
&SETTINGS_QUERY_2025_05_08,
),
];
run_migrations(text, migrations)
}
@ -230,6 +234,10 @@ define_query!(
SETTINGS_QUERY_2025_05_05,
migrations::m_2025_05_05::SETTINGS_PATTERNS
);
define_query!(
SETTINGS_QUERY_2025_05_08,
migrations::m_2025_05_08::SETTINGS_PATTERNS
);
// custom query
static EDIT_PREDICTION_SETTINGS_MIGRATION_QUERY: LazyLock<Query> = LazyLock::new(|| {
@ -743,4 +751,38 @@ mod tests {
),
);
}
#[test]
fn test_comment_duplicated_agent() {
assert_migrate_settings(
r#"{
"agent": {
"name": "assistant-1",
"model": "gpt-4", // weird formatting
"utf8": "привіт"
},
"something": "else",
"agent": {
"name": "assistant-2",
"model": "gemini-pro"
}
}
"#,
Some(
r#"{
/* Duplicated key auto-commented: "agent": {
"name": "assistant-1",
"model": "gpt-4", // weird formatting
"utf8": "привіт"
}, */
"something": "else",
"agent": {
"name": "assistant-2",
"model": "gemini-pro"
}
}
"#,
),
);
}
}