halkyon/apps/todo/halkyon_todo_server/migrations/migration_registry.txt
Tizian 「ティツィアーン」 7f1f07883a
feat(base,app,learn): a shared space's key rolls once a member goes
What is written in a shared space after a member went takes a key they
never get (Halkyon's ADR 0044, D22). The instance marks the space as one
of its members goes, removed, leaving or deleted (`keyRollDue` on
`shared_space`, set in `removeMember`, through which each of them
passes); an invitation taken back never had a key and marks nothing, nor
does a new role. The Owner's or an Editor's device that next keeps its
keys up after a sync is told so (`sharedSpaceKeys.rollDue`, never true
for a Viewer, who seals no key) and makes a new key, sealed to those who
stay (D33). The first seal bringing a key ID the space never had clears
the mark in the same transaction (D34); members the rolling device
missed get it later as newcomers do. Earlier rows keep the key they had,
which whoever went had read already.

The migration, the same in the module and in each server including it
(Learn, Meditate, Todo, Train):

  ALTER TABLE "shared_space"
    ADD COLUMN "keyRollDue" boolean NOT NULL DEFAULT false;

It adds the column with false for every space there is, so no space is
due a roll from it; PostgreSQL adds a column with a constant default
without rewriting the table. The server before the switch reads and
writes the table naming its own columns, so it keeps working.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-11-11 16:57:49 +01:00

33 lines
1.1 KiB
Text

### AUTOMATICALLY GENERATED DO NOT MODIFY
###
### This file is generated by Serverpod when creating a migration, do not modify it
### manually. If a collision is detected in this file when doing a code merge, resolve
### the conflict by removing and recreating the conflicting migration.
20261019193547604
20261019201213254-profiles
20261019204122341-deletion-notices
20261020111950710-passwords
20261020125124942-sessions-ended
20261020185752014-recovery-proof-key
20261020194229631-second-factor-waits
20261020204619863-session-code-tries
20261020211225101-email-code-purpose
20261021100422779-session-ended-warning
20261021110200318-second-factor-paths
20261021134804476-reset-hold-outs
20261023181810436-oidc-module
20261023192913500-simplelogin-keys
20261025135744931-waiting-accounts
20261025165103193-assistants
20261026140330157-assistant-budgets
20261101000019144-projects
20261101000604776-tasks
20261101180755366-settings
20261106183802735-filters
20261106184947570-comments
20261110225635732-file-store
20261110231607673-attachments
20261111091721303-shared-spaces
20261111100125297-shared-space-keys
20261111145609997-shared-space-key-roll