Tim Lingo
5ddb860201
fix(soul): ratio guard against genesis seeding over a populated engram
...
Genesis boot previously seeded a fresh identity and saved it over snapshot.json
whenever the in-memory graph looked empty. Replace the fixed node-count threshold
with a ratio guard: refuse to seed when the on-disk snapshot is large
(>200KB) but the loaded graph is sparse (< disk/16000 nodes).
KNOWN LIMITATION: this gates only the seed/pre-serve-save path. The deeper cause
is a non-atomic engram_save (fopen wb truncates to 0 before writing 47MB), which
creates a window where a concurrent load reads an empty file -> genesis -> and if
guard_disk is read in that same window the guard passes. The real fix is an
atomic engram_save (temp + fsync + rename) in el_runtime.c, tracked separately.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 13:18:35 -05:00
..
2026-06-11 08:45:55 -05:00
2026-06-15 12:40:47 -05:00
2026-06-15 12:40:47 -05:00
2026-06-17 13:18:35 -05:00
2026-06-15 12:40:47 -05:00
2026-06-13 08:42:40 -05:00
2026-06-15 12:40:47 -05:00
2026-05-03 17:55:37 -05:00
2026-06-15 12:40:47 -05:00
2026-05-03 17:55:37 -05:00
2026-06-15 12:40:47 -05:00
2026-06-15 12:40:47 -05:00
2026-06-15 12:40:47 -05:00
2026-06-15 12:40:47 -05:00
2026-06-15 12:40:47 -05:00
2026-05-08 19:43:57 -05:00
2026-06-15 12:40:47 -05:00
2026-06-15 12:40:47 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-08 19:43:57 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-08 19:43:57 -05:00
2026-06-15 12:40:47 -05:00
2026-05-13 11:47:54 -05:00
2026-06-13 08:42:40 -05:00
2026-06-15 12:40:47 -05:00
2026-06-15 12:40:47 -05:00
2026-06-15 12:40:47 -05:00
2026-06-15 12:40:47 -05:00
2026-06-15 12:40:47 -05:00
2026-06-15 12:40:47 -05:00
2026-06-15 12:40:47 -05:00
2026-06-15 12:40:47 -05:00
2026-06-15 12:40:47 -05:00
2026-06-15 12:40:47 -05:00
2026-06-15 12:40:47 -05:00
2026-05-03 04:17:02 -05:00
2026-05-03 11:31:04 -05:00
2026-05-03 11:31:04 -05:00
2026-06-17 13:18:35 -05:00
2026-06-15 12:40:47 -05:00
2026-06-15 12:40:47 -05:00
2026-06-15 12:40:47 -05:00
2026-06-15 12:40:47 -05:00
2026-05-03 17:55:37 -05:00
2026-06-15 12:40:47 -05:00
2026-05-08 19:43:57 -05:00