Record verified 0.3.17 production release
deploy / deploy (push) Waiting to run

This commit is contained in:
Jens
2026-08-12 13:50:01 +02:00
parent 3cfb2260cc
commit 4822ee6880
5 changed files with 38 additions and 10 deletions
+1 -1
View File
@@ -9,7 +9,7 @@
VacatureRadar is een persoonlijke vacature-assistent voor België. De applicatie volgt toegestane werkgeversbronnen, ATS-paginas, 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. VacatureRadar is een persoonlijke vacature-assistent voor België. De applicatie volgt toegestane werkgeversbronnen, ATS-paginas, 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 **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 app-only OAuth/XOAUTH2. Release 0.3.17 herstelt bovendien de reproduceerbare
private-registrypublicatie zonder afhankelijkheid van de GitHub Releases-API. private-registrypublicatie zonder afhankelijkheid van de GitHub Releases-API.
Het controleerbare acceptatiebewijs staat in Het controleerbare acceptatiebewijs staat in
+6 -1
View File
@@ -2419,7 +2419,7 @@ tasks:
gate met 327 tests groen, 84,04% dekking. gate met 327 tests groen, 84,04% dekking.
- id: VR-230 - id: VR-230
title: Herstel de immutable Gitea-releasepublicatie title: Herstel de immutable Gitea-releasepublicatie
status: ready status: done
priority: P0 priority: P0
requirement_ids: requirement_ids:
- NFR-009 - NFR-009
@@ -2440,3 +2440,8 @@ tasks:
- .gitea/workflows/release.yml - .gitea/workflows/release.yml
- tests/unit/test_deployment_configuration.py - tests/unit/test_deployment_configuration.py
- docs/audit/FINAL_ACCEPTANCE.md - 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.
+16 -5
View File
@@ -1,7 +1,7 @@
# Projectstatus # Projectstatus
- Laatst bijgewerkt: 2026-08-12 - Laatst bijgewerkt: 2026-08-12
- Repositoryversie: 0.3.16 publieke demo-hardening - Repositoryversie: 0.3.17 immutable releaseherstel
- Uitvoeringsmodus: autonome backlog - Uitvoeringsmodus: autonome backlog
- Eerste uitvoerbare taak: controleer met `python scripts/backlog.py next` - 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 een live sessiesmoke bevestigde dashboard 200, zes demomatches, negen
platformmailboxen, actieve ingress, nul oude policyfouten en geen platformmailboxen, actieve ingress, nul oude policyfouten en geen
wachtwoord-maskplaceholder; wachtwoord-maskplaceholder;
- de Gitea-releaseworkflow faalde tweemaal in stap `astral-sh/setup-uv@v6` en - `VR-230` herstelde de Gitea-releaseworkflow door `setup-uv` op immutable commit
publiceerde daarom nog geen 0.3.16-registrymanifest. De bewezen immutable `0880764` en uv op 0.11.12 te pinnen; de Astral-mirror verwijdert de eerdere
registryrelease blijft 0.3.15; runnerdiagnose en herpublicatie vereisen opnieuw GitHub Releases-API-rate-limit;
bereikbare Unraid-beheertoegang. Volgende uitvoerbare backlogtaak: geen. - 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: README-update op 2026-07-30:
+13 -2
View File
@@ -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 ## Bewijs
@@ -22,6 +22,17 @@ Status: productie geaccepteerd op 2026-07-30.
Het artifact bevat een geverifieerde SPDX-SBOM, checksums en release notes. 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` - Unraid is op die digest gepind; pull, health/readiness, rollback naar `0.3.14`
en herstel naar `0.3.15` zijn live geslaagd. 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 ## Uitkomst
+2 -1
View File
@@ -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-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-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-209224/226 | | 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-209224/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 | | 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 ## Systeemacceptatie
@@ -86,6 +86,7 @@ Iedere backlogtaak die een requirement wijzigt, werkt in dezelfde commit deze ma
## Aanvullende traceability-opmerking ## 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-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-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-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-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. - 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.