feat(versiebeheer): standalone version-pin op hervatten (P0 #2)#416
Draft
robbertbos wants to merge 1 commit into
Draft
Conversation
…en (P0 #2) De standalone slaat de modelversie al op in metadata.urn, maar negeerde die bij het hervatten — een offline-formulier ingevuld in een oudere single-file werd stil tegen de nieuwste gebundelde definitie toegepast en herstempeld. Nu leest App.vue de opgeslagen versie (LocalPersistence. savedVersion) en roept schemaStore.activatePin() aan vóór het openen van het formulier, zodat formulier, autosave en export op de gepinde versie blijven. Zit die versie niet in de bundel, dan blijft de latest geladen en toont de app een niet-blokkerende waarschuwing — nooit stil herstempelen. Hergebruikt activatePin uit Fase 2c (de online editor doet hetzelfde). Met één gebundelde versie is dit een no-op (correct-by-construction); de fallback vuurt pas wanneer een nieuwere single-file een oudere localStorage-sessie opent.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Wat
De standalone-tegenhanger van resolve-by-pin (#415): de offline single-file respecteert nu bij het hervatten de modelversie waarop een assessment is ingevuld, in plaats van die stil tegen de gebundelde latest toe te passen.
Waarom (P0 #2)
saveAppStatestempelt de versie al inmetadata.urn(bv.urn:nl:dpia:3.0), maarloadAppStatenegeerde die. Scenario: je vult offline een DPIA in met single-file vX (DPIA 3.0), download later single-file vY (DPIA 3.1), en opent je oude localStorage-sessie → die werd stil tegen 3.1 toegepast én bij de eerstvolgende autosave op 3.1 herstempeld. Voor een juridisch artefact een correctheidsprobleem.Hoe
LocalPersistence.savedVersion(namespace)— leest de opgeslagenmetadata.urnen geeft viaparseUrnde versie terug (nullals er geen state is of de urn onparseerbaar is).App.vueresume-handlers roepen vóór navigatieresolvePin(ns)aan:savedVersion→schemaStore.activatePin(ns, version).rvo-alert--warning. Nooit stil herstempelen.Hergebruikt
activatePinuit #415 — online editor en standalone delen exact dezelfde resolutie-logica.Aandachtspunten voor review
Form(:validData="schemaStore.getSchema(ns)"), enFormbouwt de taakstructuur al op stap 3 — vóórapplyAppState. Daarom moet de pin op App.vue-niveau vóór navigatie resolven (niet inapplyAppState, dat is te laat). De online editor kon het in zijn eigen load-volgorde doen.savedVersion== bundel-versie →activatePinno-op → geen waarschuwing. De fallback-tak is unit-getest met een geïnjecteerde mismatch en vuurt in productie pas bij een cross-single-file-download.Stack
Bovenop #415 (resolve-by-pin /
activatePin) → #410 → #409 → #408 → fundament.Tests
LocalPersistence.cov.test.ts: 5 nieuwe tests voorsavedVersion(coarse versie, concept-versie, geen-state, onparseerbare urn, kapotte JSON). 100% opLocalPersistence.ts.App.cov.test.ts: 3 nieuwe tests (activatePin-aanroep op resume, fellBack-waarschuwing, waarschuwing gewist bij terug naar landing). 100% opApp.vue.vue-tsc --build) groen.