[ADD] storage: event store — list, create, open, save, recover
An event is a state file and a journal paired by its internal identifier, never by name (§ 8.6): a hand copy of a state does not take the original's journal, and a renamed journal stays paired. Each gesture writes its journal line first, then the .precedent and the state (§ 8.2); recovery compares revisions, never file dates, so a cut leaves the journal one entry ahead at most. Opening never writes (§ 8.4); an unreadable state names its readable secours instead of opening an empty event, and a newer format stays read-only. Writing elsewhere after a removed medium aligns the pair first. Checked: 60 tests, 100 % branches of depot.js, 1257 node tests on HEAD. --- FR --- [ADD] stockage : dépôt d'événements — lister, créer, ouvrir, reprendre Un événement est un fichier d'état et un journal appariés par l'identifiant interne, jamais par le nom (§ 8.6) : un état copié à la main ne prend pas le journal de l'original, et un journal renommé reste apparié. Chaque geste écrit sa ligne de journal d'abord, puis le .precedent et l'état (§ 8.2) ; la reprise compare les révisions, jamais la date des fichiers : une coupure laisse le journal en avance d'une entrée au plus. Ouvrir n'écrit jamais (§ 8.4) ; un état illisible nomme ses secours lisibles au lieu d'ouvrir un événement vide, et un format plus récent reste en lecture seule. Écrire ailleurs après un support retiré aligne d'abord la paire. Vérifié : 60 épreuves, 100 % des branches de depot.js, 1257 épreuves node. Assisted-by: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01EUXSGcwCLSC69FWEdCtWSb
This commit is contained in:
parent
15148e3a26
commit
fa32ad9fae
2 changed files with 3451 additions and 0 deletions
1140
src/stockage/depot.js
Normal file
1140
src/stockage/depot.js
Normal file
File diff suppressed because it is too large
Load diff
2311
src/stockage/depot.test.js
Normal file
2311
src/stockage/depot.test.js
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue