fix(validatie): seed_bulk gebruikt resolve_oer_pad voor wees-detectie#65
Merged
Conversation
_reset_database deed de exists()-check via bare Path() op het bestandspad in de DB. Die paden zijn relatief aan de oeren-tree (bv. "oeren/davinci_oeren/x.pdf") en exists() lost dat op vanuit de cwd, niet vanuit OEREN_PAD's parent. Resultaat: de check faalde altijd, waardoor élke unindexed rij werd verwijderd in plaats van alleen wezen waarvan het bronbestand echt weg is. Geverifieerd via een test die twee dummy-rijen invoegt (een met echt pad, een met fake pad) en _reset_database aanroept: na de fix blijft de echte rij staan en wordt alleen de fake verwijderd. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
seed_bulk._reset_database()ruimt OER-rijen op metgeindexeerd=0waarvan het bronbestand niet meer bestaat. De check gebruikte echter een barePath(r["bestandspad"]).exists(), terwijl de paden in de DB relatief zijn aan de oeren-tree (bv.oeren/davinci_oeren/x.pdf) en pas viaOEREN_PADcorrect te resolven zijn.Effect vóór deze fix: de exists()-check faalde altijd vanuit
validatie_samenwijzer/(cwd) en élke unindexed rij werd verwijderd, ongeacht of het bestand nog op schijf stond. Dat leidde tot het stille verdwijnen van 13 Da Vinci-rijen tijdens de bootstrap-run van gisteren — wat ik aanvankelijk verkeerd diagnosticeerde als een baseline-mismatch (PR #64). Het achterliggende issue is hier.Fix
Vervang
Path(r["bestandspad"]).exists()doorresolve_oer_pad(r["bestandspad"]).exists()zodat OEREN_PAD wordt toegepast.Verificatie
Inline test invoegt twee dummy unindexed-rijen en draait
_reset_database():oeren/davinci_oeren/25642_BBL_…haarstylist-dame.pdf(bestaat)oeren/this_does_not_exist.pdf(bestaat niet)Resultaat: ✅
real_id behouden=True, fake_id behouden=False.Vervolgens
seed_bulk.pyopnieuw gedraaid om de seed-data te herstellen, encheck_bootstrap.shis volledig groen — de baseline van (68, 68) voor Da Vinci klopt ook na de fix, omdat een schoneingest --allesop de huidige Box-tree geen unindexed Da Vinci-rijen produceert (parseer_bestandsnaam slaagt voor alle bestanden die ingest succesvol verwerkt). De 13 rijen die op de master-machine de(81, 68)-baseline produceerden waren stale data uit eerdere oeren-trees, niet output van de huidige pipeline.Test plan
uv run python scripts/seed_bulk.py— succesvol re-seed (600 studenten + 30 mentoren)./scripts/check_bootstrap.sh— alle checks groenuv run python -m pytest— 63 passeduv run ruff check scripts/seed_bulk.py— clean🤖 Generated with Claude Code