From 36b1ae399237c99ccdd1b7ea8688bbf0fb3b1b43 Mon Sep 17 00:00:00 2001 From: john Date: Mon, 3 Aug 2026 15:08:02 +0800 Subject: [PATCH] fix(release-gate): map admin billing paths and repair pgvector test Allow image-quota admin files in impact selection and update Memory V2 runtime test for hybrid pgvector keyword query. Co-authored-by: Cursor --- memory-v2-runtime.test.mjs | 12 +++++++----- release-gate/impact.mjs | 2 ++ 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/memory-v2-runtime.test.mjs b/memory-v2-runtime.test.mjs index 6acc342..4460dc3 100644 --- a/memory-v2-runtime.test.mjs +++ b/memory-v2-runtime.test.mjs @@ -385,11 +385,13 @@ test('createMemoryV2Runtime selects pgvector only when pool and embedding are co assert.equal(memory.getStatus().selectedBackend, 'pgvector'); assert.equal(result.source, 'pgvector'); assert.deepEqual(result.semanticMemories, ['semantic memory']); - assert.equal(queries.length, 1); - assert.equal(queries[0].options.connectionString, 'postgresql://local/memory'); - assert.equal(queries[0].options.max, 2); - assert.match(queries[0].sql, /recent_candidates/); - assert.deepEqual(queries[0].params, ['u1', '[0.1,0.2,0.3]', 50]); + assert.equal(queries.length, 2); + const semanticQuery = queries.find((entry) => /recent_candidates/.test(entry.sql)); + assert.ok(semanticQuery); + assert.equal(semanticQuery.options.connectionString, 'postgresql://local/memory'); + assert.equal(semanticQuery.options.max, 2); + assert.match(semanticQuery.sql, /recent_candidates/); + assert.deepEqual(semanticQuery.params, ['u1', '[0.1,0.2,0.3]', 50]); await memory.close(); assert.equal(poolEnded, true); diff --git a/release-gate/impact.mjs b/release-gate/impact.mjs index 5728d31..f024e0a 100644 --- a/release-gate/impact.mjs +++ b/release-gate/impact.mjs @@ -54,6 +54,7 @@ const CRITICAL_IMPACT_RULES = Object.freeze([ const NON_RUNTIME_PATHS = Object.freeze([ /^(?:AGENTS|README|CHANGELOG)\.md$/i, + /^ops\/README\.md$/i, /^\.runtime\//i, /^docs\//i, /^\.cursor\//i, @@ -70,6 +71,7 @@ const IMPACT_RULES = Object.freeze([ { groups: ['DATA'], pattern: /(?:page-data|dataset|page-policy)/i }, { groups: ['WX'], pattern: /(?:wechat|weixin|wx-)/i }, { groups: ['BILL'], pattern: /(?:billing|payment|charge|balance|subscription)/i }, + { groups: ['BILL'], pattern: /(?:^admin-(?:bootstrap|routes)\.mjs$)/i }, { groups: ['PLAZA'], pattern: /(?:^|\/)plaza/i }, { groups: ['SCHED'], pattern: /(?:schedule|scheduler|reminder|cron)/i }, { groups: ['SEARCH'], pattern: /(?:search|weather|market|news-provider)/i },