惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Last Week in AI
Last Week in AI
阮一峰的网络日志
阮一峰的网络日志
P
Proofpoint News Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
MongoDB | Blog
MongoDB | Blog
云风的 BLOG
云风的 BLOG
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
J
Java Code Geeks
WordPress大学
WordPress大学
T
The Blog of Author Tim Ferriss
V
Visual Studio Blog
小众软件
小众软件
Microsoft Azure Blog
Microsoft Azure Blog
博客园_首页
IT之家
IT之家
Vercel News
Vercel News
C
Check Point Blog
Google DeepMind News
Google DeepMind News
月光博客
月光博客
D
DataBreaches.Net
酷 壳 – CoolShell
酷 壳 – CoolShell
美团技术团队
Y
Y Combinator Blog
Hugging Face - Blog
Hugging Face - Blog

Recent Commits to openclaw:main

test: merge chat side-result checks · openclaw/openclaw@ddd2c2a test: merge cron history checks · openclaw/openclaw@f7eb746 test: merge responsive navigation shell checks · openclaw/openclaw@c2e4b47 docs(changelog): add codex oauth fixes · openclaw/openclaw@628e6cd test: merge navigation routing cases · openclaw/openclaw@5d8cecb Tests: mock channel registry bundled fallback · openclaw/openclaw@2b08233 Secrets: avoid broad web search discovery for single plugin config · openclaw/openclaw@a464f59 test: merge config view browser checks · openclaw/openclaw@20cf511 fix(status): align oauth health with runtime · openclaw/openclaw@eed7116 feat: add macOS screen snapshots for monitor preview (#67954) thanks … · openclaw/openclaw@f377db1 fix: report shared auth scopes in hello-ok (#67810) thanks @BunsDev · openclaw/openclaw@0b6c39b Auto-reply: avoid eager bundled route fallback · openclaw/openclaw@3ea1bf4 Tests: narrow session binding contract setup · openclaw/openclaw@54e4e16 fix(macOS): enable undo/redo in webchat composer text input (#34962) · openclaw/openclaw@00951dc Tests: speed up channel setup promotion · openclaw/openclaw@82b529a Docs: refresh agent instructions · openclaw/openclaw@5775fe2 fix(auth): serialize OAuth refresh across agents to fix #26322 (#67876) · openclaw/openclaw@8e79080 test: allow ollama public surface boundary test · openclaw/openclaw@7d4f1a6 Docs: add test performance guardrails · openclaw/openclaw@89706d3 Tests: restore context-engine usage proof · openclaw/openclaw@e4c4f95 Tests: slim context engine runtime coverage · openclaw/openclaw@74c198f ci: retry failed custom checkouts · openclaw/openclaw@0ee5baf test: trim duplicate provider auth onboarding cases · openclaw/openclaw@1ffc02e matrix: fix sessions_spawn --thread subagent session spawning (#67643) · openclaw/openclaw@1ce2596 test: reduce auth choice fixture churn · openclaw/openclaw@857b9cd test: mock health status config boundaries · openclaw/openclaw@9d5ab4a test: mock onboard config io boundary · openclaw/openclaw@299694d test: mock legacy state plugin boundaries · openclaw/openclaw@2713089 test: mock channel install boundaries · openclaw/openclaw@b945248 test: mock doctor preview channel boundaries · openclaw/openclaw@b1a3ad4
refactor: trim telegram helper exports · openclaw/opencla...
steipete · 2026-05-02 · via Recent Commits to openclaw:main
Original file line numberDiff line numberDiff line change

@@ -2,7 +2,7 @@ import { createSubsystemLogger } from "openclaw/plugin-sdk/runtime-env";

22

import type { RuntimeEnv } from "openclaw/plugin-sdk/runtime-env";

33

import { formatErrorMessage } from "openclaw/plugin-sdk/ssrf-runtime";

44
5-

export type TelegramApiLogger = (message: string) => void;

5+

type TelegramApiLogger = (message: string) => void;

66
77

type TelegramApiLoggingParams<T> = {

88

operation: string;

Original file line numberDiff line numberDiff line change

@@ -1,4 +1,4 @@

1-

export const TELEGRAM_CALLBACK_DATA_MAX_BYTES = 64;

1+

const TELEGRAM_CALLBACK_DATA_MAX_BYTES = 64;

22
33

const TELEGRAM_APPROVE_ALLOW_ALWAYS_PATTERN =

44

/^\/approve(?:@[^\s]+)?\s+[A-Za-z0-9][A-Za-z0-9._:-]*\s+allow-always$/i;

Original file line numberDiff line numberDiff line change

@@ -14,7 +14,7 @@ export type NormalizedAllowFrom = {

1414

invalidEntries: string[];

1515

};

1616
17-

export type AllowFromMatch = AllowlistMatch<"wildcard" | "id">;

17+

type AllowFromMatch = AllowlistMatch<"wildcard" | "id">;

1818
1919

const warnedInvalidEntries = new Set<string>();

2020

const log = createSubsystemLogger("telegram/bot-access");

Original file line numberDiff line numberDiff line change

@@ -27,24 +27,24 @@ export type TelegramLogger = {

2727

info: (obj: Record<string, unknown>, msg: string) => void;

2828

};

2929
30-

export type ResolveTelegramGroupConfig = (

30+

type ResolveTelegramGroupConfig = (

3131

chatId: string | number,

3232

messageThreadId?: number,

3333

) => {

3434

groupConfig?: TelegramGroupConfig | TelegramDirectConfig;

3535

topicConfig?: TelegramTopicConfig;

3636

};

3737
38-

export type ResolveGroupActivation = (params: {

38+

type ResolveGroupActivation = (params: {

3939

chatId: string | number;

4040

agentId?: string;

4141

messageThreadId?: number;

4242

sessionKey?: string;

4343

}) => boolean | undefined;

4444
45-

export type ResolveGroupRequireMention = (chatId: string | number) => boolean;

45+

type ResolveGroupRequireMention = (chatId: string | number) => boolean;

4646
47-

export type TelegramMessageContextRuntimeOverrides = Partial<

47+

type TelegramMessageContextRuntimeOverrides = Partial<

4848

Pick<

4949

typeof import("./bot-message-context.runtime.js"),

5050

| "createStatusReactionController"

Original file line numberDiff line numberDiff line change

@@ -1,4 +1,4 @@

1-

export type TelegramMediaContextPayload = {

1+

type TelegramMediaContextPayload = {

22

MediaPath?: string;

33

MediaUrl?: string;

44

MediaType?: string;

Original file line numberDiff line numberDiff line change

@@ -6,12 +6,12 @@ import { normalizeOptionalString, readStringValue } from "openclaw/plugin-sdk/te

66

import { withTelegramApiErrorLogging } from "./api-logging.js";

77

import { normalizeTelegramCommandName, TELEGRAM_COMMAND_NAME_PATTERN } from "./command-config.js";

88
9-

export const TELEGRAM_MAX_COMMANDS = 100;

9+

const TELEGRAM_MAX_COMMANDS = 100;

1010

export const TELEGRAM_TOTAL_COMMAND_TEXT_BUDGET = 5700;

1111

const TELEGRAM_COMMAND_RETRY_RATIO = 0.8;

1212

const TELEGRAM_MIN_COMMAND_DESCRIPTION_LENGTH = 1;

1313
14-

export type TelegramMenuCommand = {

14+

type TelegramMenuCommand = {

1515

command: string;

1616

description: string;

1717

};

Original file line numberDiff line numberDiff line change

@@ -19,7 +19,7 @@ type TelegramMediaFileRef =

1919

| NonNullable<Message["document"]>

2020

| NonNullable<Message["sticker"]>;

2121
22-

export type TelegramPrimaryMedia = {

22+

type TelegramPrimaryMedia = {

2323

placeholder: string;

2424

fileRef: TelegramMediaFileRef;

2525

};

Original file line numberDiff line numberDiff line change

@@ -1,8 +1,8 @@

11

import type { TelegramTextEntity } from "./body-helpers.js";

22
3-

export const TELEGRAM_NATIVE_QUOTE_MAX_LENGTH = 1024;

3+

const TELEGRAM_NATIVE_QUOTE_MAX_LENGTH = 1024;

44
5-

export type TelegramNativeQuoteCandidate = {

5+

type TelegramNativeQuoteCandidate = {

66

text: string;

77

position?: number;

88

entities?: unknown[];

Original file line numberDiff line numberDiff line change

@@ -21,7 +21,7 @@ export function markReplyApplied(progress: DeliveryProgress, replyToId?: number)

2121

}

2222

}

2323
24-

export function markDelivered(progress: DeliveryProgress): void {

24+

function markDelivered(progress: DeliveryProgress): void {

2525

progress.hasDelivered = true;

2626

}

2727
Original file line numberDiff line numberDiff line change

@@ -3,7 +3,7 @@ import type { ChatFullInfo, Message, UserFromGetMe } from "@grammyjs/types";

33

/** App-specific stream mode for Telegram stream previews. */

44

export type TelegramStreamMode = "off" | "partial" | "block";

55
6-

export type TelegramGetFile = () => Promise<{ file_path?: string }>;

6+

type TelegramGetFile = () => Promise<{ file_path?: string }>;

77

export type TelegramChatDetails = {

88

id?: number | string;

99

available_reactions?: ChatFullInfo["available_reactions"] | null;