amosblomqvist
eda5491010
schema stamps: lazy v1 for chats + the graph family, honest refusal
...
Chat records gain version (CURRENT_CHAT_VERSION), stamped by a single
writeChat choke point in the store; absence reads as v1 — existing files
migrate on their next write, no mass rewrite. The graph family (four JSONL
ledgers, sources.json, render-settings.json) shares one lazy sidecar,
graph/format.json; positions stays unstamped (rebuildable) and jobs stay
unstamped (transient).
Downgrade scenario ruled honest-refusal: records stamped newer than the
running build read as absent (chats, logged) or throw (graph family) — a
read-modify-write store never rewrites what it doesn't understand.
Golden fixtures stay the unstamped legacy shape on purpose (lazy v1 is
current-valid by design); the stamped write path is pinned by
tests/schema-stamps.test.ts. Reads never write — the golden byte-identical
pin holds.
2026-10-10 13:54:17 +03:00
..
2026-10-10 13:54:17 +03:00
2026-10-04 19:50:20 +03:00
2026-09-25 21:24:43 +03:00
2026-10-07 19:13:24 +03:00
2026-09-22 00:02:07 +03:00
2026-09-19 22:52:40 +03:00
2026-09-19 20:54:16 +03:00
2026-09-24 23:20:59 +03:00
2026-10-04 01:19:54 +03:00
2026-09-28 23:30:11 +03:00
2026-10-10 09:42:47 +03:00
2026-10-04 21:36:14 +03:00
2026-10-02 17:38:48 +03:00
2026-09-23 15:37:34 +03:00
2026-10-06 04:46:26 +03:00
2026-10-05 22:17:33 +03:00
2026-10-06 00:38:15 +03:00
2026-09-24 19:33:35 +03:00
2026-09-28 22:37:18 +03:00
2026-09-23 03:53:57 +03:00
2026-09-30 01:19:03 +03:00
2026-10-10 09:42:47 +03:00
2026-09-27 04:36:00 +03:00
2026-10-04 23:57:00 +03:00
2026-10-06 05:31:00 +03:00
2026-10-10 09:43:12 +03:00
2026-10-04 21:55:54 +03:00
2026-10-02 17:04:22 +03:00
2026-10-02 17:31:35 +03:00
2026-09-25 20:12:57 +03:00
2026-09-23 00:19:16 +03:00
2026-09-25 23:32:13 +03:00
2026-09-12 06:02:40 +03:00
2026-10-10 13:40:39 +03:00
2026-10-07 12:55:11 +03:00
2026-10-10 12:19:31 +03:00
2026-09-23 20:20:36 +03:00
2026-10-09 07:59:23 +03:00
2026-09-30 17:44:37 +03:00
2026-10-04 00:53:29 +03:00
2026-09-23 03:53:57 +03:00
2026-10-10 09:42:47 +03:00
2026-10-10 09:43:12 +03:00
2026-09-30 04:52:27 +03:00
2026-10-06 10:23:16 +03:00
2026-09-22 16:56:44 +03:00
2026-10-04 19:50:20 +03:00
2026-09-19 13:16:34 +03:00
2026-09-19 15:24:26 +03:00
2026-09-19 16:52:09 +03:00
2026-09-27 08:55:13 +03:00
2026-09-26 01:52:47 +03:00
2026-10-09 07:59:23 +03:00
2026-10-10 09:43:12 +03:00
2026-10-08 01:13:05 +03:00
2026-10-10 09:42:47 +03:00
2026-10-09 04:54:34 +03:00
2026-10-06 04:18:26 +03:00
2026-09-29 04:39:01 +03:00
2026-09-26 00:37:46 +03:00
2026-10-07 23:56:21 +03:00
2026-10-04 20:21:18 +03:00
2026-10-09 07:59:23 +03:00
2026-10-09 07:59:23 +03:00
2026-09-25 23:32:13 +03:00
2026-10-08 19:25:47 +03:00
2026-10-03 01:03:29 +03:00
2026-10-04 19:50:20 +03:00
2026-10-09 07:59:23 +03:00
2026-10-06 09:47:26 +03:00
2026-10-06 14:18:05 +03:00
2026-10-06 03:55:14 +03:00
2026-10-02 21:18:51 +03:00
2026-09-29 22:41:52 +03:00
2026-10-02 02:09:38 +03:00
2026-09-23 22:05:58 +03:00
2026-10-08 18:45:49 +03:00
2026-10-06 10:04:26 +03:00
2026-10-05 06:51:23 +03:00
2026-10-05 06:08:51 +03:00
2026-10-07 09:40:33 +03:00
2026-10-08 18:45:49 +03:00
2026-10-03 03:01:51 +03:00
2026-10-07 12:55:11 +03:00
2026-10-10 09:43:12 +03:00
2026-10-10 12:19:31 +03:00
2026-10-05 05:18:26 +03:00
2026-10-07 22:36:11 +03:00
2026-09-26 23:53:43 +03:00
2026-10-10 13:54:17 +03:00
2026-09-22 00:02:07 +03:00
2026-10-02 17:15:17 +03:00
2026-09-22 00:02:07 +03:00
2026-09-30 04:30:25 +03:00
2026-09-24 20:06:22 +03:00
2026-10-10 12:19:31 +03:00
2026-10-09 07:59:23 +03:00
2026-10-06 08:26:55 +03:00
2026-09-27 08:55:13 +03:00
2026-10-06 08:26:55 +03:00
2026-09-22 21:55:33 +03:00
2026-09-28 23:30:11 +03:00
2026-10-06 08:26:55 +03:00
2026-09-26 01:52:47 +03:00
2026-09-22 22:05:27 +03:00
2026-10-06 07:49:38 +03:00
2026-10-04 20:21:10 +03:00
2026-10-09 04:54:34 +03:00
2026-10-09 04:54:34 +03:00
2026-09-27 08:55:13 +03:00
2026-09-25 02:26:37 +03:00
2026-10-02 17:07:03 +03:00
2026-10-04 19:50:20 +03:00
2026-10-07 22:08:29 +03:00
2026-10-04 21:34:24 +03:00