Skip to content

Commit 8aeee1e

Browse files
authored
Merge pull request #53 from contember/fix/settings-migration
fix: save settings immediately after migration in load path
2 parents b0281b5 + 5de3bb3 commit 8aeee1e

File tree

1 file changed

+7
-9
lines changed

1 file changed

+7
-9
lines changed

src/workspace/settings.rs

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -504,8 +504,14 @@ pub fn load_settings() -> AppSettings {
504504
// First, try direct deserialization (fast path for valid settings)
505505
match serde_json::from_str::<AppSettings>(&content) {
506506
Ok(mut settings) => {
507-
// Run migrations if needed
507+
let old_version = settings.version;
508508
settings = migrate_settings(settings);
509+
if settings.version != old_version {
510+
log::info!("Settings migrated from v{} to v{}", old_version, settings.version);
511+
if let Err(e) = save_settings(&settings) {
512+
log::warn!("Failed to save migrated settings: {}", e);
513+
}
514+
}
509515
return settings;
510516
}
511517
Err(e) => {
@@ -678,14 +684,6 @@ fn migrate_settings(mut settings: AppSettings) -> AppSettings {
678684
settings.version = SETTINGS_VERSION;
679685
}
680686

681-
// Save if we migrated
682-
if original_version != settings.version {
683-
log::info!("Settings migrated from v{} to v{}", original_version, settings.version);
684-
if let Err(e) = save_settings(&settings) {
685-
log::warn!("Failed to save migrated settings: {}", e);
686-
}
687-
}
688-
689687
settings
690688
}
691689

0 commit comments

Comments
 (0)