Files
VacatureRadar/docs/ai/PROJECT_STATE.md
Jens be0fbaa53c
Managed validation / full (pull_request) Successful in 3m41s
fix: hold candidate traffic and workers until migration commit
2026-09-09 23:21:53 +02:00

57 KiB
Raw Permalink Blame History

Projectstatus

Gecontroleerde migratie — 2026-09-09

VR-232 voegt een startup-hold voor Celery worker/beat toe tijdens de expliciet goedgekeurde legacy-migratie. Alleen de kandidaatdatakopie krijgt een marker; uitgaand werk wordt pas na een geverifieerde deploymentcommit vrijgegeven. De eerste middleware blokkeert ook gewone webverzoeken tot commit; alleen exacte GET/HEAD-healthroutes blijven beschikbaar. De netwerkoverride behoudt het bestaande netwerk. Lokaal slagen 344 tests inclusief browsercontroles (84,07% coverage). De volledige scripts/codex_verify.sh-gate is groen: Ruff, Django-checks, migratiecontrole, tests, taakledger en repositoryvalidatie zijn geslaagd. Live migratie is niet uitgevoerd. Bestaande productietaken zijn niet gewijzigd.

  • Laatst bijgewerkt: 2026-08-12
  • Repositoryversie: 0.3.17 immutable releaseherstel
  • 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;
  • volledige responsive dark/light Stitch-cockpit met negen functionele hoofdschermen, skillsradar, login en foutstates;
  • feedbackacties, applicationdossiers, lifecycle en dagelijkse digest-outbox;
  • Celeryworker/scheduler, healthchecks, Docker/Unraidconfiguratie en back-up-/herstelscripts;
  • offline unit-, integratie- en securitytests.

Laatste documentatie-update

Visuele demo-hardening VR-229 op 2026-08-12:

  • iedere publieke demosessie herstelt idempotent zes actuele fictieve vacatures, de laatste scores, twee toekomstige opvolgmomenten en negen geïsoleerde example.test-platformmailboxkoppelingen;
  • mailboxbronnen worden niet meer door de URL-fetchscheduler gepland, de publieke demo wordt uitgesloten van echte mailboxpolling en historische mailboxpolicyfouten vervuilen dashboard en activiteit niet langer;
  • navigatie en dashboard onderscheiden nu expliciet een actief zoekprofiel van bron- of systeemgezondheid; het lege loginwachtwoordveld heeft geen misleidende mask-placeholder meer;
  • visuele audit: negen kernroutes groen in dark/light op 390×844, 1280×600, 1440×900 en 3440×1440 zonder overflow, heading- of consolefouten;
  • gerichte regressies: 51 tests groen; volledige gate: 327 tests, 0 failures, 0 skips en 84,04% branch-aware dekking;
  • commit a6c8a79 en tag v0.3.16 zijn naar Gitea gepusht; vóór uitrol is onder /mnt/user/appdata/VacatureRadar/local/backups/release-0.3.16-20260812T094608Z een checksum-geldige database- en configuratieback-up gemaakt;
  • Unraid draait healthy zonder restarts op lokaal gebouwde image sha256:c98001c063e8358dc59dfc175c574187b36021dd5a81f44e3ba982a28c9f9341; een live sessiesmoke bevestigde dashboard 200, zes demomatches, negen platformmailboxen, actieve ingress, nul oude policyfouten en geen wachtwoord-maskplaceholder;
  • VR-230 herstelde de Gitea-releaseworkflow door setup-uv op immutable commit 0880764 en uv op 0.11.12 te pinnen; de Astral-mirror verwijdert de eerdere GitHub Releases-API-rate-limit;
  • vier lege, verweesde Docker-netwerken zijn gecontroleerd verwijderd nadat de runner geen subnet meer kon reserveren; actieve productie- en compose-netwerken bleven onaangeroerd;
  • Gitea Actions-run 3062 publiceerde 0.3.17 met digest sha256:98f4b33db353c192967013818f7c82c4f171921f3d300645908d52680fde209f en artifact release-evidence-v0.3.17 met SPDX-SBOM, checksums en release notes;
  • een dedicated read:package-token geeft Unraid alleen pulltoegang. De pre-deployback-up staat onder /mnt/user/appdata/VacatureRadar/local/backups/release-0.3.17-20260812T114510Z;
  • Unraid is live op de immutable digest gepind: container healthy, nul restarts, interne liveness/readiness groen, publieke readiness 200 en runtimeversie 0.3.17.
  • VR-231 verwijderde de oude main-push-to-deployworkflow en annuleerde de laatste onbeperkt wachtende run 3065; alleen semantische tags publiceren nog;
  • Jobat is via de bestaande OAuth/IMAP-taak geforceerd herhaald: 61 duplicaten correct herkend, nul fouten en de foutstatus volledig gewist;
  • Unraid gebruikt persistent 10.200.0.0/16,size=24; een live proefnetwerk kreeg 10.200.1.0/24 en werd daarna verwijderd. Na de gecontroleerde Docker-herstart zijn alle 127 vooraf actieve containers hersteld; VacatureRadar, Grimmory en MeTube zijn healthy en er zijn geen unhealthy of herstartende containers;
  • serverback-ups bewaren de eerdere docker.cfg, de running-containersnapshot, de Grimmory-template en de Gitea-database vóór de begrensde runannulering. Volgende uitvoerbare backlogtaak: geen.

README-update op 2026-07-30:

  • de repository-ingang benoemt release 0.3.15, de groene 324-testgate, de live M365 app-only OAuth/XOAUTH2-flow en de immutable private Gitea-registryrelease;
  • eerste configuratie noemt alle negen ondersteunde jobplatformen en verwijst expliciet naar het M365 least-privilege- en rotatiepad in het runbook;
  • de bestaande negen screenshots zijn visueel herbeoordeeld. De layout is nog actueel; de bronafbeelding toont bewust een gesaneerde demo zonder actieve ingress en is daarom als demo-momentopname verduidelijkt, niet vervangen door een productiebeeld met accountgegevens;
  • eindverificatie: volledige gate groen met 324 tests, 0 failures, 0 skips en 84,07% branch-aware dekking.

Laatste productiehardening

Productieoplevering 0.3.14 op 2026-07-29:

  • VR-228 en commit cbd7220 zijn via origin/main uitgerold als image sha256:1ee84241c2f4ecef751f45df760054309843e1e98192035bc27476ae5a9477df;
  • de geïsoleerde PostgreSQL-runner mat na één warm-up drie identieke queryprofielen: 3.264 importqueries, gemiddeld 9.040,123 ms, p50 32,900 ms, p95 52,296 ms, 28,031 documenten/s en 18,799 MB piekgeheugen;
  • tegenover 0.3.13 is de import 44,74% sneller, gebruikt hij minstens 63,73% minder queries en stijgt throughput 83,42%; parser 12/12, precision/recall 1,0 en rankingchurn 0 bleven behouden;
  • beide volledige gates waren groen met elk 318 tests, 0 failures, 0 skips en 84,20% dekking;
  • de pre-releasecustomdump, media en composeconfig staan checksum-geldig onder /mnt/user/appdata/VacatureRadar/backups/release-0.3.14-20260729T164500Z; rollbackimage vacatureradar:rollback-0.3.13 wijst naar sha256:34aef8853f77a3f311b119bd67d9f1160a97fd4a21e62c9776222be289bf3b88;
  • productie is healthy zonder restarts, versie 0.3.14 is publiek zichtbaar, alle gastkernroutes antwoorden 200 en een echte importsmoke creëerde één job binnen een transactie waarna rollback expliciet bevestigd werd.

Productieoplevering 0.3.15 op 2026-07-30:

  • VR-202 is live afgerond met een dedicated alias, geïsoleerde Exchange-map en inboxregel, app-only OAuth/XOAUTH2 voor IMAP en SMTP en negen platformconnecties;
  • dezelfde echte testmail werd per connectie eenmaal geïmporteerd en bij herhaling als duplicate herkend; alle ingestelde intervallen zetten next_poll_at correct en de scheduler plande geen connectie te vroeg;
  • de productie-Fernet-sleutel werd live naar een nieuwe primaire MultiFernet-sleutel geroteerd; een tijdelijke versleutelde custom credential bleef ontsleutelbaar en is na de proef verwijderd;
  • één echte digest werd verzonden en de outbox eindigde op sent; productie-logs bevatten geen OAuth-secret, bearer-token of mailpayload;
  • VR-204 publiceerde v0.3.15 naar de private Gitea-registry en Unraid is gepind op sha256:5a6dc253db7a60c42c0c806ae084ddc6ee7c98db5db71a857423b894a3662ba5;
  • commitlabel, digest, SPDX-SBOM, checksums en release notes zijn checksum-geldig opgeslagen als Gitea Actions-artifact release-evidence-v0.3.15;
  • pull, interne en publieke readiness, rollback naar 0.3.14 en herstel naar de immutable 0.3.15-digest zijn live geslaagd;
  • lokale en Gitea-releasegate zijn groen met 324 tests, 0 failures, 0 skips en 84,05% branch-aware dekking.

Volgende uitvoerbare taak: geen; alle P0- en P1-releasepunten zijn afgerond.

Laatste risicohardening

Live mailboxvoorbereiding op 2026-07-30:

  • Exchange Online bevestigde dat de dedicated VacatureRadar-alias aan de productie-mailbox is toegevoegd;
  • de alias is niet primair gemaakt en bestaande adressen zijn ongewijzigd gebleven;
  • de Entra-appregistratie, admin consent en Exchange-mailboxscope zijn live ingericht met app-only OAuth; tijdelijke bootstraprechten en de bootstrap-app zijn na afloop verwijderd;
  • VR-202 is volledig afgerond; Basic Auth is niet geactiveerd;
  • de volledige lokale gate is groen met 324 tests, 0 failures, 0 skips en 84,05% branch-aware dekking.

Risicohardening op 2026-07-29:

  • de productiefetcher blokkeert nu fail-closed wanneer de HTTP-transportlaag het werkelijk verbonden peer-IP niet beschikbaar stelt; ieder niet-publiek peer-IP bleef al geblokkeerd;
  • alleen expliciet geïnjecteerde test/custom clients mogen nog de begrensde DNS-overlapfallback gebruiken; een negatieve regressietest dekt de productiegrens;
  • VR-203 is administratief afgerond op basis van het bestaande live bewijs in docs/audit/FINAL_ACCEPTANCE.md: publieke HTTP→HTTPS, TLS/securityheaders, veilige cookies, CSRF-gastlogin, kernroutes en readiness zijn aantoonbaar geslaagd;
  • verificatie: Ruff groen, 8 gerichte fetchertests geslaagd en de volledige gate groen met 319 tests, 0 failures, 0 skips en 84,21% branch-aware dekking.

Productieoplevering 0.3.13 op 2026-07-29:

  • basiscommit 5e2453c en hardeningcommit a4a71eb naar origin/main gepusht en op Unraid werkelijk gebouwd als finale image sha256:34aef8853f77a3f311b119bd67d9f1160a97fd4a21e62c9776222be289bf3b88;
  • migrations, 148 static files, poort 1226, mounts, restartpolicy, PostgreSQL, Redis, Gunicorn, Celery worker/beat en readiness live gevalideerd, inclusief containerrestart;
  • publieke HTTP→HTTPS, proxy/securityheaders, login-/gastflow, kernroutes, dark/light, 390/1280/3440 px en browserconsole live groen;
  • productiecustomdump en media gehasht, naar een geïsoleerde database hersteld en via migrations, recordtellingen en afzonderlijke Gunicorn-readiness bewezen;
  • vorige image sha256:1851863be947b1e8b504e61e73b89d09c1dff704257b48856c775bb55f741459 live healthy teruggezet, waarna 0.3.13 opnieuw healthy is uitgerold;
  • importprofiling overschreed opnieuw 9.000 queries; veilige optimalisatie vereist eerst een geïsoleerde benchmarkdatabase en blijft als performancevervolg gedocumenteerd.

VR-227 op 2026-07-29:

  • globaal contentframe en topbar zijn gecentreerd tot ultrawide; de gastbanner staat in de normale hoofdflow en de mobiele pipeline is verticaal;
  • vacaturepaginering is begrensd tot twintig resultaten, zoekscope is eerlijk en recente zoektermen blijven lokaal tot vijf items beperkt;
  • Playwright Chromium is een verplichte CI-gate op zes viewports en faalt op focusverlies, overflow, console- en page-errors; de volledige gebruikersreis draait zonder skips;
  • cachegebaseerde worker/beat-heartbeat vervangt de vroegere ongemeten runtimeclaim; onbekende queuediepte blijft expliciet onbekend;
  • generieke HTML-extractie ondersteunt publicatiedatum en dienstverband; benchmarkkwaliteitsrun behaalt 12/12 velden, precision/recall 1,0 en nul rankingchurn;
  • authbackenddekking bedraagt 97%, Entra 86% en totale branch-aware dekking 84,16%; volledige gate groen met 312 tests, 0 failures en 0 skips;
  • CI genereert een CycloneDX-SBOM. Docker kon lokaal niet worden uitgevoerd omdat de binary ontbreekt; live en externe restpunten staan uitsluitend in USER_INPUT_REQUIRED.md.

Volgende uitvoerbare taak: geen na afronding van VR-227.

VR-225 op 2026-07-27:

  • PUBLIC_BASE_URL stuurt publieke host-, origin- en HTTPS-instellingen aan en voorkomt de gemelde DisallowedHost achter Nginx Proxy Manager;
  • publieke debugmodus, zwakke secrets, onveilige cookies, ontbrekende HTTPS-origin en een schrijfbare productiedemo worden fail-fast geweigerd;
  • login- en importrate-limiting delen Redis over alle workers; forwarded client-IPs gelden alleen vanaf expliciet vertrouwde proxy-CIDRs;
  • de gastdemo is server-side alleen-lezen, heeft een begrensde sessie en toont die beperking zichtbaar in de cockpit;
  • interne healthchecks blijven HTTP-bruikbaar onder SSL redirect en readiness verifieert optioneel database plus cache;
  • Unraid, publieke poort, env-pad, Nginx Proxy Manager en productie-env zijn als één reproduceerbaar deploymentcontract gedocumenteerd;
  • de volledige offline suite is groen met 296 tests en 2 correcte Playwrightskips; Docker-, publieke TLS- en live Unraid-smokes blijven doelservervalidatie.

Laatste frontendvervanging

VR-209 tot en met VR-213 vervangen de oude browserfrontend integraal:

  • één nieuwe lokale Stitch-shell en design system zonder CDN of clientframework;
  • echte dashboard-/vacature-intelligence, sollicitatiepipeline, profielconfigurator en source-healthinterface;
  • nieuwe activiteit- en werkgeversroutes/read models en een eerlijke automationcockpit;
  • standaard IT-relevantie, persoonlijke scorecontext en user-scoped mutaties blijven intact;
  • browsermatrix van 360 tot 2560 px, elf actuele screenshots, schone console en geen documentoverflow;
  • bronhealth-N+1 verwijderd: twee queries voor alle bron/runmetingen, 23 totale queries voor het representatieve automationscherm.

Het volledige scherm- en afwijkingsrapport staat in docs/design/STITCH_INTEGRATION_REPORT.md.

Laatste onderhoudsaudit

VR-226 op 2026-07-28:

  • README-presentatie verdiept van vier losse beelden naar een klikbare productreis met negen actuele screenshots: overzicht, zoeken, analyse, skills, werkgevers, sollicitaties, bronnen, automatisering en mobiel profiel;
  • alle desktopbeelden opnieuw vastgelegd op 1920×1080, doelbewust verdeeld over dark/light en gecombineerd met 390×844 mobiel; geen overgangsoverlays, horizontale overflow, secrets of consolewaarschuwingen;
  • de onrustige mobiele dashboardcapture is afgekeurd en verwijderd; de volledige galerij blijft lokaal en samen circa 1,1 MB;
  • vier aangetroffen VR-225-lintproblemen en de ongeldige POSIX-modusassertie op Windows zijn hersteld; volledige gate groen met 296 geslaagde tests, 2 optionele skips en 83,44% branch-aware dekking. Volgende uitvoerbare taak: geen.

VR-224 op 2026-07-27:

  • README volledig herordend rond doelgroep, dagelijkse workflow, concrete productwaarde, veilige quickstart en eerste configuratie; architectuur, beheer en Codex-overdracht volgen pas daarna;
  • vier actuele lokale screenshots toegevoegd voor dagoverzicht, vacatureverkenner, automatisering en mobiel zoekprofiel, samen minder dan 330 kB en zonder secrets of persoonlijke gegevens;
  • browsercontrole op 1600×1000 en 390×844 in dark/light toont geen horizontale overflow of consolewaarschuwingen; repositorylinks en configuratiedocumentatie valideren;
  • volledige gate groen met 268 geslaagde tests, 2 optionele skips en 83,48% branch-aware dekking. Volgende uitvoerbare taak: geen.

VR-223 op 2026-07-27:

  • VacatureRadar-logo verfijnd tot een transparante vier-elementenradar zonder donkere tegel, rand of schaduw; login en sidebar delen dezelfde schaalbare SVG;
  • dubbele demo-/accountidentiteit uit de sidebar verwijderd; radarstatus en een themabewuste transparante ITWorx-credit vormen één compacte footer, terwijl accountmenu en afmelden in de topbar intact blijven;
  • widescreenframe groeit naar 2.200 px en op 4K naar 2.480 px; browsermatrix van 18 shellcombinaties op 390/1280/1920/2560/3840 px en 1280×600 toont geen overlap, overflow of consolewaarschuwing;
  • dark/light en mobiele login bevestigen een transparante logoachtergrond, correcte wordmarkbehandeling en intacte kerninteracties.
  • gerichte regressies: 30 tests groen; volledige gate tweemaal groen met 268 geslaagde tests, 2 optionele skips en 83,45% branch-aware dekking;
  • live image sha256:ea9e61a1febca59eb906bfdebcd9fd2b2c2b000189a8772f4abf09012722e921 healthy uitgerold; readiness, favicon, transparant productlogo en CSS 0.3.11 leveren HTTP 200. Volgende uitvoerbare taak: geen.

VR-222 op 2026-07-26:

  • integrale visuele audit van tien hoofdroutes plus login/herstel vastgelegd in docs/design/VISUAL_AUDIT_2026-07-26.md, met geprioriteerde bevindingen, gevolgen en uitgevoerde roadmap;
  • topbar en hoofdcontent delen één begrensd contentframe; het dagoverzicht toont maximaal vijf kernmatches en daalde op 1440 px van 2.399 naar 1.838 px;
  • activiteitstijdlijn, ontwikkelaarscredit, secundaire klikdoelen en reduced-motion zijn verfijnd; CSS-imports gebruiken een gedeelde cacheversie zodat een release werkelijk alle stijllagen ververst;
  • mobiele loginbotsing, foutieve oog-/demo-iconen en dubbele herstel-link zijn opgelost; VacatureRadar blijft productmerk en ITWorx.tech uitsluitend ontwikkelaarscredit;
  • browsercontrole: 50 combinaties over tien routes en 390/768/1280/1920/3840 px, plus light-theme en login, zonder overflow of consolewaarschuwingen;
  • volledige gate tweemaal groen met 268 geslaagde tests, 2 optionele skips en 83,45% branch-aware dekking; live image sha256:7e1688db80241813a04e27038ef5e4afb64748868b6a97e353346f077be50b70 healthy uitgerold en readiness, favicon, productlogo, ontwikkelaarswordmark plus CSS 0.3.9 leveren HTTP 200. Volgende uitvoerbare taak: geen.

VR-221 op 2026-07-26:

  • merkarchitectuur gecorrigeerd: ITWorx.tech is de ontwikkelaar, VacatureRadar het zelfstandige productmerk;
  • twee logo-concepten zijn met de ingebouwde beeldgeneratieflow verkend; de eenvoudigste radar-/kansrichting is handmatig vertaald naar een exact vijf-elementen-SVG met open cyan radarboog, scanstraal en emerald kanssignaal;
  • sidebar, bovenbalk, login, favicon en Dockerman gebruiken het VacatureRadar-logo; de officiële ITWorx.tech-wordmark staat alleen als Ontwikkeld door-credit in secundaire zones;
  • appmetadata heet opnieuw uitsluitend VacatureRadar; het ongebruikte ITWorx-appicoon is verwijderd en bron-/assetdocumentatie is bijgewerkt;
  • browsermatrix op 390, 1280 en 1920 px toont correcte hiërarchie, geen overflow en een schone console; 29 gerichte regressies en de volledige gate zijn groen met 267 geslaagde tests, 2 optionele skips en 83,45% branch-aware dekking;
  • live image sha256:4184aeff33759b7a205637b0a0333b751b599141fe691a61965d2f1c56ca984a via unraid-itworx uitgerold; container healthy, readiness HTTP 200 en favicon, productlogo, Dockermanicoon plus ITWorx-ontwikkelaarscredit live gevalideerd. Volgende uitvoerbare taak: geen.

VR-220 op 2026-07-26:

  • “eigen branding” is gecorrigeerd naar de door de eigenaar aangeleverde officiële ITWorx.tech-identiteit in plaats van een tijdelijke tekstuele Jens-signatuur;
  • sidebar, bovenbalk, login en wachtwoordherstel gebruiken de transparante opgeschoonde ITWorx.tech-wordmark; VacatureRadar blijft herkenbaar als product en intelligence cockpit;
  • favicon/app-icon (512×512) en Dockermanicoon (256×256) zijn exact uit het officiële cloud-check-symbool gecropt en Lanczos geschaald, zonder generatieve wijziging;
  • merkassets zijn lokaal, transparant, geoptimaliseerd en met herkomst vastgelegd in static/img/README.md;
  • browsercontrole op 390, 1280 en 1920 px toont correcte assets, geen overflow en een schone console; 29 gerichte regressies en de volledige gate zijn groen met 267 geslaagde tests, 2 optionele skips en 83,45% branch-aware dekking;
  • de deployhelper negeert nu veilig verwijderde indexpaden; de twee vervangen SVG-assets zijn expliciet uit de gevalideerde remote sourceboom verwijderd en de uiteindelijke image bevat 147 in plaats van 149 static files;
  • live image sha256:daf34407813b37cdf2d0fc65a482ded65375f89eedd3f0144a8c0ce206d41565 via unraid-itworx uitgerold; container healthy, readiness HTTP 200 en wordmark-, app-icon- en Dockermanassets leveren image/png met HTTP 200. Volgende uitvoerbare taak: geen.

VR-219 op 2026-07-26:

  • de door gebruikersscreenshots aangetoonde ultrawide-uitlijningsfout is hersteld: directe hoofdsecties zijn niet langer afzonderlijk gecentreerd op 1860 px, maar delen één links verankerd grid tot 2800 px;
  • op 3840 px beginnen heading, filters, explorer, systeemstatus, pipeline, KPI's en automationdetail op x=296; dezelfde gridbreedte schaalt zonder overflow naar 1920, 1280 en 390 px;
  • de resultatenkolom en automationlograil hebben begrensde ultrawide-verhoudingen zodat primaire inhoud niet onnodig uitrekt;
  • sidebar, bovenbalk, login en herstelpagina's gebruiken consistent Personal intelligence by Jens en Jens Intelligence, los van de accountgebruikersnaam;
  • browsermatrix schoon zonder consolewaarschuwingen; gerichte regressies 23 tests groen en volledige gate groen met 267 geslaagde tests, 2 optionele skips en 83,45% branch-aware dekking;
  • live image sha256:86836f82cc543a7adb414e47b9667e9123bb9ceba10d629a53086273aaaae03f via unraid-itworx uitgerold; container healthy, readiness HTTP 200 en de nieuwe branding plus 2800px-grid-CSS live gevalideerd. Volgende uitvoerbare taak: geen.

VR-218 op 2026-07-26:

  • favicon, login en applicatieshell delen één verfijnd lokaal radarbeeldmerk met een sterker silhouet op klein formaat;
  • de persoonlijke signatuur Jens · private intelligence is zichtbaar op publieke en ingelogde schermen en via VACATURERADAR_OWNER_NAME configureerbaar;
  • de desktopbovenbalk toont eigenaar plus actuele routecontext; navigatie- en zoekfocus zijn verfijnd en de aanvullende context verdwijnt doelbewust op mobiel;
  • gerichte regressies: Ruff groen, 29 tests geslaagd en 2 optionele skips; browsercontrole van dashboard, verkenner, profiel en login op 1280×850 en 390×844 zonder documentoverflow of consolewaarschuwingen;
  • live image sha256:5f25f00c9b7efb166587901ff39b02c56c98fb9946ddef0a4546a22f18dc0802 via unraid-itworx uitgerold; container healthy, readiness HTTP 200 en persoonlijke loginbranding plus SVG-favicon live gevalideerd;
  • volledige gate groen met 266 geslaagde tests, 2 optionele skips en 83,45% branch-aware dekking; volgende uitvoerbare taak: geen, alleen bestaande externe blokkades en uitgestelde productkeuzes resteren.

VR-217 op 2026-07-26:

  • de vermeende Unraid-authenticatiefout bleek een clientprofielkeuze: rechtstreeks IP gebruikte gebruiker jens, terwijl unraid-itworx correct root, IdentitiesOnly en de afzonderlijke deploysleutel selecteert;
  • scripts/deploy_unraid.sh valideert de hostalias, synchroniseert uitsluitend niet-genegeerde projectbestanden en combineert build, containerhealth en readiness-smoke;
  • het zoekprofiel heeft een lokale interactieve SVG-radar met scansweep, signalen, pointerparallax en statische reduced-motionvariant zonder fictieve data;
  • browsercontrole op 1280×800 en 390×844 in licht en donker toont geen documentoverflow of consolefouten; de illustratie blijft decoratief en staat mobiel na de primaire actie;
  • volledige gate groen met 265 tests, 2 optionele skips en 83,44% branch-aware dekking;
  • live image sha256:4d30e01e778777d5a2cde4339a9b2ad006edb25cae387293737420152d65069d gebouwd en via unraid-itworx uitgerold; container healthy, readiness HTTP 200 en de nieuwe CSS-/JS-assets via LAN HTTP 200;
  • volgende uitvoerbare taak: geen; alleen bestaande externe blokkades en uitgestelde productkeuzes resteren.

VR-216 op 2026-07-26:

  • premium “calm intelligence”-laag toegevoegd met zachtere scheidingen, spaarzamer cyan, humane navigatietypografie en duidelijkere elevatie in donker en licht thema;
  • dashboard-KPI's staan mobiel compact 2×2, filters vormen een responsieve commandobar, pipelinekolommen scrollen intern en het profiel gebruikt een brede compositie;
  • de browsermatrix controleerde 1280×800 en 390×844 zonder documentoverflow; dashboard, verkenner, pipeline, profiel en beide thema's zijn visueel beoordeeld;
  • een bestaande CSP-consolefout op login is opgelost door de interactie naar een lokale externe JavaScriptasset te verplaatsen en regressiegedekt;
  • gerichte verificatie: Ruff groen, 22 tests geslaagd en 2 optionele Playwright-skips; volledige gate groen met 264 tests, 2 optionele skips en 83,44% branch-aware dekking;
  • volgende uitvoerbare taak: geen; alleen bestaande externe blokkades en uitgestelde productkeuzes resteren.

VR-215 op 2026-07-26:

  • Dockermans eigen implementatie bleek [IP]/[PORT] uitsluitend voor WebUI-links te vervangen en niet vóór een icoondownload; het eerdere label kon daardoor de cache niet vullen;
  • het live icoonlabel gebruikt nu de server-side loopback-URL op hostpoort 1226;
  • de Unraid-host bevat zowel de persistente als actuele RAM-cache VacatureRadar-icon.png, en Dockermans gegenereerde docker.json verwijst naar /state/plugins/dynamix.docker.manager/images/VacatureRadar-icon.png;
  • de gerecreate container is healthy en de PNG-/readiness-smokes slagen;
  • volgende uitvoerbare taak: geen; alleen bestaande externe blokkades en uitgestelde productkeuzes resteren.

VR-214 op 2026-07-25:

  • het ontbrekende Unraid/Dockerman-tegelicoon is hersteld met een lokale 256×256 PNG op /static/img/vacatureradar-docker.png; de browserfavicon blijft de bestaande SVG;
  • de volledige WebUI- en icoonlabels, PNG-signatuur en afmetingen zijn regressiegedekt;
  • collectstatic kopieert de asset naar de productie-staticroot;
  • de volledige scripts/codex_verify.sh-gate slaagde via Git Bash met 264 tests, 2 optionele Playwright-skips en 83,47% branch-aware codedekking;
  • de Unraid-image is daarna live gebouwd als sha256:799825df1a343b6bee43695850454a5fdc977b5af3366077e6ac6aaeeb94f6f9; de gerecreate container was healthy, liveness/readiness slaagden en het Dockerman-label wees naar de lokale PNG, die via LAN HTTP 200 met Content-Type: image/png en 7.111 bytes leverde;
  • er zijn tijdens de volledige lint-, systeem-, migratie-, test-, ledger- en repositorycontrole geen andere releaseblokkerende regressies gevonden;
  • volgende uitvoerbare taak: geen; alleen de bestaande externe blokkades en uitgestelde productkeuzes resteren.

VR-209213-verificatie op 2026-07-22:

  • 248 tests geslaagd, 2 optionele Playwrightvarianten overgeslagen en 84,40% branch-aware codedekking;
  • Ruff, Django system check, migratiecheck, backlogvalidatie en repository-/documentvalidatie geslaagd via scripts/codex_verify.sh;
  • alle negen routes in de geïntegreerde browser gecontroleerd zonder consolewaarschuwingen, kapotte assets of documentoverflow;
  • browsermatrix: 360×800, 390×844, 768×1024, 1024×768, 1280×800, 1440×900, 1920×1080 en 2560×1440;
  • elf actuele beelden onder artifacts/visual-validation/; artifacts en Stitch-referenties blijven buiten de productieimage;
  • volgende uitvoerbare taak: geen; alleen de bestaande externe credentials-/infrastructuurblokkades en uitgestelde productkeuzes resteren.

Laatste geverifieerde baseline

Release-audit op 2026-07-21:

  • 146 geslaagde tests en 2 lokaal overgeslagen Playwright-varianten; de HTML/a11y-fallback is geslaagd;
  • 81,98% branch-aware codedekking over apps en config;
  • Ruff en Django system checks geslaagd;
  • geen ontbrekende migraties;
  • backlog- en repositoryvalidatie geslaagd;
  • de lockfile gebruikt publieke PyPI-bronnen in plaats van een niet-overdraagbare interne registry;
  • releaseblokkers hersteld in template-rendering, JSON/BOM-verwerking, leases, feedback, dossierautorisatie, ATS-provenance, employer-resolutie en DNS-rebindcontrole;
  • de productie-fetcher valideert het verbonden peer-IP, zodat legitieme CDN-DNS-rotatie bij DAF en Xplore Group niet als rebind wordt afgewezen terwijl private peers geblokkeerd blijven;
  • een echte Dockerimagebuild op de Unraid-server, migratiecontrole en live LAN-smoke voor liveness, readiness, login en static assets zijn geslaagd;
  • deploymenthardening voorkomt gelijktijdige migraties door worker/scheduler, schakelt de Gunicorn-controlsocket uit voor de read-only container en houdt de lokale healthcheckhost toegestaan.

VR-118-herverificatie op 2026-07-21:

  • 146 geslaagde tests en 2 optioneel overgeslagen pytest-Playwrightvarianten; HTML/a11y-fallback geslaagd;
  • 82,00% branch-aware codedekking;
  • Ruff, Django system check en migratiecontrole geslaagd;
  • taakledger geldig met 36 taken: 28 done, 5 blocked-external, 3 deferred en 0 ready;
  • geïntegreerde browservalidatie op zes viewports en beide thema's geslaagd.

VR-119-herverificatie op 2026-07-21:

  • 146 geslaagde tests en 2 optioneel overgeslagen pytest-Playwrightvarianten; uitgebreide HTML/a11y-fallback geslaagd;
  • 82,02% branch-aware codedekking;
  • Ruff, Django system check, migratiecontrole, taakledger en repositoryvalidatie geslaagd;
  • geïntegreerde browsercontrole op alle kernroutes, zes doelviewports, dark/light en mobiele drawer geslaagd zonder pagina-overflow of consolefouten;
  • taakledger geldig met 37 taken: 29 done, 5 blocked-external, 3 deferred en 0 ready.

VR-120-herverificatie op 2026-07-21:

  • 155 geslaagde tests en 2 optioneel overgeslagen pytest-Playwrightvarianten; HTML/a11y-fallback en in-app-browsercontrole geslaagd;
  • 82,94% branch-aware codedekking;
  • Ruff, Django system check, migratiecontrole, taakledger en repositoryvalidatie geslaagd via de volledige scripts/codex_verify.sh-gate;
  • VITO leverde 37 vacatures in twee geslaagde cycli; Deliverect leverde 26 vacatures en verwerkte de tweede cyclus correct als HTTP 304;
  • taakledger geldig met 38 taken: 30 done, 5 blocked-external, 3 deferred en 0 ready.

VR-121-herverificatie op 2026-07-22:

  • 159 geslaagde tests en 2 optioneel overgeslagen pytest-Playwrightvarianten; HTML/a11y-fallback geslaagd;
  • 82,91% branch-aware codedekking;
  • Ruff, Django system check, migratiecontrole en repositoryvalidatie geslaagd via scripts/codex_verify.sh;
  • acht nieuwe bronnen passeerden elk twee livecycli zonder parserwarnings; de lokale inventaris telt 10 actieve bronnen en 145 actieve vacatures;
  • in-app-browsercontrole bevestigde 10 bronkaarten, de VDAB/Indeed-alertingress, geen horizontale overflow en geen consolefouten;
  • taakledger bevat 39 taken; na afronding van VR-121 blijven alleen 5 blocked-external en 3 deferred taken over.

VR-122-herverificatie op 2026-07-22:

  • 164 geslaagde tests en 2 optioneel overgeslagen pytest-Playwrightvarianten; HTML/a11y-fallback geslaagd;
  • 83,55% branch-aware codedekking;
  • Ruff, Django system check, migratiecontrole, taakledger en repositoryvalidatie geslaagd via scripts/codex_verify.sh;
  • de dagelijkse mailboxingang is configureerbaar, idempotent en begrensd; VDAB-mails krijgen expliciete provenance zonder platformlinks automatisch te volgen;
  • Codex-browsercontrole bevestigde de VDAB-/API-uitleg, desktop en 390 px zonder horizontale overflow en zonder consolefouten;
  • taakledger bevat 40 taken; na afronding van VR-122 blijven alleen 5 blocked-external en 3 deferred taken over.

VR-123-herverificatie op 2026-07-22:

  • 178 geslaagde tests en 2 optioneel overgeslagen pytest-Playwrightvarianten; HTML/a11y-fallback geslaagd;
  • 83,56% branch-aware codedekking;
  • Ruff, Django system check, migratiecontrole, taakledger en repositoryvalidatie geslaagd via scripts/codex_verify.sh;
  • VDAB en Indeed hebben afzonderlijke gebruikersgescopeerde mailboxkoppelingen met eigen provider, account, app-wachtwoord en interval van 5 tot 360 minuten;
  • app-wachtwoorden zijn versleuteld met roteerbare MultiFernet-sleutels; schedulerleases, per-mailbox-idempotentie, SSRF-validatie en foutisolatie zijn regressiegedekt;
  • Codex-browsercontrole bevestigde de platformmailboxformulieren, desktop en 390 px zonder horizontale overflow en zonder consolefouten;
  • taakledger bevat 41 taken; na afronding van VR-123 blijven alleen 5 blocked-external en 3 deferred taken over.

VR-124-herverificatie op 2026-07-22:

  • 192 geslaagde tests en 2 optioneel overgeslagen pytest-Playwrightvarianten; HTML/a11y-fallback geslaagd;
  • 83,61% branch-aware codedekking;
  • Ruff, Django system check, migratiecontrole, taakledger en repositoryvalidatie geslaagd via scripts/codex_verify.sh;
  • platformmailboxen ondersteunen naast VDAB en Indeed ook LinkedIn, ictjob.be, Jobat, StepStone, EuroBrussels en BrusselsJobs met afzonderlijke accounts, intervallen en status;
  • zes gesaneerde jobboardfixtures bewijzen platformprovenance en de afwijzing van externe, HTTP-, tracking-, account-, help-, privacy- en uitschrijflinks;
  • alle acht jobboardgroepen staan op de directe-fetchdenylist; platformlogin en scraping blijven uitgesloten;
  • Codex-browsercontrole bevestigde acht keuzelijstopties en alertkaarten, desktop en 390 px zonder horizontale overflow en zonder consolefouten;
  • taakledger bevat 42 taken; na afronding van VR-124 blijven alleen 5 blocked-external en 3 deferred taken over.

VR-125-herverificatie op 2026-07-22:

  • 200 geslaagde tests en 2 optioneel overgeslagen pytest-Playwrightvarianten; HTML/a11y-fallback geslaagd;
  • 83,90% branch-aware codedekking;
  • Ruff, Django system check, migratiecontrole, taakledger en repositoryvalidatie geslaagd via scripts/codex_verify.sh;
  • EuroBrussels en BrusselsJobs zijn uit de configureerbare mailboxcatalogus verwijderd; Careerjet, Randstad en Robert Half gebruiken dezelfde versleutelde platformmailboxflow;
  • Deliverect, YPTO, adesso, Monizze, Qover, SFEIR en ARHS zijn buiten de regionale scope uitgeschakeld en verborgen zonder vacaturehistoriek of provenance te wissen;
  • ACA Group, Xplore Group, UHasselt, PXL en ZOL passeerden ieder twee livecycli zonder parserwarnings; de acht zichtbare actieve bronnen bevatten 162 vacature-aliassen;
  • Codex-browsercontrole bevestigde exact acht regionale bronkaarten, negen platformkeuzes, geen Brusselse kaarten, desktop en 390 px zonder horizontale overflow en zonder consolefouten;
  • taakledger bevat 43 taken; na afronding van VR-125 blijven alleen 5 blocked-external en 3 deferred taken over.

VR-126-herverificatie op 2026-07-22:

  • 206 geslaagde tests en 2 optioneel overgeslagen pytest-Playwrightvarianten; HTML/a11y-fallback geslaagd;
  • 84,12% branch-aware codedekking;
  • Ruff, Django system check, migratiecontrole, taakledger en repositoryvalidatie geslaagd via scripts/codex_verify.sh;
  • het actieve profiel bewaart postcode 2400 en 40 km; ontbrekende gelicenseerde coördinatendata blijft zichtbaar en wordt niet geschat;
  • SCK CEN, Cipal Schaubroeck, VanRoey, NTX en Thomas More passeerden twee livecycli zonder parserwarnings; de dertien actieve bronnen bevatten 210 vacature-aliassen;
  • Codex-browsercontrole bevestigde 13 bronkaarten, de Mol/40-km-status, desktop en 360 px zonder horizontale overflow en zonder consolefouten;
  • taakledger bevat 44 taken; na afronding van VR-126 blijven alleen 5 blocked-external en 3 deferred taken over.

VR-201/VR-205-herverificatie op 2026-07-22:

  • 218 geslaagde tests en 2 optioneel overgeslagen pytest-Playwrightvarianten; HTML/a11y-fallback geslaagd;
  • 84,46% branch-aware codedekking;
  • Ruff, Django system check, migratiecontrole, taakledger en repositoryvalidatie geslaagd via scripts/codex_verify.sh;
  • GeoNames België 2026-04-03 is onder CC BY 4.0 met checksums gedocumenteerd, 2.781 unieke invoerrijen zijn gevalideerd en 2400 Mol is opgelost naar het benaderende postcodecentrum 51.1919, 5.1166;
  • Gemeente Mol en zeven bijkomende Kempen-werkgevers passeerden elk twee livecycli zonder parserwarnings; samen leverden zij 53 kaarten per cyclus;
  • twaalf regionale werkgevers staan afzonderlijk als niet-scanbare waaklijst in de UI, ook wanneer zij momenteel geen vacature hebben;
  • Codex-browsercontrole bevestigde 21 actieve bronnen, 12 waaklijstkaarten, de GeoNames-status, één h1, geen horizontale overflow op desktop of 390 px en geen consolefouten;
  • de Unraid-deploy gebruikt expliciet Celery-queue default, overeenkomstig de queues die de productie-worker consumeert;
  • de fetcher valideert het werkelijk verbonden publieke peer-IP, zodat legitieme CDN-rotatie van DAF en Xplore Group veilig wordt ondersteund;
  • taakledger bevat 44 taken: 38 done, 3 blocked-external, 3 deferred en 0 ready.

VR-206-herverificatie op 2026-07-22:

  • 225 geslaagde tests en 2 optioneel overgeslagen pytest-Playwrightvarianten; HTML/a11y-fallback geslaagd;
  • 84,53% branch-aware codedekking; Ruff, Django system check, migratiecontrole, taakledger en repositoryvalidatie geslaagd via scripts/codex_verify.sh;
  • de standaardradar gebruikt een deterministische titelgestuurde IT-grens en laat verborgen/hard uitgesloten matches weg, met expliciete archiefopties voor volledige inspectie;
  • de lokale auditinventaris telt 336 actieve records: 108 aantoonbare IT-titels, 228 gefilterde niet-IT-records en 102 kaarten in de persoonlijke radarselectie;
  • de Stitch-cockpit benut maximaal 2240 px met tweekoloms matchfeeds op ultrawide; de zes kernroutes zijn handmatig gecontroleerd op 320, 390, 1024, 1440, 1920 en 2560 px zonder horizontale paginaoverflow;
  • dark/light, gelabelde velden, mobiele drawer, score-/confidencecopy, archieffilters en inline bewaren zijn in de geïntegreerde browser gecontroleerd.

VR-207-herverificatie op 2026-07-22:

  • 232 geslaagde tests en 2 optioneel overgeslagen pytest-Playwrightvarianten; HTML/a11y-fallback geslaagd;
  • 84,59% branch-aware codedekking; Ruff, Django system check, migratiecontrole, taakledger en repositoryvalidatie geslaagd via scripts/codex_verify.sh;
  • het profiel bevat gegroepeerde field-/infrastructuur-, Microsoft/endpoint-, netwerk/security-, back-up/monitoring-, virtualisatie-, VoIP- en scriptingkeuzes plus een ervaringsband;
  • de skillcomponent bereikt zijn maximum bij vier aangetroffen cv-skills en presenteert niet-vermelde voorkeurskills niet meer als tekort;
  • ambigue field-/implementatietitels vereisen een onafhankelijk IT-contextsignaal en titeluitsluitingen respecteren woordgrenzen en eenvoudige Engelse meervouden;
  • de lokale actieve auditprofielen zijn zonder persoonsgegevens in Git afgestemd op 1014 jaar ervaring, 27 relevante roltitels en 46 cv-skills; na herscoring blijven 14 plausibele field-/infrastructuurkansen zichtbaar;
  • geïntegreerde browsercontrole bevestigde de categorie-editor op ultrawide en 390 px, één mobiele categoriekolom, geldige profielselecties en geen horizontale paginaoverflow.

VR-208-herverificatie op 2026-07-22:

  • 240 geslaagde tests en 2 optioneel overgeslagen pytest-Playwrightvarianten; HTML/a11y-fallback geslaagd;
  • 84,73% branch-aware codedekking; Ruff, Django system check, migratiecontrole, taakledger en repositoryvalidatie geslaagd via scripts/codex_verify.sh;
  • ervaringsduur en senioriteitslabels hebben geen invloed meer op deterministische score, AI-score, aanbeveling, uitsluiting of feedbacklearning; migratie 0006 ruimt het oude gewicht op;
  • de persoonlijke Skillsradar analyseert alleen actieve IT-vacatures met een niet-verborgen score voor de actuele profielversie en laat records van uitsluitend uitgeschakelde bronnen buiten beschouwing;
  • de lokale radar toont 9 onderzochte vacatures, 5 herkenbare vraagsignalen, 2 gedekte skills en 3 mogelijke leerkansen zonder een tekstsignaal als harde eis te presenteren;
  • geïntegreerde browsercontrole bevestigde filters, 88 profielskillcheckboxes, één h1, lege console en geen horizontale paginaoverflow op 2560×1440, 1440×900 en 390×844.

Deploymentstatus

  • main is via de bestaande Gitea-SSH-sleutel naar NuklearRabbit/VacatureRadar gepusht.
  • De applicatie draait op de Unraid-server via de geconfigureerde private host en poort 1226 als één Dockerman-container; Supervisor bewaakt intern PostgreSQL 17, Redis, web, worker en scheduler.
  • De Dockerman-tegel gebruikt de lokale VacatureRadar-favicon en opent rechtstreeks de WebUI op poort 1226.
  • De server-side .env heeft rechten 0600; gegenereerde secrets zijn niet naar Git of logs gekopieerd.
  • Historisch bewijs (2026-07-22, inmiddels vervangen): de self-hosted runner was toen niet actief en die sessie gebruikte een directe SSH-deploy. Sinds 0.3.17 is uitsluitend de taggestuurde immutable registryrelease operationeel; een gewone push naar main deployt bewust niet.
  • Deze historische LAN-beperking is op 2026-07-29 opgeheven: het publieke domein, reverse proxy/TLS, DJANGO_DEBUG=0 en secure cookies zijn live gevalideerd.

Laatste uitgevoerde backlogtaak

  • 2026-07-22: VR-208 voltooid.

    • Ervaringsjaren zijn alleen nog profielcontext; alle score-, recommendation-, concern-, evidence- en learninginvloed is verwijderd.
    • Een gebruikersgescopeerde vraaganalyse brengt actuele skillfrequentie, bewijskwaliteit, profieldekking en niet-blokkerende leer-/bijscholingskansen in kaart.
    • De profielcatalogus en nieuwe responsieve Skillsradar ondersteunen Microsoft, netwerk/security, monitoring/platform, ITSM en digitale adoptie met begeleide filters.
    • Volgende taak: geen uitvoerbare ready taak; VR-202, VR-203 en VR-204 blijven blocked-external.
  • 2026-07-22: VR-207 voltooid.

    • De twee aangeleverde cv's zijn visueel en tekstueel lokaal beoordeeld; alleen afgeleide technische profielkeuzes zijn in de lokale gebruikersdatabase opgeslagen.
    • Relevante ervaring, rollen, skills en doelgerichte uitsluitingen zijn toegepast en alle 336 actieve vacatures zijn opnieuw gescoord voor beide lokale auditprofielen.
    • De profiel- en scorelogica is regressiegedekt; afwezige cv-skills verlagen een breed profiel niet onbeperkt en worden niet als bewezen tekort getoond.
    • Volgende taak: geen uitvoerbare ready taak; VR-202, VR-203 en VR-204 blijven blocked-external.
  • 2026-07-22: VR-206 voltooid.

    • Niet-IT-vacatures en commercieel/recruitmentmisleidende IT-titels zijn standaard uit Vandaag en de vacaturefeed verwijderd zonder bronhistoriek te wissen.
    • Matchsortering, radar-/archieffilters, score-evidence en gebruikersgescopeerde dashboardscores maken de dagelijkse selectie beslisbaar.
    • De Stitch-dominante shell, feeds, details en context-rails schalen van 320 tot 2560 px en gebruiken op ultrawide twee resultaatkolommen.
    • Een open redirect in feedbackterugkeer, 320 px bronoverflow en de ontbrekende faviconfallback zijn als auditbevindingen mee opgelost.
    • Volgende taak: geen uitvoerbare ready taak; VR-202, VR-203 en VR-204 blijven blocked-external.
  • 2026-07-22: VR-201 en VR-205 voltooid.

    • De officiële GeoNames-postcodedataset lost postcode 2400 op naar Mol en levert indicatieve postcodecentrumafstanden; licentie, versie, reviewdatum en twee SHA-256-checksums zijn vastgelegd.
    • Gemeente Mol, Ziekenhuis Geel, lokaal bestuur Geel, Stad Turnhout, Group Renotec, Ravago, Sanofi Geel en DAF Trucks Westerlo zijn na fixtures, negatieve routechecks en twee livecycli actief.
    • Johnson & Johnson Beerse, Nike Laakdal, AZ Turnhout, Cartamundi, Nyrstar, Aurubis, Estée Lauder, Soudal, H.Essers, Cegeka, IOK en Jessa staan als interessante niet-scanbare werkgeverswaaklijst in de applicatie.
    • HTTP, robots en IMAP gebruiken een strikte gepinde CA-bundel; de eerdere lokale Windows-CA-fout bij Gemeente Mol en Ziekenhuis Geel was geen geldige reden voor een bypass.
    • Volgende taak: geen uitvoerbare ready taak; alleen VR-202, VR-203 en VR-204 blijven blocked-external voor productiecredentials/-infrastructuur.
  • 2026-07-22: VR-126 voltooid.

    • Het actieve lokale profiel bewaart postcode 2400 en een straal van 40 km; gemeente en coördinaten blijven leeg tot de gelicenseerde geodata uit VR-205 beschikbaar is.
    • De catalogus is herankerd op Mol en uitgebreid met SCK CEN, Cipal Schaubroeck, VanRoey, NTX/Netropolix en Thomas More.
    • Exacte host-, pad-, plaats- en CVWarehouse-GUID-filters weigeren off-domain, andere vestigingen en kandidaat-/sollicitatieroutes.
    • Gemeente Mol en Ziekenhuis Geel zijn niet geactiveerd wegens falende TLS-certificaatvalidatie; er is geen bypass toegepast.
    • Volgende taak: geen uitvoerbare ready taak; VR-205 blijft blocked-external voor de gelicenseerde geocodedataset en VR-202 voor productie-mailboxcredentials.
  • 2026-07-22: VR-125 voltooid.

    • De regionale catalogus gebruikt voorlopig Hasselt-Genk als omkeerbaar centrum voor de indicatieve 40-km-selectie omdat het actieve profiel nog geen postcode bevat; de profielafstand wordt exact zodra die postcode is ingevuld.
    • Careerjet, Randstad en Robert Half vervangen de expliciete Brusselse nicheboards in de platformmailboxflow; alle brede jobboards blijven op de directe-fetchdenylist.
    • ACA Group, Xplore Group, Universiteit Hasselt, Hogeschool PXL en Ziekenhuis Oost-Limburg worden via host- en padgebonden publieke lijstparsers ingelezen; alle vijf slaagden tweemaal live zonder warnings.
    • Zeven werkgeversbronnen buiten de regionale scope zijn gedeactiveerd en verborgen, maar hun historische aliassen, documenten en provenance blijven intact.
    • Volgende taak: geen uitvoerbare ready taak; VR-201 en VR-202 blijven blocked-external voor persoonlijke postcode-/bronreview en productiecredentials.
  • 2026-07-22: VR-124 voltooid.

    • LinkedIn, ictjob.be, Jobat, StepStone, EuroBrussels en BrusselsJobs zijn toegevoegd aan dezelfde versleutelde platformmailboxflow als VDAB en Indeed.
    • De bronpagina toont per jobboard een actuele officiële alertingang; ieder platform behoudt een eigen mailbox, interval, status, pauze- en syncactie.
    • De mailparser accepteert per koppeling uitsluitend gelabelde HTTPS-links op het gekozen jobboarddomein en verwerpt externe en administratieve links.
    • Alle brede jobboards blijven directe-fetchdenylistbronnen; VacatureRadar logt alleen in op het mailboxaccount en nooit op een jobboard.
    • Volgende taak: VR-202 blijft blocked-external voor productieconfiguratie en live validatie met de gewenste afzonderlijke alertmailboxen.
  • 2026-07-22: VR-123 voltooid.

    • Een ingelogde gebruiker kan VDAB en Indeed elk aan een afzonderlijke Gmail-, Outlook- of aangepaste IMAP-mailbox koppelen, wijzigen, pauzeren en direct synchroniseren.
    • Iedere koppeling heeft een eigen interval van 5 minuten tot 6 uur; de scheduler verwerkt alleen verschuldigde mailboxen met leases en foutisolatie.
    • App-wachtwoorden worden nooit teruggetoond en zijn versleuteld met afzonderlijke roteerbare sleutels; mailboxmutaties zijn login-, gebruikersscope- en CSRF-beveiligd.
    • Mailimport bewaart platform- en mailboxprovenance en is idempotent per mailbox en Message-ID; directe platformfetch en platformlogin blijven uitgesloten.
    • Volgende taak: VR-202 blijft blocked-external voor productieconfiguratie en live validatie met de afzonderlijke VDAB- en Indeed-mailboxaccounts.
  • 2026-07-22: VR-122 voltooid.

    • Officiële VDAB-jobalerts worden standaard dagelijks om 06:15 Europe/Brussels via de dedicated IMAP-mailbox verwerkt; planning en batchlimieten zijn configureerbaar.
    • De mailadapter bewaart VDAB-provenance, replay blijft idempotent en een oversized of fout bericht stopt de rest van de batch niet.
    • De bronpagina toont mailboxstatus, laatste VDAB-import, een beveiligde handmatige inplanknop en de contractueel afgeschermde officiële VDAB Vacature API als afzonderlijke route.
    • Directe VDAB-scraping, platformlogin en niet-goedgekeurde API-toegang blijven geblokkeerd.
    • Volgende taak: VR-202 blijft blocked-external voor het invullen en live valideren van mailbox-/SMTP-credentials.
  • 2026-07-22: VR-121 voltooid.

    • Corda Campus, RPM Europe Logistics, YPTO, adesso Belgium, Monizze, Qover, SFEIR Belgium en ARHS Belgium zijn na actuele review en twee succesvolle cycli geactiveerd.
    • De catalogus omvat nu regionale Hasselt/Genk-dekking en aanvullende Belgische IT-werkgevers in Brussel en Leuven.
    • Bronnen op gedeelde ATS-hosts worden uniek per exacte feed-URL bewaard; per-origin leases en rate limits blijven gezamenlijk gelden.
    • De Corda-adapter bewaart werkgever en titel van publieke jobkaarten en weigert off-domain links.
    • VDAB en Indeed blijven op de directe-fetchdenylist en worden in de UI via officiële e-mailalerts naar de bestaande beveiligde mailboxingress geleid.
    • Volgende taak: VR-201 blijft blocked-external voor verdere persoonlijke bronkeuzes en periodieke menselijke voorwaardenreview.
  • 2026-07-21: VR-120 voltooid.

    • Thuislocatie is teruggebracht tot een viercijferige postcode; gemeente en coördinaten worden alleen uit lokale geodata afgeleid.
    • Alle profieltaxonomie gebruikt begeleide checkboxgroepen met dynamisch behoud van bestaande waarden.
    • VITO en Deliverect zijn na actuele policy-/robotsreview en twee livecycli geactiveerd; samen leverden ze 63 actuele vacaturealiases.
    • Recruitee- en Leverresponsevormen, employeridentiteit, direct-employerstatus, 304-inventaristelling en robotsredirectvalidatie zijn functioneel hersteld.
    • De fixturebron is uit het normale bronoverzicht verborgen; browserhandoff staat op de vernieuwde profieleditor.
    • Volgende taak: VR-201 blijft blocked-external voor verdere persoonlijke werkgevers- en overheidsdekking.
  • 2026-07-21: VR-119 voltooid.

    • Stitch bepaalt nu de dominante schermcompositie: utilityzoeker, brede matchfeed, vaste radar-/actierails, dichte resultaatkaarten, intelligence-strip, kanban, profielpreview, compacte bronimport en echte systeemtelemetrie.
    • Vacaturelijstscores worden gebruikersgescopeerd uit de laatste ScoreRun geannoteerd; er is geen fictieve frontenddata toegevoegd.
    • Nederlandstalige profielvelden, lokale favicon en aanvullende HTML/a11y-regressieasserties zijn toegevoegd.
    • Browserbewijs en exact verificatierapport staan onder docs/design/validation/ met prefix vr119-.
    • Volgende taak: VR-201 (blocked-external).
  • 2026-07-21: VR-118 voltooid.

    • Alle kernroutes delen nu één responsive Intelligence Cockpit-shell met lokale SVG-iconen en CSP-veilige assets.
    • Stitch-dark en een volwaardige light variant zijn gekoppeld aan echte Django-data; externe quick apply, nepmetrics en onbewezen intelligence zijn bewust geweerd.
    • Browserflow valideerde vacature → sollicitatiedossier → pipeline, bron-disclosures, themawissel en viewports 1440×900, 1280×800, 1024×768, 768×1024, 390×844 en 360×800 zonder horizontale overflow.
    • Stitch-bronnen, integratieplan en screenshots staan onder docs/design/ en zijn uit de productiecontainer gesloten.
    • Volgende taak: VR-201 (blocked-external).
  • 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:

./scripts/codex_verify.sh

Nog te bouwen

Momenteel staan er geen ready taken of P0/P1-releaseblokkers meer over.

Externe blokkades

Deze blokkeren onafhankelijke code niet:

  • verdere persoonlijke werkgevers-/bronnenkeuze en actuele menselijke review buiten de actieve VITO-/Deliverect-startercatalogus;

Bekende verificatiebeperking van de aangeleverde basis

De Pythonapplicatie, Dockerimage en PostgreSQL/Redis/Unraid-stack zijn geverifieerd. De verplichte Playwright-gate draait lokaal met Chromium; VR-119 is aanvullend met de geïntegreerde browser op alle kernroutes uitgevoerd, VR-120 op het begeleide profiel en de live vacaturefeed en VR-124 op de acht platformmailboxen en alertkaarten. Publieke HTTPS, proxyheaders en de gastflow zijn op 2026-07-29 live geaccepteerd en vastgelegd in docs/audit/FINAL_ACCEPTANCE.md.

Hervatten

./scripts/codex_verify.sh
python scripts/backlog.py next

Werk daarna exact volgens docs/ai/AUTONOMOUS_EXECUTION_PROTOCOL.md.