# Projectstatus - Laatst bijgewerkt: 2026-07-21 - Repositoryversie: 0.1.0 MVP-basis - Uitvoeringsmodus: autonome backlog - Eerste uitvoerbare taak: controleer met `python scripts/backlog.py next` ## Werkende basis De repository bevat een uitvoerbare Django-MVP met: - profielen, revisies en begrensde feedbackconfiguratie; - source registry, policy/denylist, veilige fetcher en source runs; - JSON-LD-, HTML-, RSS/Atom- en e-mailadapters; - normalisatie, sanitization, werkgeverresolutie, dedupe, aliassen, provenance en versies; - deterministische features, harde exclusions, scores en optionele uitgeschakelde Ollama-boundary; - dashboard, vacaturelijst/detail, profiel-, bron- en sollicitatiepagina's; - feedbackacties, applicationdossiers, lifecycle en dagelijkse digest-outbox; - Celeryworker/scheduler, healthchecks, Docker/Unraidconfiguratie en back-up-/herstelscripts; - offline unit-, integratie- en securitytests. ## Laatste geverifieerde baseline De definitieve projectbasis en een schoon uit de ZIP opgebouwde checkout zijn beide geverifieerd met: - 43 geslaagde tests; - 80,42% branch-aware codedekking over `apps` en `config`; - Ruff en Django system checks geslaagd; - geen ontbrekende migraties; - clean-room bootstrap, demo-import en HTTP-smoke voor liveness, readiness en login geslaagd. ## Laatste uitgevoerde backlogtaak - 2026-07-21: `VR-117` voltooid. - Productiereleasecontrole toegevoegd met `scripts/release_verify.sh`, inclusief smoke, backup/restore-smoke en artifactbundel. - Changelog, traceability en Unraid-runbook samengekoppeld aan het releasepad. - Volgende taak: `VR-201` (blocked-external). - 2026-07-21: `VR-116` voltooid. - Synthetische testset (`fixtures/benchmark/quality_benchmark.json`) en benchmarkspec (`docs/quality/BENCHMARKS.md`) toegevoegd. - `tests/benchmark/test_benchmark.py` bevat smokecontrole voor dataset load, helperlogica en rapportschema. - Geen UI/UITA-aanpassingen uitgevoerd (expliciet buiten scope, extern met Stitch). - 2026-07-21: `VR-108` voltooid. - Resolutie naar oorspronkelijke werkgever geïmplementeerd met deterministische matcher voor recruiter/ATS-bronnen. - Titel, locatie, employer-naam, domein en canonical metadata leveren evidence-rijke beslissingen op; conflicten leiden naar review i.p.v. auto-merge. - Bij directe resolutie wordt `canonical_url` naar de directe bron gekopieerd terwijl alias/provenance behouden blijft. - Unittests en integratietest toegevoegd voor resolvergedrag en pipeline-resolutie. - 2026-07-21: `VR-109` voltooid. - AI-analyse geïntegreerd als optionele scorecomponent met caching op `content_hash + model + prompt + schema`. - Uitgebreide JSON-schema validatie, evidencecontrole en foutstatussen met deterministische fallback. - Golden evaluatieset met validatiescenario's (disabled, valid, malformed, timeout, prompt-injection) toegevoegd in `fixtures/ai/evaluation_set.json`. - Scoringsmetadata uitgebreid met AI-status, errorcategorie en weging voor uitlegbaarheid. - 2026-07-21: `VR-110` voltooid. - Feedbackleren standaard uit met opt-in, per-feature sampledrempel en metadata logging. - Verbergreasons worden geclassificeerd als niet-learn (titel/afstand/werkvorm) of leerrijp. - Positieve feedback groeit alleen na minimale herhaling per feature; negatieve feedback past gewichten terug indien leerrijp. - Offline evaluatiescript toegevoegd: `scripts/feedback_learning_report.py`. - UI-presentatie/reset weergave staat open voor externe afhandeling (Stitch). - Volgende taak: `VR-111`. - 2026-07-21: `VR-111` voltooid. - Reminder-outbox toegevoegd voor sluitingsdatum, opvolgdatum en uitzonderlijk sterke nieuwe matches. - Topmatchherinnering is per profiel in- of uit te schakelen en vereist score/confidence/drempel. - Herinneringen hebben stabiele event keys, respecteren quiet hours en gebruiken profielweekdagen. - Integratietests toegevoegd voor idempotentie, stille ontvangers, follow-up werkdagen, DST en rustige uren. - Volgende taak: `VR-112`. - 2026-07-21: `VR-112` voltooid. - Bronhealth en observability toegevoegd met rolling metrics, parserdriftdetectie en automatische quarantaine. - Raw cleanup bewaart gequarantaineerde documenten en kanaryherstel verloopt via trialpad. - Dagelijkse taken gepland voor source-health evaluatie, canaryherstel en geautomatiseerde raw cleanup. - Integratietests toegevoegd voor tijdelijke fouten, policyfouten, parserdrift, canaryherstel en raw cleanup. - Volgende taak: `VR-113`. - 2026-07-21: `VR-113` voltooid. - Sollicitatiedossiers bevriezen nu een gesanitiseerde snapshot met bronlinks, status/contact/notities en timeline-events. - Export bevat dossier JSON, timeline CSV en printbare HTML zonder externe assets. - Dossierexport en dossierverwijdering zijn gebruiker-scoped en idempotent. - Integratietests toegevoegd voor snapshot, export, print, timeline en cross-user-afscherming. - Volgende taak: `VR-114`. - 2026-07-21: `VR-114` voltooid. - Browser-e2e toegevoegd voor login, dashboard, lijst/detailfilter, profielbewerkingen, vier feedbackacties, sollicitatiedossierbewerking en handmatige tekstimport. - Accessibilitycontrole toegevoegd met Playwrightpad (desktop + 360px viewport) en fallback HTML-a11yprobe wanneer browser niet beschikbaar is. - Screenshots worden vastgelegd bij falen binnen e2e-run. - Volgende taak: `VR-115`. - 2026-07-21: `VR-115` voltooid. - Productie-hardening toegevoegd met non-root/read-only containerinstellingen, CI-secret- en kwetsbaarheidsscans, production settings validatie, DNS-rebindcontrole in fetcher en rate limiting op login/manual import. - Nieuwe tests toegevoegd voor `settings`-validatie, rate limiteren, login-manual-import blokkades en DNS-rebinddetectie. - Geen UI-wijzigingen toegevoegd (manueel afhandelen bevestigd). - Volgende taak: `VR-116`. - 2026-07-21: `VR-107` voltooid. - Handmatige URL- en tekstimport toegevoegd met CSRF-beveiligde POST-flow en GET-prefill. - URL-import hergebruikt bestaande policy/SSRF-checks en fetchpad; paste-import gebruikt een lokale synthetische HTML-payload zonder extern fetch. - Bronlijst bevat bookmarklet, resultaatpanel met created/duplicate/warnings en links naar vacaturedetail. - Unit- en integrationtests toegevoegd voor URL-flow, paste-flow, denylist en paste-limiet. - 2026-07-21: `VR-105` voltooid. - Haversine-afstand berekent nu op basis van geocoderingscoördinaten met confidencegedrag voor exacte afstand. - Reistijdschatting toegevoegd als expliciete, conservatieve offline-schatting en gelabeld als inferentie. - Harde afstandsuitsluiting blijft strikt, met optionele harde reistijdbeperking via `hard_rules["max_commute_minutes"]`. - Bij geocodecache-import worden getroffen actieve vacatures opnieuw gescoord. - Score-evidence verrijkt met afstands- en reistijdmetadata. - 2026-07-21: `VR-103` voltooid. - Geïmplementeerd: databaseleaseclaim (`SourceLease` + `SourceOriginState`) voor concurrency- en crash-veiligheid. - Per-origin intervalcoördinatie, backoff inclusief 429/Retry-After en jitter op successen. - Fetcher stuurt expliciete foutcategorieën voor 429, timeout en andere netwerkfouten. - 2026-07-21: `VR-101` voltooid. - Inrichting van bronontdekking vanuit HTML/sitemap/feed/e-mail, inclusief JSON-LD en feedlinkdetectie. - Persistente kandidaatservice met provenance in `Source.metadata["discovery"]` en idempotent gedrag. - Bulk-safe kandidaatacties `approve_to_trial` en `dismiss` in bronlijst-UI. - Management command `discover_sources`. - Fixtures toegevoegd voor HTML, sitemap index/urlset, feed en e-mail. Een toekomstige agent moet altijd de actuele waarheid opnieuw bepalen met: ```bash ./scripts/codex_verify.sh ``` ## Nog te bouwen Momenteel staan er geen `ready` taken meer over; de volgende te behandelen item is `VR-201` als `blocked-external` (bronreview). ## Externe blokkades Deze blokkeren onafhankelijke code niet: - concrete werkgevers-/bronnenkeuze en actuele menselijke bronreview; - live IMAP/SMTP-account en app-password; - Unraid-domein, DNS, TLS en reverse proxy; - containerregistry en credentials; - keuze/verkrijging van een gelicenseerde actuele Belgische postcode-/gemeentedataset. ## Bekende verificatiebeperking van de aangeleverde basis De Pythonapplicatie en tests zijn lokaal geverifieerd. Een echte Dockerimagebuild en volledige PostgreSQL/Redis/Unraid-smoke vereisen nog steeds een omgeving met Docker; daarom is dat nog niet als uitgevoerd te claimen in deze workspace. ## Hervatten ```bash ./scripts/codex_verify.sh python scripts/backlog.py next ``` Werk daarna exact volgens `docs/ai/AUTONOMOUS_EXECUTION_PROTOCOL.md`.