From 4822ee688070351b5339a67de9a4747726e153cd Mon Sep 17 00:00:00 2001 From: Jens Date: Wed, 12 Aug 2026 13:50:01 +0200 Subject: [PATCH] Record verified 0.3.17 production release --- README.md | 2 +- docs/ai/BACKLOG.yaml | 7 ++++++- docs/ai/PROJECT_STATE.md | 21 ++++++++++++++++----- docs/audit/FINAL_ACCEPTANCE.md | 15 +++++++++++++-- docs/quality/TRACEABILITY_MATRIX.md | 3 ++- 5 files changed, 38 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index b77cd54..a40b5b9 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ VacatureRadar is een persoonlijke vacature-assistent voor België. De applicatie volgt toegestane werkgeversbronnen, ATS-pagina’s, feeds en vacaturemails, verwijdert dubbels en irrelevante resultaten en rangschikt de overblijvende kansen tegen jouw zoekprofiel. Jij behoudt altijd de controle: VacatureRadar helpt zoeken en opvolgen, maar solliciteert nooit automatisch. **Actuele release: 0.3.17.** De volledige P0/P1-releasebasis en de publieke -demo-hardening zijn afgerond: 327 tests zijn groen, Microsoft 365 verwerkt platformmails via +demo-hardening zijn afgerond: 328 tests zijn groen, Microsoft 365 verwerkt platformmails via app-only OAuth/XOAUTH2. Release 0.3.17 herstelt bovendien de reproduceerbare private-registrypublicatie zonder afhankelijkheid van de GitHub Releases-API. Het controleerbare acceptatiebewijs staat in diff --git a/docs/ai/BACKLOG.yaml b/docs/ai/BACKLOG.yaml index 6e1546b..d9beea2 100644 --- a/docs/ai/BACKLOG.yaml +++ b/docs/ai/BACKLOG.yaml @@ -2419,7 +2419,7 @@ tasks: gate met 327 tests groen, 84,04% dekking. - id: VR-230 title: Herstel de immutable Gitea-releasepublicatie - status: ready + status: done priority: P0 requirement_ids: - NFR-009 @@ -2440,3 +2440,8 @@ tasks: - .gitea/workflows/release.yml - tests/unit/test_deployment_configuration.py - docs/audit/FINAL_ACCEPTANCE.md + result: + completed_at: '2026-08-12' + note: Releasebootstrap gepind op immutable setup-uv v8.1.0-commit en uv 0.11.12 via Astral-mirror; Gitea Actions-run + 3062 publiceerde digest sha256:98f4b33d met checksum-geldige SBOM/release-evidence; Unraid gepind op volledige + digest en live health/readiness groen. diff --git a/docs/ai/PROJECT_STATE.md b/docs/ai/PROJECT_STATE.md index 5c66e7f..3b2d2aa 100644 --- a/docs/ai/PROJECT_STATE.md +++ b/docs/ai/PROJECT_STATE.md @@ -1,7 +1,7 @@ # Projectstatus - Laatst bijgewerkt: 2026-08-12 -- Repositoryversie: 0.3.16 publieke demo-hardening +- Repositoryversie: 0.3.17 immutable releaseherstel - Uitvoeringsmodus: autonome backlog - Eerste uitvoerbare taak: controleer met `python scripts/backlog.py next` @@ -44,10 +44,21 @@ Visuele demo-hardening `VR-229` op 2026-08-12: een live sessiesmoke bevestigde dashboard 200, zes demomatches, negen platformmailboxen, actieve ingress, nul oude policyfouten en geen wachtwoord-maskplaceholder; -- de Gitea-releaseworkflow faalde tweemaal in stap `astral-sh/setup-uv@v6` en - publiceerde daarom nog geen 0.3.16-registrymanifest. De bewezen immutable - registryrelease blijft 0.3.15; runnerdiagnose en herpublicatie vereisen opnieuw - bereikbare Unraid-beheertoegang. Volgende uitvoerbare backlogtaak: geen. +- `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. + Volgende uitvoerbare backlogtaak: geen. README-update op 2026-07-30: diff --git a/docs/audit/FINAL_ACCEPTANCE.md b/docs/audit/FINAL_ACCEPTANCE.md index af950e2..e075fbe 100644 --- a/docs/audit/FINAL_ACCEPTANCE.md +++ b/docs/audit/FINAL_ACCEPTANCE.md @@ -1,6 +1,6 @@ -# Finale acceptance 0.3.15 +# Finale acceptance 0.3.17 -Status: productie geaccepteerd op 2026-07-30. +Status: productie geaccepteerd op 2026-08-12. ## Bewijs @@ -22,6 +22,17 @@ Status: productie geaccepteerd op 2026-07-30. Het artifact bevat een geverifieerde SPDX-SBOM, checksums en release notes. - Unraid is op die digest gepind; pull, health/readiness, rollback naar `0.3.14` en herstel naar `0.3.15` zijn live geslaagd. +- Gitea Actions-run 3062 publiceerde `v0.3.17` nadat de releasebootstrap op een + immutable `setup-uv`-commit en uv 0.11.12 werd gepind. De uv-download gebruikt + de Astral-mirror en vereist geen GitHub Releases-API. +- Het checksum-geldige artifact `release-evidence-v0.3.17` bevat image-digest, + SPDX-SBOM, checksums en release notes. De gepubliceerde digest is + `sha256:98f4b33db353c192967013818f7c82c4f171921f3d300645908d52680fde209f`. +- De checksum-geldige pre-deployback-up staat onder + `local/backups/release-0.3.17-20260812T114510Z`. Unraid gebruikt een beperkt + `read:package`-token en is op de volledige registrydigest gepind. +- De 0.3.17-container is healthy met nul restarts; interne liveness en readiness, + database, cache en publieke readiness zijn groen en de runtime meldt 0.3.17. ## Uitkomst diff --git a/docs/quality/TRACEABILITY_MATRIX.md b/docs/quality/TRACEABILITY_MATRIX.md index e381343..ccca412 100644 --- a/docs/quality/TRACEABILITY_MATRIX.md +++ b/docs/quality/TRACEABILITY_MATRIX.md @@ -64,7 +64,7 @@ Legenda: **I** = geïmplementeerd en getest in de huidige MVP; **P** = gedeeltel | NFR-006 | I | offline pytest + coveragegate, inclusief platformbewuste productieconfiguratietests | VR-114 e2e; `tests/unit/test_public_configuration.py`; VR-225/226 | | NFR-007 | P | `scripts/benchmark.py`, `tests/benchmark/test_benchmark.py` | VR-116 | | NFR-008 | I | volledige negen-schermen-Stitch-cockpit, acht viewports, dark/light, toetsenborddrawer, premium visuele hiërarchie, zelfstandig VacatureRadar-productmerk, lokale ITWorx-ontwikkelaarscredit, toegankelijke interactieve radarillustratie en actuele user-first productdocumentatie | `tests/e2e/test_vr114_browser_and_accessibility.py`, `tests/integration/test_intelligence_views.py`, `tests/integration/test_views.py`, `artifacts/visual-validation/`, negen beelden in `docs/screenshots/readme/`, VR-209–224/226 | -| NFR-009 | I | lokale SQLite, configureerbare eigenaarbranding, Docker/Unraidconfig, publieke URL-helper, Nginx Proxy Manager-runbook, gevalideerde SSH-deployalias, release-smoke en restore | `tests/unit/test_deployment_configuration.py`, `tests/unit/test_public_configuration.py`, VR-117, VR-217/218/225 afgerond | +| NFR-009 | I | lokale SQLite, configureerbare eigenaarbranding, Docker/Unraidconfig, publieke URL-helper, Nginx Proxy Manager-runbook, gevalideerde SSH-deployalias, API-onafhankelijke immutable releasebootstrap, release-smoke en restore | `tests/unit/test_deployment_configuration.py`, `tests/unit/test_public_configuration.py`, VR-117, VR-217/218/225/230 afgerond | | NFR-010 | I | `apps/sources/services/health.py`, `apps/sources/tasks.py`, `apps/core/views.py`, `config/settings.py` | `tests/integration/test_source_health.py` | VR-112 observability | ## Systeemacceptatie @@ -86,6 +86,7 @@ Iedere backlogtaak die een requirement wijzigt, werkt in dezelfde commit deze ma ## Aanvullende traceability-opmerking - VR-228 levert release 0.3.14 met een fail-closed disposable PostgreSQL-benchmark, run-lokale importcaches, gebundelde veldprovenance en ongewijzigde score-snapshotcopy. De officiële drie iteraties bewijzen 3.264 queries per 250 items, parser 12/12, dedupeprecision/recall 1,0 en nul rankingchurn; bewijs staat in `docs/audit/IMPORT_PERFORMANCE_*.md` en het machineleesbare artifact. - VR-229 houdt de publieke demo representatief door fictieve vacatures, scores, mailboxkoppelingen en opvolgdatums bij iedere demosessie idempotent te herstellen. Mailboxingress is uitgesloten van URL-fetchplanning en operationele UI-copy onderscheidt een actief profiel van bron- en systeemgezondheid. +- VR-230 pint `setup-uv` en uv exact, vermijdt de gelimiteerde GitHub Releases-API via de Astral-mirror en bewijst publicatie plus live pinning van de immutable 0.3.17-registrydigest. - VR-227 professionaliseert release 0.3.13 integraal: gecentreerd ultrawideframe, mobiele gastbanner en verticale pipeline, begrensde vacaturepaginering, verplichte zes-viewport-Playwrightgate zonder skips, echte runtimeheartbeat, volledige generieke parserbenchmark en SBOM-generatie. Bewijs staat in `docs/audit/`, de E2E-/auth-/runtime-/adaptertests en `USER_INPUT_REQUIRED.md`. - VR-102 is gerealiseerd met auditbare policyreviews (`SourcePolicyReview`), robotscache met TTL/size/SSRF-controles en fail-closed policy-gating op verlopen of conflicterende reviews. - VR-107 is gerealiseerd met `apps/sources/views.py`, `apps/sources/services/manual_import.py`, `templates/sources/list.html`, `static/js/manual_import.js` en bijhorende unit/integration-tests.