feat(git): een verzegeld deck wordt geweigerd, niet stil uitgekleed (#541) #733

Merged
brenno merged 2 commits from feat/zegel-naar-git-541 into main 2026-07-23 11:53:28 +00:00
Owner

Deel 3 van #541, volgens ontwerpbesluit D13. Ink blijft liggen — dat begint bij een formaatwijziging met versieverhoging en hoort een eigen ronde te krijgen.

Wat er misging. Een verzegeld deck ging gewoon naar een werkbranch en alleen het zegel viel weg, met een waarschuwing achteraf. Een verzegeld rapport dat via git terugkomt zónder zegel leest als een rapport dat nooit verzegeld is.

Een zegel is een uitspraak over precies díé bytes, en een tak biedt dat niet: die kan herschreven, gecherrypickt en geforceerd geduwd worden. Dus weigeren op het moment dat de keuze er nog is.

De weigering staat in het opslagpad, niet alleen in een dialoog. Dat is de enige plek waar élke aanroeper langskomt; een poort die je omzeilt door een andere knop te gebruiken is geen poort. De interface legt hem uit, met één knop en zonder "toch opslaan".

De waarschuwing krimpt mee, precies zoals het issue vroeg: hij verliest de zegelregel en houdt de tekeningen.

Wat dit níét oplost, en dat staat nu in het ontwerp. D13 noemt twee gevolgen. De weigering is af; de andere helft — "het zegel reist mee in de commitset van een versie-uitgifte" — is niet te bouwen zoals het er staat. tagRelease tagt de kop van de standaardbranch en commit niets, dus er ís op dat moment geen commitset. De enige weg naar de standaardbranch is een gemergede PR vanaf een werkbranch, en díé weigert dit besluit nu juist.

Gevolg: een verzegeld deck kan op dit moment helemaal niet naar de repo. Dat is eerlijker dan het zegel stil laten vallen, maar het is een doodlopende weg. Welke kant open moet is een besluit en geen detail; de drie opties staan uitgeschreven bij D13 in GIT_STORAGE.md. Tot dan wijst de weigering naar een bestand of een .ocideck-pakket en zegt er met zoveel woorden bij dat de tag-route er nog niet is, in plaats van een weg te beloven die niet bestaat.

Bijvangst: twee besluiten deelden het nummer D12 — "How media comes back" en "A seal belongs on a tag". Allebei worden ze elders in het document én vanuit de code aangehaald, dus was onduidelijk welke bedoeld werd. Het jongste is D13 geworden.

Twee ratchets wezen onderweg de weg, en in tegengestelde richting: de methodelengte wilde _saveToGit gesplitst (het melden van de uitkomst is een ander onderwerp dan het opbouwen van de opslag), het klasseplafond liet zien dat een helper op dezélfde klasse de méthode korter maakt maar de klasse groter. Vandaar dat de weigering een top-level functie in het part-bestand is, net als _reportMissingChartData. TabsNotifier komt uit op 2211 — nog onder de 2251 van vanochtend.

Poort: make check groen, gedraaid ná de rebase op main met #730 erin.

Refs #541

Deel 3 van #541, volgens ontwerpbesluit D13. **Ink blijft liggen** — dat begint bij een formaatwijziging met versieverhoging en hoort een eigen ronde te krijgen. **Wat er misging.** Een verzegeld deck ging gewoon naar een werkbranch en alleen het zegel viel weg, met een waarschuwing achteraf. Een verzegeld rapport dat via git terugkomt zónder zegel leest als een rapport dat nooit verzegeld is. Een zegel is een uitspraak over precies díé bytes, en een tak biedt dat niet: die kan herschreven, gecherrypickt en geforceerd geduwd worden. Dus weigeren op het moment dat de keuze er nog is. **De weigering staat in het opslagpad**, niet alleen in een dialoog. Dat is de enige plek waar élke aanroeper langskomt; een poort die je omzeilt door een andere knop te gebruiken is geen poort. De interface legt hem uit, met één knop en zonder "toch opslaan". **De waarschuwing krimpt mee**, precies zoals het issue vroeg: hij verliest de zegelregel en houdt de tekeningen. **Wat dit níét oplost, en dat staat nu in het ontwerp.** D13 noemt twee gevolgen. De weigering is af; de andere helft — "het zegel reist mee in de commitset van een versie-uitgifte" — is niet te bouwen zoals het er staat. `tagRelease` tagt de kop van de standaardbranch en commit niets, dus er ís op dat moment geen commitset. De enige weg naar de standaardbranch is een gemergede PR vanaf een werkbranch, en díé weigert dit besluit nu juist. Gevolg: een verzegeld deck kan op dit moment helemaal niet naar de repo. Dat is eerlijker dan het zegel stil laten vallen, maar het is een doodlopende weg. Welke kant open moet is een besluit en geen detail; **de drie opties staan uitgeschreven bij D13** in `GIT_STORAGE.md`. Tot dan wijst de weigering naar een bestand of een `.ocideck`-pakket en zegt er met zoveel woorden bij dat de tag-route er nog niet is, in plaats van een weg te beloven die niet bestaat. **Bijvangst: twee besluiten deelden het nummer D12** — "How media comes back" en "A seal belongs on a tag". Allebei worden ze elders in het document én vanuit de code aangehaald, dus was onduidelijk welke bedoeld werd. Het jongste is D13 geworden. Twee ratchets wezen onderweg de weg, en in tegengestelde richting: de methodelengte wilde `_saveToGit` gesplitst (het melden van de uitkomst is een ander onderwerp dan het opbouwen van de opslag), het klasseplafond liet zien dat een helper op dezélfde klasse de méthode korter maakt maar de klasse groter. Vandaar dat de weigering een top-level functie in het part-bestand is, net als `_reportMissingChartData`. `TabsNotifier` komt uit op 2211 — nog onder de 2251 van vanochtend. Poort: `make check` groen, gedraaid ná de rebase op main met #730 erin. Refs #541
Deel 3 van #541, volgens ontwerpbesluit D13. Tot nu toe ging een verzegeld deck
gewoon naar een werkbranch en viel alleen het zegel weg, met een waarschuwing
achteraf. Een verzegeld rapport dat via git terugkomt zónder zegel leest als
een rapport dat nooit verzegeld is.

Een zegel is een uitspraak over precies díé bytes, en een tak biedt dat niet:
die kan herschreven, gecherrypickt en geforceerd geduwd worden. Dus weigeren op
het moment dat de keuze er nog is.

**De weigering staat in het opslagpad, niet alleen in een dialoog.** Dat is de
enige plek waar élke aanroeper langskomt; een poort die je omzeilt door een
andere knop te gebruiken is geen poort. De interface legt hem uit, met één knop
en zonder "toch opslaan" — een weigering die je kunt wegklikken is er geen.

**De waarschuwing krimpt mee**, precies zoals #541 het vroeg: hij verliest de
zegelregel en houdt de tekeningen. Een waarschuwing die meer opsomt dan er
werkelijk misgaat, leert de lezer hem in zijn geheel weg te klikken.

`gitRefusesSealedDeck` is één definitie voor twee lagen. Twee kopieën van die
regel zouden uiteenlopen, en dan weigert de ene wat de andere aankondigt.

Onderweg wees de methodelengteratchet terecht op `_saveToGit` in de shell: het
melden van de uitkomst is een ander onderwerp dan het opbouwen van de opslag en
staat nu apart. Het klasseplafond wees even terecht op de andere kant van die
munt — een helper op dezelfde klasse maakt de méthode korter maar de klasse
groter; vandaar dat de weigering een top-level functie in het part-bestand is,
net als `_reportMissingChartData`. TabsNotifier komt uit op 2211, nog onder de
2251 van vanochtend.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
**Twee besluiten deelden het nummer D12**: "How media comes back" en "A seal
belongs on a tag". Allebei worden ze elders in het document én vanuit de code
aangehaald, dus was onduidelijk welke bedoeld werd. Het jongste — het zegel —
wordt D13; het oudste blijft, want D5 verwijst ernaar.

**En het gat staat er nu bij.** D13 noemt twee gevolgen voor de bouw. De
weigering is af. De andere helft — "het zegel reist mee in de commitset van een
versie-uitgifte" — is niet te bouwen zoals het er staat: `tagRelease` tagt de
kop van de standaardbranch en commit niets, dus er ís op dat moment geen
commitset. De enige weg naar de standaardbranch is een gemergede PR vanaf een
werkbranch, en díé weigert dit besluit nu juist voor een verzegeld deck.

Gevolg: een verzegeld deck kan op dit moment helemaal niet meer naar de repo.
Dat is eerlijker dan het zegel stil laten vallen, maar het is een doodlopende
weg, en welke kant open moet is een besluit en geen detail. De drie opties
staan uitgeschreven bij D13.

Tot dan wijst de weigering naar een bestand of een `.ocideck`-pakket, en zegt er
met zoveel woorden bij dat de tag-route er nog niet is — in plaats van een weg
te beloven die niet bestaat.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
brenno merged commit 0949cc2cab into main 2026-07-23 11:53:28 +00:00
Sign in to join this conversation.
No description provided.