@@ -40,6 +40,7 @@ import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coer
4040import {
4141 createEmbeddingProvider ,
4242 resolveEmbeddingProviderAdapterId ,
43+ resolveEmbeddingProviderFallbackModel ,
4344 type EmbeddingProvider ,
4445 type EmbeddingProviderId ,
4546 type EmbeddingProviderRuntime ,
@@ -299,14 +300,22 @@ export abstract class MemoryManagerSyncOps {
299300 hasIndexedChunks ?: boolean ;
300301 } ) : MemoryIndexIdentityState {
301302 const hasProviderOverride = params && "provider" in params ;
303+ // The plain `memory status` path resolves identity before the provider is
304+ // initialized, so settings.model is still the unresolved default: an empty
305+ // string when no explicit model is configured. Mirror provider init's model
306+ // resolution here (configured model, else adapter default) so identity does
307+ // not falsely report a mismatch against meta with a blank "expected" model.
308+ const configuredModel =
309+ this . settings . model . trim ( ) ||
310+ resolveEmbeddingProviderFallbackModel ( this . settings . provider , "" , this . cfg ) ;
302311 const configuredProvider =
303312 this . settings . provider === "none"
304313 ? null
305314 : {
306315 id :
307316 resolveEmbeddingProviderAdapterId ( this . settings . provider , this . cfg ) ??
308317 this . settings . provider ,
309- model : this . settings . model ,
318+ model : configuredModel ,
310319 } ;
311320 const provider = hasProviderOverride
312321 ? params . provider !
0 commit comments