@@ -2,7 +2,11 @@ import { DatabaseService, ChatService } from '$lib/services';
22import { conversationsStore } from '$lib/stores/conversations.svelte' ;
33import { config } from '$lib/stores/settings.svelte' ;
44import { contextSize , isRouterMode } from '$lib/stores/server.svelte' ;
5- import { selectedModelName , modelsStore } from '$lib/stores/models.svelte' ;
5+ import {
6+ selectedModelName ,
7+ modelsStore ,
8+ selectedModelContextSize
9+ } from '$lib/stores/models.svelte' ;
610import {
711 normalizeModelName ,
812 filterByLeafNodeId ,
@@ -261,6 +265,13 @@ class ChatStore {
261265 return activeState . contextTotal ;
262266 }
263267
268+ if ( isRouterMode ( ) ) {
269+ const modelContextSize = selectedModelContextSize ( ) ;
270+ if ( modelContextSize && modelContextSize > 0 ) {
271+ return modelContextSize ;
272+ }
273+ }
274+
264275 const propsContextSize = contextSize ( ) ;
265276 if ( propsContextSize && propsContextSize > 0 ) {
266277 return propsContextSize ;
@@ -458,6 +469,14 @@ class ChatStore {
458469 onError ?: ( error : Error ) => void ,
459470 modelOverride ?: string | null
460471 ) : Promise < void > {
472+ // Ensure model props are cached before streaming (for correct n_ctx in processing info)
473+ if ( isRouterMode ( ) ) {
474+ const modelName = modelOverride || selectedModelName ( ) ;
475+ if ( modelName && ! modelsStore . getModelProps ( modelName ) ) {
476+ await modelsStore . fetchModelProps ( modelName ) ;
477+ }
478+ }
479+
461480 let streamedContent = '' ;
462481 let streamedReasoningContent = '' ;
463482 let streamedToolCallContent = '' ;
0 commit comments