mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-08 16:08:27 +00:00
fix(auth/session): preserve override reset behavior and repair oauth profile-id drift (openclaw#18820) thanks @Glucksberg
Verified: - pnpm build - pnpm check - pnpm test:macmini Co-authored-by: Glucksberg <80581902+Glucksberg@users.noreply.github.com> Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
This commit is contained in:
@@ -1,12 +1,15 @@
|
||||
import type { Message, ReactionTypeEmoji } from "@grammyjs/types";
|
||||
import { resolveDefaultAgentId } from "../agents/agent-scope.js";
|
||||
import { resolveAgentDir, resolveDefaultAgentId } from "../agents/agent-scope.js";
|
||||
import { hasControlCommand } from "../auto-reply/command-detection.js";
|
||||
import {
|
||||
createInboundDebouncer,
|
||||
resolveInboundDebounceMs,
|
||||
} from "../auto-reply/inbound-debounce.js";
|
||||
import { buildCommandsPaginationKeyboard } from "../auto-reply/reply/commands-info.js";
|
||||
import { buildModelsProviderData } from "../auto-reply/reply/commands-models.js";
|
||||
import {
|
||||
buildModelsProviderData,
|
||||
formatModelsAvailableHeader,
|
||||
} from "../auto-reply/reply/commands-models.js";
|
||||
import { resolveStoredModelOverride } from "../auto-reply/reply/model-selection.js";
|
||||
import { listSkillCommandsForAgents } from "../auto-reply/skill-commands.js";
|
||||
import { buildCommandsMessagePaginated } from "../auto-reply/status.js";
|
||||
@@ -182,13 +185,17 @@ export const registerTelegramHandlers = ({
|
||||
},
|
||||
});
|
||||
|
||||
const resolveTelegramSessionModel = (params: {
|
||||
const resolveTelegramSessionState = (params: {
|
||||
chatId: number | string;
|
||||
isGroup: boolean;
|
||||
isForum: boolean;
|
||||
messageThreadId?: number;
|
||||
resolvedThreadId?: number;
|
||||
}): string | undefined => {
|
||||
}): {
|
||||
agentId: string;
|
||||
sessionEntry: ReturnType<typeof loadSessionStore>[string];
|
||||
model?: string;
|
||||
} => {
|
||||
const resolvedThreadId =
|
||||
params.resolvedThreadId ??
|
||||
resolveTelegramForumThreadId({
|
||||
@@ -229,17 +236,29 @@ export const registerTelegramHandlers = ({
|
||||
sessionKey,
|
||||
});
|
||||
if (storedOverride) {
|
||||
return storedOverride.provider
|
||||
? `${storedOverride.provider}/${storedOverride.model}`
|
||||
: storedOverride.model;
|
||||
return {
|
||||
agentId: route.agentId,
|
||||
sessionEntry: entry,
|
||||
model: storedOverride.provider
|
||||
? `${storedOverride.provider}/${storedOverride.model}`
|
||||
: storedOverride.model,
|
||||
};
|
||||
}
|
||||
const provider = entry?.modelProvider?.trim();
|
||||
const model = entry?.model?.trim();
|
||||
if (provider && model) {
|
||||
return `${provider}/${model}`;
|
||||
return {
|
||||
agentId: route.agentId,
|
||||
sessionEntry: entry,
|
||||
model: `${provider}/${model}`,
|
||||
};
|
||||
}
|
||||
const modelCfg = cfg.agents?.defaults?.model;
|
||||
return typeof modelCfg === "string" ? modelCfg : modelCfg?.primary;
|
||||
return {
|
||||
agentId: route.agentId,
|
||||
sessionEntry: entry,
|
||||
model: typeof modelCfg === "string" ? modelCfg : modelCfg?.primary,
|
||||
};
|
||||
};
|
||||
|
||||
const processMediaGroup = async (entry: MediaGroupEntry) => {
|
||||
@@ -933,13 +952,14 @@ export const registerTelegramHandlers = ({
|
||||
const safePage = Math.max(1, Math.min(page, totalPages));
|
||||
|
||||
// Resolve current model from session (prefer overrides)
|
||||
const currentModel = resolveTelegramSessionModel({
|
||||
const sessionState = resolveTelegramSessionState({
|
||||
chatId,
|
||||
isGroup,
|
||||
isForum,
|
||||
messageThreadId,
|
||||
resolvedThreadId,
|
||||
});
|
||||
const currentModel = sessionState.model;
|
||||
|
||||
const buttons = buildModelsKeyboard({
|
||||
provider,
|
||||
@@ -949,7 +969,13 @@ export const registerTelegramHandlers = ({
|
||||
totalPages,
|
||||
pageSize,
|
||||
});
|
||||
const text = `Models (${provider}) — ${models.length} available`;
|
||||
const text = formatModelsAvailableHeader({
|
||||
provider,
|
||||
total: models.length,
|
||||
cfg,
|
||||
agentDir: resolveAgentDir(cfg, sessionState.agentId),
|
||||
sessionEntry: sessionState.sessionEntry,
|
||||
});
|
||||
await editMessageWithButtons(text, buttons);
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user