diff --git a/apps/archief-assistent/e2e/cache.spec.ts b/apps/archief-assistent/e2e/cache.spec.ts index 8849a8c08d..c3037db83d 100644 --- a/apps/archief-assistent/e2e/cache.spec.ts +++ b/apps/archief-assistent/e2e/cache.spec.ts @@ -140,6 +140,46 @@ test.describe('Cache Behavior', () => { expect(num2).toBe(num1) } }) + + test('subtype queries should not share cache with generic type queries', async ({ page }) => { + // Rule 46: Ontology-driven cache segmentation + // "kunstmusea" (subtype: ART_MUSEUM) should NOT match "musea" (generic type: M) cache + const queryGeneric = 'Hoeveel musea zijn er in Amsterdam?' + const querySubtype = 'Hoeveel kunstmusea zijn er in Amsterdam?' + + // First query - generic museum + const result1 = await askQuestionTimed(page, queryGeneric) + console.log(`Generic "musea" query: ${result1.response}`) + + // Wait + await page.waitForTimeout(500) + + // Second query - specific subtype (art museum) + const result2 = await askQuestionTimed(page, querySubtype) + console.log(`Subtype "kunstmusea" query: ${result2.response}`) + + // Extract numbers from responses + const num1Match = result1.response.match(/\d+/) + const num2Match = result2.response.match(/\d+/) + + if (num1Match && num2Match) { + const num1 = parseInt(num1Match[0]) + const num2 = parseInt(num2Match[0]) + + // Subtype count should be LESS than or equal to generic count + // (kunstmusea is a subset of musea) + // If cache is incorrectly shared, they would be the same count + console.log(`Generic musea count: ${num1}, Kunstmusea count: ${num2}`) + + // Art museums should be fewer than total museums (or equal if all are art museums) + expect(num2).toBeLessThanOrEqual(num1) + + // If both are non-zero and equal, that's suspicious - log warning + if (num1 > 0 && num2 > 0 && num1 === num2) { + console.log('Warning: Counts are identical. Verify cache segmentation is working correctly.') + } + } + }) }) test.describe('Cache with Session', () => { diff --git a/apps/archief-assistent/node_modules/.tmp/tsconfig.app.tsbuildinfo b/apps/archief-assistent/node_modules/.tmp/tsconfig.app.tsbuildinfo index 0e34080c68..be3fbe6f8b 100644 --- a/apps/archief-assistent/node_modules/.tmp/tsconfig.app.tsbuildinfo +++ b/apps/archief-assistent/node_modules/.tmp/tsconfig.app.tsbuildinfo @@ -1 +1 @@ -{"root":["../../src/app.tsx","../../src/main.tsx","../../src/vite-env.d.ts","../../src/components/changepassworddialog.tsx","../../src/components/debugpanel.tsx","../../src/components/sparqlexplorer.tsx","../../src/components/ontology/datamapviewer.tsx","../../src/components/ontology/linkmlschemaviewer.tsx","../../src/components/ontology/ontologyviewer.tsx","../../src/config/api.ts","../../src/context/authcontext.tsx","../../src/lib/semantic-cache.ts","../../src/lib/linkml/custodian-data-mappings.ts","../../src/lib/linkml/schema-loader.ts","../../src/lib/ontology/ontology-loader.ts","../../src/pages/browsepage.tsx","../../src/pages/chatpage.tsx","../../src/pages/loginpage.tsx","../../src/pages/mappage.tsx","../../src/pages/ontologypage.tsx","../../src/pages/rulespage.tsx","../../src/pages/statspage.tsx","../../src/services/authapi.ts"],"version":"5.9.3"} \ No newline at end of file +{"root":["../../src/app.tsx","../../src/main.tsx","../../src/vite-env.d.ts","../../src/components/changepassworddialog.tsx","../../src/components/chatmappanel.tsx","../../src/components/debugpanel.tsx","../../src/components/sparqlexplorer.tsx","../../src/components/ontology/datamapviewer.tsx","../../src/components/ontology/linkmlschemaviewer.tsx","../../src/components/ontology/ontologyviewer.tsx","../../src/config/api.ts","../../src/context/authcontext.tsx","../../src/lib/semantic-cache.ts","../../src/lib/types-vocabulary.ts","../../src/lib/linkml/custodian-data-mappings.ts","../../src/lib/linkml/schema-loader.ts","../../src/lib/ontology/ontology-loader.ts","../../src/pages/browsepage.tsx","../../src/pages/chatpage.tsx","../../src/pages/loginpage.tsx","../../src/pages/mappage.tsx","../../src/pages/ontologypage.tsx","../../src/pages/rulespage.tsx","../../src/pages/statspage.tsx","../../src/services/authapi.ts"],"version":"5.9.3"} \ No newline at end of file diff --git a/apps/archief-assistent/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json b/apps/archief-assistent/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json new file mode 100644 index 0000000000..708aef9c4a --- /dev/null +++ b/apps/archief-assistent/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json @@ -0,0 +1 @@ +{"version":"4.0.16","results":[[":e2e/cache.spec.ts",{"duration":0,"failed":true}],[":e2e/map-panel.spec.ts",{"duration":0,"failed":true}],[":e2e/chat.spec.ts",{"duration":0,"failed":true}],[":e2e/count-queries.spec.ts",{"duration":0,"failed":true}],[":tests/semantic-cache.test.ts",{"duration":11.5603329999999,"failed":false}]]} \ No newline at end of file diff --git a/apps/archief-assistent/playwright-report/data/7d72a281772d65be76b2c8a8a3f3ddf739d0d7b4.png b/apps/archief-assistent/playwright-report/data/7d72a281772d65be76b2c8a8a3f3ddf739d0d7b4.png new file mode 100644 index 0000000000..9400efd583 Binary files /dev/null and b/apps/archief-assistent/playwright-report/data/7d72a281772d65be76b2c8a8a3f3ddf739d0d7b4.png differ diff --git a/apps/archief-assistent/playwright-report/data/bb4039e573461724d90b44e6397391570cdb3138.md b/apps/archief-assistent/playwright-report/data/bb4039e573461724d90b44e6397391570cdb3138.md new file mode 100644 index 0000000000..69b59ce9d0 --- /dev/null +++ b/apps/archief-assistent/playwright-report/data/bb4039e573461724d90b44e6397391570cdb3138.md @@ -0,0 +1,45 @@ +# Page snapshot + +```yaml +- generic [ref=e3]: + - generic [ref=e6]: + - generic [ref=e7]: + - img "de Aa" [ref=e8] + - generic [ref=e9]: + - heading "de Aa" [level=4] [ref=e10] + - paragraph [ref=e11]: Archiefassistent + - generic [ref=e12]: + - paragraph [ref=e13]: Een dienst van het + - link "Nationaal Archief": + - /url: https://www.nationaalarchief.nl + - img "Nationaal Archief" + - generic [ref=e16]: + - generic [ref=e17]: + - img "de Aa" [ref=e18] + - heading "Welkom bij de Aa" [level=5] [ref=e19] + - paragraph [ref=e20]: Log in om toegang te krijgen tot de Archiefassistent + - generic [ref=e21]: + - generic [ref=e22]: + - generic [ref=e23]: + - text: E-mailadres + - generic [ref=e24]: "*" + - generic [ref=e25]: + - textbox "E-mailadres" [active] [ref=e26] + - group: + - generic: E-mailadres * + - generic [ref=e27]: + - generic: + - text: Wachtwoord + - generic: "*" + - generic [ref=e28]: + - textbox "Wachtwoord" [ref=e29] + - group: + - generic: Wachtwoord * + - button "Inloggen" [ref=e30] [cursor=pointer] + - paragraph [ref=e32]: + - text: Nog geen toegang? + - link "Neem contact op" [ref=e33] [cursor=pointer]: + - /url: mailto:info@nationaalarchief.nl + - contentinfo [ref=e34]: + - paragraph [ref=e35]: © 2026 Nationaal Archief. Alle rechten voorbehouden. +``` \ No newline at end of file diff --git a/apps/archief-assistent/playwright-report/data/cad44ceb2438d82e7894e7b508f3d4cc0015e220.png b/apps/archief-assistent/playwright-report/data/cad44ceb2438d82e7894e7b508f3d4cc0015e220.png deleted file mode 100644 index 23c151071a..0000000000 Binary files a/apps/archief-assistent/playwright-report/data/cad44ceb2438d82e7894e7b508f3d4cc0015e220.png and /dev/null differ diff --git a/apps/archief-assistent/playwright-report/data/cfc450fedf40c533425118d829d9407e21a08e81.md b/apps/archief-assistent/playwright-report/data/cfc450fedf40c533425118d829d9407e21a08e81.md deleted file mode 100644 index 0c54b21008..0000000000 --- a/apps/archief-assistent/playwright-report/data/cfc450fedf40c533425118d829d9407e21a08e81.md +++ /dev/null @@ -1,45 +0,0 @@ -# Page snapshot - -```yaml -- generic [ref=e3]: - - generic [ref=e6]: - - generic [ref=e7]: - - img "de Aa" [ref=e8] - - generic [ref=e9]: - - heading "de Aa" [level=4] [ref=e10] - - paragraph [ref=e11]: Archiefassistent - - generic [ref=e12]: - - paragraph [ref=e13]: Een dienst van het - - link "Nationaal Archief" [ref=e14] [cursor=pointer]: - - /url: https://www.nationaalarchief.nl - - img "Nationaal Archief" [ref=e15] - - generic [ref=e18]: - - generic [ref=e19]: - - img "de Aa" [ref=e20] - - heading "Welkom bij de Aa" [level=5] [ref=e21] - - paragraph [ref=e22]: Log in om toegang te krijgen tot de Archiefassistent - - generic [ref=e23]: - - generic [ref=e24]: - - generic [ref=e25]: - - text: E-mailadres - - generic [ref=e26]: "*" - - generic [ref=e27]: - - textbox "E-mailadres" [active] [ref=e28]: admin - - group: - - generic: E-mailadres * - - generic [ref=e29]: - - generic [ref=e30]: - - text: Wachtwoord - - generic [ref=e31]: "*" - - generic [ref=e32]: - - textbox "Wachtwoord" [ref=e33]: glam2020! - - group: - - generic: Wachtwoord * - - button "Inloggen" [ref=e34] [cursor=pointer]: Inloggen - - paragraph [ref=e36]: - - text: Nog geen toegang? - - link "Neem contact op" [ref=e37] [cursor=pointer]: - - /url: mailto:info@nationaalarchief.nl - - contentinfo [ref=e38]: - - paragraph [ref=e39]: © 2026 Nationaal Archief. Alle rechten voorbehouden. -``` \ No newline at end of file diff --git a/apps/archief-assistent/playwright-report/index.html b/apps/archief-assistent/playwright-report/index.html index b1dee0875a..a1d0d12c41 100644 --- a/apps/archief-assistent/playwright-report/index.html +++ b/apps/archief-assistent/playwright-report/index.html @@ -82,4 +82,4 @@ Error generating stack: `+n.message+`