From 1397f085bd8fe1ba3d827471e17ca59c3c331c4a Mon Sep 17 00:00:00 2001 From: Jens Date: Wed, 29 Jul 2026 19:07:05 +0200 Subject: [PATCH] docs: record 0.3.14 production acceptance --- CURRENT_STATE.md | 2 +- DEPLOYMENT.md | 7 +++++++ OPERATIONS.md | 2 ++ docs/ai/BACKLOG.yaml | 11 ++++++++--- docs/ai/PROJECT_STATE.md | 13 ++++++++++++- docs/audit/FINAL_ACCEPTANCE.md | 14 ++++++++------ 6 files changed, 38 insertions(+), 11 deletions(-) diff --git a/CURRENT_STATE.md b/CURRENT_STATE.md index f3d958d..2ae9688 100644 --- a/CURRENT_STATE.md +++ b/CURRENT_STATE.md @@ -2,4 +2,4 @@ VacatureRadar 0.3.14 is een single-user-first, server-rendered vacature-intelligencecockpit. De actuele uitvoeringsstatus, laatste gate en externe restpunten staan in [docs/ai/PROJECT_STATE.md](docs/ai/PROJECT_STATE.md). Productgebruik en installatie beginnen in [README.md](README.md). -Release 0.3.14 verlaagt voor de vaste 250-itemimport de gemiddelde duur met 44,74% en het queryvolume met minstens 63,73%, met behoud van parser-, dedupe-, ranking-, provenance- en scorehistoriekcontracten. Het actuele productie-image en livebewijs worden na deployment in [docs/ai/PROJECT_STATE.md](docs/ai/PROJECT_STATE.md) geregistreerd. Alleen optionele externe identity- en mailboxcredentials staan nog in [USER_INPUT_REQUIRED.md](USER_INPUT_REQUIRED.md). +Release 0.3.14 draait publiek als image `sha256:1ee84241c2f4ecef751f45df760054309843e1e98192035bc27476ae5a9477df`. Voor de vaste 250-itemimport daalt de gemiddelde duur met 44,74% en het queryvolume met minstens 63,73%, met behoud van parser-, dedupe-, ranking-, provenance- en scorehistoriekcontracten. Alleen optionele externe identity- en mailboxcredentials staan nog in [USER_INPUT_REQUIRED.md](USER_INPUT_REQUIRED.md). diff --git a/DEPLOYMENT.md b/DEPLOYMENT.md index a6d9d7b..3386ceb 100644 --- a/DEPLOYMENT.md +++ b/DEPLOYMENT.md @@ -9,6 +9,13 @@ De standaard productieopstelling gebruikt afzonderlijke web-, worker-, scheduler Gebruik nooit wildcardhosts of secrets uit voorbeeldbestanden. `PUBLIC_BASE_URL` is de publieke bron van waarheid voor host-, origin-, HTTPS- en cookieconfiguratie. +## Productiebewijs 0.3.14 + +- Actieve image: `sha256:1ee84241c2f4ecef751f45df760054309843e1e98192035bc27476ae5a9477df`; container healthy, nul restarts en publieke readiness HTTP 200. +- De versievariabele is 0.3.14, alle migrations zijn toegepast en de gastkernroutes leveren HTTP 200. +- Back-up: `backups/release-0.3.14-20260729T164500Z`; rollback: tag `vacatureradar:rollback-0.3.13`, image `sha256:34aef8853f77a3f311b119bd67d9f1160a97fd4a21e62c9776222be289bf3b88`. +- Rollback vereist geen datamigratie: retag de rollbackimage naar `vacatureradar:unraid` en recreate alleen service `app` met `--no-build`. + ## Productiebewijs 0.3.13 - Doel: `/mnt/user/appdata/VacatureRadar`, composeproject `vacatureradar`, hostpoort 1226 naar containerpoort 8080. diff --git a/OPERATIONS.md b/OPERATIONS.md index c4e611a..91a14cd 100644 --- a/OPERATIONS.md +++ b/OPERATIONS.md @@ -9,4 +9,6 @@ Dagelijks beheer omvat readiness, worker/beat-heartbeat, bronruns, notificatie-o ## Live observability 2026-07-29 +Release 0.3.14 draait healthy op image `sha256:1ee84241c2f4ecef751f45df760054309843e1e98192035bc27476ae5a9477df`, zonder containerrestarts. Publieke readiness en zeven gastkernroutes antwoorden 200. De begrensde productie-importsmoke is volledig teruggerold. Performancebewaking kan worden herhaald met `scripts/run_import_benchmark.sh`; de runner weigert productiedatabases en externe hosts. + Na build, deploy en een afzonderlijke restart waren PostgreSQL, Redis, Gunicorn, Celery worker en Celery beat actief. `/health/ready/` rapporteerde database en cache `ok`. De automationpagina werd via het publieke domein geladen; queuediepte blijft bewust onbekend wanneer de cachebackend die niet betrouwbaar kan meten. De gecombineerde runtimeheartbeat bewijst beat-dispatch en workeruitvoering. diff --git a/docs/ai/BACKLOG.yaml b/docs/ai/BACKLOG.yaml index 6d84b8b..086d9d9 100644 --- a/docs/ai/BACKLOG.yaml +++ b/docs/ai/BACKLOG.yaml @@ -2331,7 +2331,7 @@ tasks: documentatie; volledige gate 312 tests groen, 84,16% dekking. - id: VR-228 title: Optimaliseer de importpipeline voor release 0.3.14 - status: ready + status: done priority: P0 requirement_ids: - NFR-007 @@ -2345,8 +2345,8 @@ tasks: - Een fail-closed runner meet een disposable PostgreSQL-database met vaste fixture, warm-up en drie herhalingen. - De geoptimaliseerde import reduceert queryvolume en doorlooptijd aantoonbaar tegenover 0.3.13 en rapporteert p50, p95, throughput, geheugen en queryfamilies. - - Parserdekking blijft 12/12, dedupeprecision en -recall blijven 1,0, rankingchurn blijft nul en historische - ScoreRuns plus veldprovenance blijven intact. + - Parserdekking blijft 12/12, dedupeprecision en -recall blijven 1,0, rankingchurn blijft nul en historische ScoreRuns + plus veldprovenance blijven intact. - Regressietests begrenzen het queryvolume; de volledige kwaliteitsgate slaagt tweemaal en productieacceptatie bewijst health, beperkte importsmoke, publieke kernflows en rollbackgereedheid. verification: @@ -2359,3 +2359,8 @@ tasks: - scripts/benchmark_import.py - tests/integration/test_pipeline.py - docs/audit/IMPORT_PERFORMANCE_FINAL.md + result: + completed_at: '2026-07-29' + note: 'Release 0.3.14: geïsoleerde PostgreSQL-benchmark reduceert importduur 44,74% en queries minstens 63,73%; + twee volledige gates met 318 tests groen; productie healthy op image sha256:1ee84241, transactionele importsmoke + teruggerold en rollbackimage 0.3.13 beschikbaar.' diff --git a/docs/ai/PROJECT_STATE.md b/docs/ai/PROJECT_STATE.md index e6b3a69..b830acc 100644 --- a/docs/ai/PROJECT_STATE.md +++ b/docs/ai/PROJECT_STATE.md @@ -1,7 +1,7 @@ # Projectstatus - Laatst bijgewerkt: 2026-07-29 -- Repositoryversie: 0.3.13 integrale professionalisering +- Repositoryversie: 0.3.14 importperformance - Uitvoeringsmodus: autonome backlog - Eerste uitvoerbare taak: controleer met `python scripts/backlog.py next` @@ -21,6 +21,17 @@ De repository bevat een uitvoerbare Django-MVP met: ## 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. + +Volgende uitvoerbare taak: geen na afronding van VR-228. Alleen de bestaande optionele externe identity- en mailboxacties blijven open. + 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`; diff --git a/docs/audit/FINAL_ACCEPTANCE.md b/docs/audit/FINAL_ACCEPTANCE.md index d177593..c8e60f6 100644 --- a/docs/audit/FINAL_ACCEPTANCE.md +++ b/docs/audit/FINAL_ACCEPTANCE.md @@ -1,18 +1,20 @@ -# Finale acceptance 0.3.13 +# Finale acceptance 0.3.14 Status: productie geaccepteerd op 2026-07-29. ## Bewijs -- `./scripts/codex_verify.sh`: 312 geslaagd, 0 mislukt, 0 overgeslagen, 84,16% branch-aware dekking. +- `./scripts/codex_verify.sh` is tweemaal uitgevoerd: telkens 318 geslaagd, 0 mislukt, 0 overgeslagen en 84,20% branch-aware dekking. +- Geïsoleerde importbenchmark: één warm-up plus drie PostgreSQL-runs; gemiddeld 3.264 queries, 9.040,123 ms, p50 32,900 ms, p95 52,296 ms, 28,031 documenten/s en 18,799 MB piekgeheugen. - Benchmarkkwaliteit: 12/12 parservelden, dedupeprecision 1,0, recall 1,0 en rankingchurn 0,0. -- Unraid Docker 27.5.1 en Compose 2.40.3 bouwden image `sha256:34aef8853f77a3f311b119bd67d9f1160a97fd4a21e62c9776222be289bf3b88`; migrations, 148 static files, manifestgeneratie, healthcheck en restart slaagden. +- Unraid bouwde image `sha256:1ee84241c2f4ecef751f45df760054309843e1e98192035bc27476ae5a9477df`; migrations, 148 static files, healthcheck en zero-restartstart slaagden. - HTTP redirect naar HTTPS, OpenResty/TLS, HSTS/securityheaders, `DEBUG=False`, secure session-/CSRF-cookies en geen `DisallowedHost` zijn publiek bewezen. -- Login en gastknop, alleen-lezen gasttoegang, dashboard, zoek/filterlijst, detail, pipeline, bronnen en automatisering werkten live. +- De live loginpagina is visueel en semantisch in Chrome gecontroleerd. De CSRF-beveiligde gastlogin en dashboard, vacaturelijst, skills, sollicitaties, profielen, bronnen en systeemstatus antwoordden daarna allemaal 200. - Dark/light en 390/1280/3440 px hadden nul horizontale overflow en nul browserconsole-errors; de mobiele gastbanner bleef in de flow. - PostgreSQL custom dump plus media/configbewijs is naar een geïsoleerde database hersteld; migrations, exacte recordtellingen en een aparte applicatiestart slaagden. -- Vorige image `sha256:1851863be947b1e8b504e61e73b89d09c1dff704257b48856c775bb55f741459` is live healthy gestart en daarna opnieuw vervangen door 0.3.13, eveneens healthy. +- Een productie-importsmoke extraheerde en creëerde één geldige job in een expliciete transactie; rollback werd bevestigd en liet geen smokedata achter. +- De checksum-geldige pre-releaseback-up staat onder `backups/release-0.3.14-20260729T164500Z`; rollbacktag `vacatureradar:rollback-0.3.13` bewaart image `sha256:34aef8853f77a3f311b119bd67d9f1160a97fd4a21e62c9776222be289bf3b88`. ## Uitkomst -Er bestaan geen bekende P0- of P1-releaseblokkers. Alleen optionele Entra- en mailboxcredentials blijven extern. De importqueryoptimalisatie blijft een meetbaar performancevervolg en geen correctness- of releaseblokker. +Er bestaan geen bekende P0- of P1-releaseblokkers. Alleen optionele Entra- en mailboxcredentials blijven extern; zij raken de kernrelease niet.