fix(reliability): state-management — document and partially fix concurrent state races
Neuron Soul CI / build (pull_request) Has been cancelled
Neuron Soul CI / build (pull_request) Has been cancelled
Issues addressed: - #2: Document session_index non-atomic RMW (engram node safe under new mutex) - #3: Document conv_history global race in handle_chat (session path unaffected) - #4: Scope session_continuity state key per session_id in layered_cycle - #5: Document active_imprint_id global race with fix path - #6: Fix next_bridge_id to use uuid_v4() for collision-free IDs - #7: Document session_hist_save delete-then-insert race - #8: Document /api/graph/edges engram_save race (fixed in el_runtime.c) - #10: Document agentic_conv_history global race in awareness loop Issues #1 (engram_global mutex) and #8 (atomic engram_save write-to-temp+rename) are fully fixed in el_runtime.c (committed to foundation/el repo separately). Issue #9 skipped — already fixed in PR #31.
This commit is contained in:
@@ -288,8 +288,11 @@ fn layered_cycle(raw_input: String) -> String {
|
||||
let cont_status: String = json_get(continuity, "status")
|
||||
let cont_action: String = json_get(continuity, "action")
|
||||
|
||||
// Store continuity status so imprint can adjust its response register
|
||||
state_set("session_continuity", cont_status)
|
||||
// Store continuity status so imprint can adjust its response register.
|
||||
// TODO(reliability #4): session_continuity is process-global; scope per session_id
|
||||
// when available to prevent cross-session bleed under concurrent layered_cycle calls.
|
||||
let cont_key: String = if str_eq(session_id, "") { "session_continuity" } else { "session_continuity:" + session_id }
|
||||
state_set(cont_key, cont_status)
|
||||
|
||||
// Identity anomaly: add a gentle verification cue to the input before imprint
|
||||
let guided: String = if str_eq(cont_action, "identity_check") {
|
||||
|
||||
Reference in New Issue
Block a user