mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-26 12:26:38 -06:00
fix(telegram): wire reserved target literals
This commit is contained in:
@@ -76,6 +76,7 @@ import { resolveTelegramReactionLevel } from "./reaction-level.js";
|
||||
import { resolveTelegramStartupProbeTimeoutMs } from "./request-timeouts.js";
|
||||
import { getTelegramRuntime } from "./runtime.js";
|
||||
import { telegramSecurityAdapter } from "./security.js";
|
||||
import { loadTelegramSendModule } from "./send-runtime.js";
|
||||
import {
|
||||
resolveTelegramSessionConversation,
|
||||
resolveTelegramSessionTarget,
|
||||
@@ -92,7 +93,6 @@ import { withTelegramStartupProbeSlot } from "./startup-probe-limiter.js";
|
||||
import { detectTelegramLegacyStateMigrations } from "./state-migrations.js";
|
||||
import { collectTelegramStatusIssues } from "./status-issues.js";
|
||||
import { parseTelegramTarget } from "./targets.js";
|
||||
import { loadTelegramSendModule } from "./send-runtime.js";
|
||||
import {
|
||||
createTelegramThreadBindingManager,
|
||||
setTelegramThreadBindingIdleTimeoutBySessionKey,
|
||||
@@ -833,6 +833,7 @@ export const telegramPlugin = createChatChannelPlugin({
|
||||
targetResolver: {
|
||||
looksLikeId: looksLikeTelegramTargetId,
|
||||
hint: "<chatId>",
|
||||
reservedLiterals: ["current", "self", "this", "me"],
|
||||
},
|
||||
},
|
||||
resolver: {
|
||||
|
||||
@@ -3,6 +3,15 @@ import { describe, expect, it } from "vitest";
|
||||
import { telegramPlugin } from "./channel.js";
|
||||
|
||||
describe("telegram session route", () => {
|
||||
it("declares reserved session literals as non-destination targets", () => {
|
||||
expect(telegramPlugin.messaging?.targetResolver?.reservedLiterals).toEqual([
|
||||
"current",
|
||||
"self",
|
||||
"this",
|
||||
"me",
|
||||
]);
|
||||
});
|
||||
|
||||
it("scopes direct topic session suffixes by chat id", async () => {
|
||||
const route = await telegramPlugin.messaging?.resolveOutboundSessionRoute?.({
|
||||
cfg: {},
|
||||
|
||||
@@ -92,6 +92,14 @@ export function expectChannelSurfaceContract(params: {
|
||||
expect(typeof messaging.targetResolver.hint).toBe("string");
|
||||
expect(messaging.targetResolver.hint.trim()).not.toBe("");
|
||||
}
|
||||
if (messaging.targetResolver.reservedLiterals !== undefined) {
|
||||
expect(Array.isArray(messaging.targetResolver.reservedLiterals)).toBe(true);
|
||||
expect(
|
||||
messaging.targetResolver.reservedLiterals.every(
|
||||
(value) => typeof value === "string" && value.trim(),
|
||||
),
|
||||
).toBe(true);
|
||||
}
|
||||
if (messaging.targetResolver.resolveTarget) {
|
||||
expect(typeof messaging.targetResolver.resolveTarget).toBe("function");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user