pickle -> sqlite store: D6 async writes, D9 reload race, one-shot pickle migration

This commit is contained in:
Oleksandr Kozachuk
2026-07-13 13:04:32 +02:00
parent 6e5abf3d2c
commit f6c3e7d8e5
9 changed files with 331 additions and 47 deletions
+9
View File
@@ -21,3 +21,12 @@ can speak differently per channel.
When `news` points to a non-existent file, the `{news}` placeholder
stays literal in the system prompt (no crash, no empty substitution).
### CFG-04 — Config hot-reload applies on the event loop (coverage: test)
The watchdog observer thread never mutates live config references
itself: a detected change is loaded, then the swap of `bot.config`
and all responder `.config` references is scheduled onto the event
loop (`call_soon_threadsafe`), so no request ever reads a
half-swapped config (D9). Before the loop runs (startup), the swap
applies directly — there are no concurrent readers yet.