fix: isolate WeChat runtime delivery path

This commit is contained in:
john
2026-07-28 09:33:25 +08:00
parent 5a13950bc3
commit 7f9453433c
8 changed files with 226 additions and 9 deletions
@@ -268,7 +268,13 @@ test('integration: WeChat Page Data runs Aider review before the delivery contra
const order = [];
const reviewCalls = [];
const wechatCalls = [];
const submittedMessages = [];
const finishedMessages = [];
let failReview = false;
const userAuth = createWechatUserAuth(workspaceRoot);
userAuth.finishWechatMpMessage = async (input) => {
finishedMessages.push(input);
};
const service = createWechatMpService({
config: {
@@ -286,7 +292,7 @@ test('integration: WeChat Page Data runs Aider review before the delivery contra
pageDataAiderReviewEnabled: true,
pageDataAiderReviewUsers: ['唐'],
},
userAuth: createWechatUserAuth(workspaceRoot),
userAuth,
htmlDeliveryAuthority: {
async prepareWechatHtmlDelivery() {
const artifact = {
@@ -339,7 +345,7 @@ test('integration: WeChat Page Data runs Aider review before the delivery contra
};
},
},
sessionApiFetch: async (sessionId, pathname) => {
sessionApiFetch: async (sessionId, pathname, init = {}) => {
if (pathname === `/sessions/${sessionId}/events`) {
return new Response(
[
@@ -351,6 +357,7 @@ test('integration: WeChat Page Data runs Aider review before the delivery contra
);
}
if (pathname === `/sessions/${sessionId}/reply`) {
submittedMessages.push(JSON.parse(init.body ?? '{}').user_message);
return new Response('{}', { status: 200, headers: { 'Content-Type': 'application/json' } });
}
if (pathname === '/agent/harness_remember' || pathname === '/agent/harness_bootstrap') {
@@ -377,6 +384,10 @@ test('integration: WeChat Page Data runs Aider review before the delivery contra
assert.equal(reviewCalls[0].sourceChannel, 'wechat_mp');
assert.equal(reviewCalls[0].sourceMessageId, '10001');
assert.equal(reviewCalls[0].forcePageData, true);
assert.equal(
submittedMessages[0]?.metadata?.memindRun?.pgRequired,
true,
);
assert.deepEqual(
reviewCalls[0].relativePaths,
['public/children-diet-survey.html'],
@@ -398,6 +409,11 @@ test('integration: WeChat Page Data runs Aider review before the delivery contra
assert.ok(failedSend);
const failedPayload = JSON.parse(failedSend[2]);
assert.match(failedPayload.text.content, /Page Data|数据收集|绑定/);
assert.equal(finishedMessages.at(-1)?.status, 'failed');
assert.equal(
finishedMessages.at(-1)?.agentSessionId,
'session-page-data-1',
);
assert.doesNotMatch(
failedPayload.text.content,
/https:\/\/m\.tkmind\.cn\/MindSpace\/user-page-data\/public\/children-diet-survey\.html/,