fix: guard WeChat Page Data delivery with Aider review
Memind CI / Test, build, and release guards (push) Has been cancelled
Memind CI / Test, build, and release guards (push) Has been cancelled
This commit is contained in:
@@ -12,6 +12,10 @@ import { createNotificationDispatcher } from '../notification-dispatcher.mjs';
|
||||
import { startScheduleReminderWorker } from '../schedule-reminder-worker.mjs';
|
||||
import { isPassiveCanaryRuntime } from './portal-runtime-role.mjs';
|
||||
import { loadWechatMpModule } from '../wechat-mp-loader.mjs';
|
||||
import { createToolGateway } from '../tool-gateway.mjs';
|
||||
import {
|
||||
createPageDataDeliveryCodeReviewService,
|
||||
} from '../page-data-delivery-code-review.mjs';
|
||||
|
||||
export async function bootstrapPortalIntegrationServices({
|
||||
pool,
|
||||
@@ -53,6 +57,9 @@ export async function bootstrapPortalIntegrationServices({
|
||||
startScheduleReminderWorker,
|
||||
createPageEditSessionServiceFn =
|
||||
createPageEditSessionService,
|
||||
createToolGatewayFn = createToolGateway,
|
||||
createPageDataDeliveryCodeReviewServiceFn =
|
||||
createPageDataDeliveryCodeReviewService,
|
||||
setIntervalFn = setInterval,
|
||||
} = {}) {
|
||||
if (
|
||||
@@ -70,6 +77,21 @@ export async function bootstrapPortalIntegrationServices({
|
||||
}
|
||||
|
||||
const wechatMp = await loadWechatMpModuleFn(h5Root);
|
||||
const pageDataDeliveryReviewer =
|
||||
wechatMpConfig?.pageDataAiderReviewEnabled === true
|
||||
? createPageDataDeliveryCodeReviewServiceFn({
|
||||
toolGateway: createToolGatewayFn({
|
||||
llmProviderService,
|
||||
env,
|
||||
}),
|
||||
userAuth,
|
||||
timeoutMs: Number(
|
||||
env.H5_WECHAT_MP_PAGE_DATA_AIDER_REVIEW_TIMEOUT_MS ??
|
||||
15 * 60 * 1000,
|
||||
),
|
||||
logger,
|
||||
})
|
||||
: null;
|
||||
const wechatMpService =
|
||||
wechatMp.createWechatMpService({
|
||||
config: wechatMpConfig,
|
||||
@@ -90,6 +112,7 @@ export async function bootstrapPortalIntegrationServices({
|
||||
'function'
|
||||
? mindSpacePublicFinish
|
||||
: null,
|
||||
pageDataDeliveryReviewer,
|
||||
apiFetch: tkmindProxy.apiFetch,
|
||||
startAgentSession: ({
|
||||
userId,
|
||||
|
||||
@@ -240,6 +240,10 @@ test('preserves WeChat service configuration and proxy callbacks', async () => {
|
||||
wechatOptions.pageDataFinishGuard,
|
||||
setup.options.mindSpacePublicFinish,
|
||||
);
|
||||
assert.equal(
|
||||
wechatOptions.pageDataDeliveryReviewer,
|
||||
null,
|
||||
);
|
||||
assert.equal(
|
||||
wechatOptions.htmlDeliveryAuthority,
|
||||
setup.options.mindSpacePublicFinish,
|
||||
@@ -294,6 +298,35 @@ test('preserves WeChat service configuration and proxy callbacks', async () => {
|
||||
);
|
||||
});
|
||||
|
||||
test('wires the isolated WeChat Page Data reviewer only when its channel flag is enabled', async () => {
|
||||
const toolGateway = { id: 'wechat-review-tool-gateway' };
|
||||
const reviewer = { reviewIfNeeded() {} };
|
||||
let gatewayOptions;
|
||||
let reviewerOptions;
|
||||
const setup = createSetup({
|
||||
wechatMpConfig: {
|
||||
enabled: true,
|
||||
pageDataAiderReviewEnabled: true,
|
||||
},
|
||||
createToolGatewayFn(options) {
|
||||
gatewayOptions = options;
|
||||
return toolGateway;
|
||||
},
|
||||
createPageDataDeliveryCodeReviewServiceFn(options) {
|
||||
reviewerOptions = options;
|
||||
return reviewer;
|
||||
},
|
||||
});
|
||||
|
||||
await bootstrapPortalIntegrationServices(setup.options);
|
||||
const { wechatOptions } = setup.getCaptured();
|
||||
|
||||
assert.equal(gatewayOptions.llmProviderService, setup.options.llmProviderService);
|
||||
assert.equal(reviewerOptions.toolGateway, toolGateway);
|
||||
assert.equal(reviewerOptions.userAuth, setup.options.userAuth);
|
||||
assert.equal(wechatOptions.pageDataDeliveryReviewer, reviewer);
|
||||
});
|
||||
|
||||
test('preserves snapshot refresh through the resolved session target', async () => {
|
||||
const setup = createSetup();
|
||||
await bootstrapPortalIntegrationServices(
|
||||
|
||||
Reference in New Issue
Block a user