Excluded/locked topics worden door Full Analysis verwijderd #14

Closed
opened 2026-06-04 06:25:48 +00:00 by rve · 1 comment
Owner

Bug

Topics met learning_relevance: 'exclude' (bedoeld als referentiemateriaal voor R42) verdwijnen uit de knowledge graph na een Full Analysis. Ook relevance_locked: true topics zijn niet beschermd. In de live data zijn 36 excluded topics — allemaal locked — door één Full Analysis run verwijderd.

Root cause

  1. analyzeGraph in KnowledgeGraph.jsx past actions.deletions en actions.merges.deleteId zonder filter toe — geen check op learning_relevance === 'exclude' of relevance_locked === true.
  2. SYSTEM_PROMPTS.full vraagt het model expliciet om "vague / irrelevant / malformed" topics te deleten; tegelijk vertelt het niets over excluded reference material dat moet blijven bestaan.
  3. De full-scope compactTopics payload omit relevance_locked (alleen voor scope relevance), dus zelfs als de prompt het verbood kon het model het niet honoreren.

Fix

  • Client-side guard in analyzeGraph: strip excluded + locked ids uit actions.deletions en actions.merges (deleteId-kant) — pure helper in src/lib/graphGuard.js.
  • Prompt-uitbreiding: expliciete "PROTECTED TOPICS" sectie aan SYSTEM_PROMPTS.full.
  • relevance_locked meesturen in full-scope compactTopics.
  • Unit tests in src/lib/__tests__/graphGuard.test.js.
  • UI: ShieldCheck-banner met aantal geblokkeerde acties, excluded-count naast de show-exclude toggle.

Herstel

De 36 verwijderde topics zaten in de localStorage-snapshot én zijn als JSON-backup naar disk gekopieerd. Na merge zet ik ze terug via de bestaande "↩ Restore to …" knop in de graph-sidebar.

**Bug** Topics met `learning_relevance: 'exclude'` (bedoeld als referentiemateriaal voor R42) verdwijnen uit de knowledge graph na een Full Analysis. Ook `relevance_locked: true` topics zijn niet beschermd. In de live data zijn 36 excluded topics — allemaal locked — door één Full Analysis run verwijderd. **Root cause** 1. `analyzeGraph` in `KnowledgeGraph.jsx` past `actions.deletions` en `actions.merges.deleteId` zonder filter toe — geen check op `learning_relevance === 'exclude'` of `relevance_locked === true`. 2. `SYSTEM_PROMPTS.full` vraagt het model expliciet om "vague / irrelevant / malformed" topics te deleten; tegelijk vertelt het niets over excluded reference material dat moet blijven bestaan. 3. De full-scope `compactTopics` payload omit `relevance_locked` (alleen voor scope `relevance`), dus zelfs als de prompt het verbood kon het model het niet honoreren. **Fix** - Client-side guard in `analyzeGraph`: strip excluded + locked ids uit `actions.deletions` en `actions.merges` (deleteId-kant) — pure helper in `src/lib/graphGuard.js`. - Prompt-uitbreiding: expliciete "PROTECTED TOPICS" sectie aan `SYSTEM_PROMPTS.full`. - `relevance_locked` meesturen in full-scope `compactTopics`. - Unit tests in `src/lib/__tests__/graphGuard.test.js`. - UI: ShieldCheck-banner met aantal geblokkeerde acties, excluded-count naast de show-exclude toggle. **Herstel** De 36 verwijderde topics zaten in de localStorage-snapshot én zijn als JSON-backup naar disk gekopieerd. Na merge zet ik ze terug via de bestaande "↩ Restore to …" knop in de graph-sidebar.
Author
Owner

PR: #15

PR: https://git.labs.respellion.tech/rve/learning-platform/pulls/15
rve closed this issue 2026-06-04 06:29:34 +00:00
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: rve/learning-platform#14