Mattermost: add interactive model picker (#38767)

Merged via squash.

Prepared head SHA: 0883654e88
Co-authored-by: mukhtharcm <56378562+mukhtharcm@users.noreply.github.com>
Co-authored-by: mukhtharcm <56378562+mukhtharcm@users.noreply.github.com>
Reviewed-by: @mukhtharcm
This commit is contained in:
Muhammed Mukhthar CM
2026-03-07 21:45:29 +05:30
committed by GitHub
parent 33e7394861
commit 4f08dcccfd
23 changed files with 1867 additions and 290 deletions

View File

@@ -1179,7 +1179,15 @@ export const registerTelegramHandlers = ({
// Model selection callback handler (mdl_prov, mdl_list_*, mdl_sel_*, mdl_back)
const modelCallback = parseModelCallbackData(data);
if (modelCallback) {
const modelData = await buildModelsProviderData(cfg);
const sessionState = resolveTelegramSessionState({
chatId,
isGroup,
isForum,
messageThreadId,
resolvedThreadId,
senderId,
});
const modelData = await buildModelsProviderData(cfg, sessionState.agentId);
const { byProvider, providers } = modelData;
const editMessageWithButtons = async (
@@ -1238,14 +1246,15 @@ export const registerTelegramHandlers = ({
const safePage = Math.max(1, Math.min(page, totalPages));
// Resolve current model from session (prefer overrides)
const sessionState = resolveTelegramSessionState({
const currentSessionState = resolveTelegramSessionState({
chatId,
isGroup,
isForum,
messageThreadId,
resolvedThreadId,
senderId,
});
const currentModel = sessionState.model;
const currentModel = currentSessionState.model;
const buttons = buildModelsKeyboard({
provider,
@@ -1259,8 +1268,8 @@ export const registerTelegramHandlers = ({
provider,
total: models.length,
cfg,
agentDir: resolveAgentDir(cfg, sessionState.agentId),
sessionEntry: sessionState.sessionEntry,
agentDir: resolveAgentDir(cfg, currentSessionState.agentId),
sessionEntry: currentSessionState.sessionEntry,
});
await editMessageWithButtons(text, buttons);
return;