






















@@ -25,7 +25,10 @@ export type ControlUiBootstrapState = {
2525password?: string | null;
2626};
272728-export async function loadControlUiBootstrapConfig(state: ControlUiBootstrapState) {
28+export async function loadControlUiBootstrapConfig(
29+state: ControlUiBootstrapState,
30+opts?: { applyIdentity?: boolean },
31+) {
2932if (typeof window === "undefined") {
3033return;
3134}
@@ -66,27 +69,29 @@ export async function loadControlUiBootstrapConfig(state: ControlUiBootstrapStat
6669return;
6770}
6871const parsed = (await res.json()) as ControlUiBootstrapConfig;
69-const normalized = normalizeAssistantIdentity({
70-agentId: parsed.assistantAgentId ?? null,
71-name: parsed.assistantName,
72-avatar: parsed.assistantAvatar ?? null,
73-avatarSource: parsed.assistantAvatarSource ?? null,
74-avatarStatus: parsed.assistantAvatarStatus ?? null,
75-avatarReason: parsed.assistantAvatarReason ?? null,
76-});
77-state.assistantName = normalized.name;
78-state.assistantAvatar = normalized.avatar;
79-state.assistantAvatarSource = normalized.avatarSource ?? null;
80-state.assistantAvatarStatus = normalized.avatarStatus ?? null;
81-state.assistantAvatarReason = normalized.avatarReason ?? null;
82-state.assistantAgentId = normalized.agentId ?? null;
83-// Local override always wins — same pattern as the user avatar.
84-const localAvatar = loadLocalAssistantIdentity().avatar;
85-if (localAvatar) {
86-state.assistantAvatar = localAvatar;
87-state.assistantAvatarSource = localAvatar;
88-state.assistantAvatarStatus = "data";
89-state.assistantAvatarReason = null;
72+if (opts?.applyIdentity !== false) {
73+const normalized = normalizeAssistantIdentity({
74+agentId: parsed.assistantAgentId ?? null,
75+name: parsed.assistantName,
76+avatar: parsed.assistantAvatar ?? null,
77+avatarSource: parsed.assistantAvatarSource ?? null,
78+avatarStatus: parsed.assistantAvatarStatus ?? null,
79+avatarReason: parsed.assistantAvatarReason ?? null,
80+});
81+state.assistantName = normalized.name;
82+state.assistantAvatar = normalized.avatar;
83+state.assistantAvatarSource = normalized.avatarSource ?? null;
84+state.assistantAvatarStatus = normalized.avatarStatus ?? null;
85+state.assistantAvatarReason = normalized.avatarReason ?? null;
86+state.assistantAgentId = normalized.agentId ?? null;
87+// Local override always wins — same pattern as the user avatar.
88+const localAvatar = loadLocalAssistantIdentity().avatar;
89+if (localAvatar) {
90+state.assistantAvatar = localAvatar;
91+state.assistantAvatarSource = localAvatar;
92+state.assistantAvatarStatus = "data";
93+state.assistantAvatarReason = null;
94+}
9095}
9196state.serverVersion = parsed.serverVersion ?? null;
9297state.localMediaPreviewRoots = Array.isArray(parsed.localMediaPreviewRoots)
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。