fix(weixin): align long-reply limits across runtime

This commit is contained in:
cuidong233 2026-08-24 19:29:02 +08:00
parent 868372fb04
commit 5e07137c44
7 changed files with 178 additions and 165 deletions

View file

@ -12,6 +12,7 @@ export const WEIXIN_QR_BASE_URL = 'https://ilinkai.weixin.qq.com/';
export const WEIXIN_PROTOCOL_VERSION = '2.4.6';
export const DEFAULT_BOT_TYPE = '3';
export const WEIXIN_CDN_BASE_URL = 'https://novac2c.cdn.weixin.qq.com/c2c';
export const DEFAULT_WEIXIN_MAX_MESSAGE_CHARS = 1_800;
const WEIXIN_CDN_HOST = 'novac2c.cdn.weixin.qq.com';
@ -744,7 +745,7 @@ export function weixinMessageId(message) {
return nonEmptyString(message?.client_id);
}
export function splitWeixinText(text, maxChars = 4_000) {
export function splitWeixinText(text, maxChars = DEFAULT_WEIXIN_MAX_MESSAGE_CHARS) {
if (text.length <= maxChars) return [text];
const chunks = [];
let remaining = text;

View file

@ -1,4 +1,5 @@
import {
DEFAULT_WEIXIN_MAX_MESSAGE_CHARS,
extractWeixinFiles,
extractWeixinImages,
extractWeixinText,
@ -184,7 +185,7 @@ export class WeixinHarnessBridge {
status = createWeixinBridgeStatus(),
logger = console,
replyTimeoutMs = 600_000,
maxMessageChars = 1_800,
maxMessageChars = DEFAULT_WEIXIN_MAX_MESSAGE_CHARS,
signal,
}) {
if (!api || typeof api.sendText !== 'function') throw new TypeError('Weixin API is required');

View file

@ -1,4 +1,4 @@
import { WeixinApiError } from './weixin-api.mjs';
import { DEFAULT_WEIXIN_MAX_MESSAGE_CHARS, WeixinApiError } from './weixin-api.mjs';
import { createWeixinBridgeStatus, WeixinHarnessBridge } from './weixin-bridge.mjs';
import {
connectionTestTarget,
@ -109,7 +109,7 @@ export class WeixinRuntime {
state,
logger = console,
replyTimeoutMs = 600_000,
maxMessageChars = 4_000,
maxMessageChars = DEFAULT_WEIXIN_MAX_MESSAGE_CHARS,
startRetryDelaysMs,
}) {
if (!api || !config || !token || !harness || !state) {