fix: guard WeChat Page Data delivery with Aider review
Memind CI / Test, build, and release guards (push) Has been cancelled

This commit is contained in:
john
2026-07-28 00:26:24 +08:00
parent bc20e93893
commit 8bfb7959fc
13 changed files with 996 additions and 7 deletions
+25
View File
@@ -16,6 +16,7 @@ import {
sanitizeWechatAgentOutboundText,
loadWechatMpConfig,
maybeAttachPublishedHtmlLink,
isWechatPageDataTask,
shouldRetryHtmlGenerationReply,
shouldForceNewWechatAgentSession,
splitWechatText,
@@ -332,6 +333,21 @@ test('Page Data requests always rotate away from an existing WeChat route', () =
assert.equal(shouldForceNewWechatAgentSession({ kind: 'chat.general' }, '换新会话'), true);
});
test('WeChat Page Data repair intent receives the guarded repair workflow', () => {
assert.equal(isWechatPageDataTask('提交失败,数据没有保存成功'), true);
assert.equal(isWechatPageDataTask('修复问卷的 Page Data 绑定'), true);
assert.equal(isWechatPageDataTask('继续聊德川家康'), false);
const prompt = buildWechatAgentPrompt({
msgType: 'text',
agentText: '提交失败,数据没有保存成功',
});
assert.match(prompt, /Page Data 修复要求/);
assert.match(prompt, /load_skill.*page-data-collect/);
assert.match(prompt, /缺表、dataset 未注册/);
assert.match(prompt, /未通过前不要发送链接/);
});
test('buildWechatAgentPrompt requires docx generation before html when Word download is requested', () => {
const prompt = buildWechatAgentPrompt({
msgType: 'text',
@@ -1159,12 +1175,21 @@ test('loadWechatMpConfig requires full config and enable flag', () => {
assert.equal(config.bindPath, '/auth/wechat/authorize?intent=login');
assert.equal(config.requireFreshPageThumbnail, true);
assert.equal(config.repairFreshPageThumbnail, false);
assert.equal(config.pageDataAiderReviewEnabled, false);
assert.deepEqual(config.pageDataAiderReviewUsers, []);
assert.deepEqual(config.generatedImagePublicBaseUrls, [
'https://example.com',
'https://img.example.com',
]);
assert.equal(loadWechatMpConfig({ H5_WECHAT_MP_FRESH_PAGE_THUMBNAILS: '0' }).requireFreshPageThumbnail, false);
assert.equal(loadWechatMpConfig({ H5_WECHAT_MP_FRESH_THUMBNAIL_REPAIR: '1' }).repairFreshPageThumbnail, true);
assert.deepEqual(
loadWechatMpConfig({
H5_WECHAT_MP_PAGE_DATA_AIDER_REVIEW_ENABLED: '1',
H5_WECHAT_MP_PAGE_DATA_AIDER_REVIEW_USERS: 'wx_test, user-2',
}).pageDataAiderReviewUsers,
['wx_test', 'user-2'],
);
});
test('verifyWechatMpSignature accepts valid signature', () => {