MCPcopy Create free account
hub / github.com/tiann/hapi / applySessionConfig

Method applySessionConfig

hub/src/sync/sessionCache.ts:403–466  ·  view source on GitHub ↗
(
        sessionId: string,
        config: {
            permissionMode?: PermissionMode
            model?: string | null
            modelReasoningEffort?: string | null
            effort?: string | null
            collaborationMode?: CodexCollaborationMode
        }
    )

Source from the content-addressed store, hash-verified

401 }
402
403 applySessionConfig(
404 sessionId: string,
405 config: {
406 permissionMode?: PermissionMode
407 model?: string | null
408 modelReasoningEffort?: string | null
409 effort?: string | null
410 collaborationMode?: CodexCollaborationMode
411 }
412 ): void {
413 const session = this.sessions.get(sessionId) ?? this.refreshSession(sessionId)
414 if (!session) {
415 return
416 }
417
418 const appliedAt = Date.now()
419 if (config.permissionMode !== undefined) {
420 session.permissionMode = config.permissionMode
421 this.persistPreferredPermissionMode(session, config.permissionMode)
422 this.markRuntimeConfigUpdated(sessionId, 'permissionMode', appliedAt)
423 }
424 if (config.model !== undefined) {
425 if (config.model !== session.model) {
426 const updated = this.store.sessions.setSessionModel(sessionId, config.model, session.namespace, {
427 touchUpdatedAt: false
428 })
429 if (!updated) {
430 throw new Error('Failed to update session model')
431 }
432 }
433 session.model = config.model
434 this.markRuntimeConfigUpdated(sessionId, 'model', appliedAt)
435 }
436 if (config.modelReasoningEffort !== undefined) {
437 if (config.modelReasoningEffort !== session.modelReasoningEffort) {
438 const updated = this.store.sessions.setSessionModelReasoningEffort(sessionId, config.modelReasoningEffort, session.namespace, {
439 touchUpdatedAt: false
440 })
441 if (!updated) {
442 throw new Error('Failed to update session model reasoning effort')
443 }
444 }
445 session.modelReasoningEffort = config.modelReasoningEffort
446 this.markRuntimeConfigUpdated(sessionId, 'modelReasoningEffort', appliedAt)
447 }
448 if (config.effort !== undefined) {
449 if (config.effort !== session.effort) {
450 const updated = this.store.sessions.setSessionEffort(sessionId, config.effort, session.namespace, {
451 touchUpdatedAt: false
452 })
453 if (!updated) {
454 throw new Error('Failed to update session effort')
455 }
456 }
457 session.effort = config.effort
458 this.markRuntimeConfigUpdated(sessionId, 'effort', appliedAt)
459 }
460 if (config.collaborationMode !== undefined) {

Callers

nothing calls this directly

Calls 8

refreshSessionMethod · 0.95
getMethod · 0.80
setSessionModelMethod · 0.80
setSessionEffortMethod · 0.80
emitMethod · 0.45

Tested by

no test coverage detected