@@ -1027,24 +1027,31 @@ impl OpenFangKernel {
10271027 & mut restored_entry. manifest . resources ,
10281028 ) ;
10291029
1030- // Apply default_model to restored agents (same logic as spawn)
1030+ // Apply default_model to restored agents.
1031+ //
1032+ // Two cases:
1033+ // 1. Agent has empty/default provider → always apply default_model
1034+ // 2. Agent named "assistant" (auto-spawned) → update to match
1035+ // default_model so config.toml changes take effect on restart
10311036 {
1037+ let dm = & kernel. config . default_model ;
10321038 let is_default_provider = restored_entry. manifest . model . provider . is_empty ( )
10331039 || restored_entry. manifest . model . provider == "default" ;
10341040 let is_default_model = restored_entry. manifest . model . model . is_empty ( )
10351041 || restored_entry. manifest . model . model == "default" ;
1036- if is_default_provider && is_default_model {
1037- let dm = & kernel. config . default_model ;
1042+ let is_auto_spawned = restored_entry. name == "assistant"
1043+ && restored_entry. manifest . description == "General-purpose assistant" ;
1044+ if is_default_provider && is_default_model || is_auto_spawned {
10381045 if !dm. provider . is_empty ( ) {
10391046 restored_entry. manifest . model . provider = dm. provider . clone ( ) ;
10401047 }
10411048 if !dm. model . is_empty ( ) {
10421049 restored_entry. manifest . model . model = dm. model . clone ( ) ;
10431050 }
1044- if !dm. api_key_env . is_empty ( ) && restored_entry . manifest . model . api_key_env . is_none ( ) {
1051+ if !dm. api_key_env . is_empty ( ) {
10451052 restored_entry. manifest . model . api_key_env = Some ( dm. api_key_env . clone ( ) ) ;
10461053 }
1047- if dm. base_url . is_some ( ) && restored_entry . manifest . model . base_url . is_none ( ) {
1054+ if dm. base_url . is_some ( ) {
10481055 restored_entry. manifest . model . base_url . clone_from ( & dm. base_url ) ;
10491056 }
10501057 }
0 commit comments