@@ -405,6 +405,7 @@ int main(int argc, char ** argv) {
405405 base_info.tags = params.model_tags ;
406406 base_info.status = SERVER_MODEL_STATUS_LOADED;
407407 base_info.last_used = ggml_time_ms ();
408+ base_info.preset = cli_load_result.base_preset ;
408409 if (!base_info.name .empty ()) {
409410 model_manager->add_model (std::move (base_info));
410411 }
@@ -458,6 +459,7 @@ int main(int argc, char ** argv) {
458459 }
459460 }
460461
462+ info.preset = mp;
461463 SRV_INF (" registering model '%s' (status=%d)\n " , info.name .c_str (), (int )info.status );
462464 model_manager->add_model (std::move (info));
463465 }
@@ -708,6 +710,7 @@ int main(int argc, char ** argv) {
708710 }
709711 }
710712
713+ info.preset = preset;
711714 model_manager->add_model (std::move (info));
712715
713716 // Check autoload
@@ -728,6 +731,7 @@ int main(int argc, char ** argv) {
728731 base_info.tags = params.model_tags ;
729732 base_info.status = SERVER_MODEL_STATUS_LOADED;
730733 base_info.last_used = ggml_time_ms ();
734+ base_info.preset = base_preset;
731735 model_manager->add_model (std::move (base_info));
732736 }
733737
@@ -856,6 +860,12 @@ int main(int argc, char ** argv) {
856860 load_params.model .path = path;
857861 }
858862
863+ // Apply model preset (e.g. --reasoning, --chat-template-kwargs, etc.)
864+ auto preset = model_mgr->get_preset (name);
865+ if (preset.has_value ()) {
866+ preset->apply_to_params (load_params);
867+ }
868+
859869 // Load the model via model manager (handles LRU eviction)
860870 model_mgr->load (name, ctx_server, load_params);
861871 res_ok (res, {{" success" , true }});
0 commit comments