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

Method persistPreferredPermissionMode

hub/src/sync/sessionCache.ts:863–889  ·  view source on GitHub ↗
(session: Session, permissionMode: PermissionMode)

Source from the content-addressed store, hash-verified

861 }
862
863 private persistPreferredPermissionMode(session: Session, permissionMode: PermissionMode): void {
864 const currentMetadata = session.metadata
865 if (!currentMetadata || currentMetadata.preferredPermissionMode === permissionMode) {
866 return
867 }
868
869 const nextMetadata = { ...currentMetadata, preferredPermissionMode: permissionMode }
870 const result = this.store.sessions.updateSessionMetadata(
871 session.id,
872 nextMetadata,
873 session.metadataVersion,
874 session.namespace,
875 { touchUpdatedAt: false }
876 )
877
878 if (result.result === 'error') {
879 return
880 }
881
882 const parsed = MetadataSchema.safeParse(result.value)
883 if (!parsed.success) {
884 return
885 }
886
887 session.metadata = parsed.data
888 session.metadataVersion = result.version
889 }
890
891 private mergeAgentState(oldState: unknown | null, newState: unknown | null): unknown | null {
892 if (oldState === null) return newState

Callers 2

handleSessionAliveMethod · 0.95
applySessionConfigMethod · 0.95

Calls 1

updateSessionMetadataMethod · 0.80

Tested by

no test coverage detected