fix(cross-session-continuity): resolve 11 issues from code review

1. Missing closing brace on hard_bell block in handle_chat_agentic — safety gate was broken and all subsequent code unreachable.
2. Replace phantom engram_get_node_by_label() (not a runtime builtin) with engram_search_json + exact label filter in all three call sites (chat.el session_preload, session_summary_write, soul.el boot loader).
3. Fix session_summary_autogenerate scoping bug — snippets/count mutations were inside an if block and silently discarded each iteration; moved to top-level of while body using if-expressions per the el mutation rule.
4. Fix agentic session history restore — state_get fallback now calls session_hist_load (session:messages:SESSION_ID) on cold start; persist now uses session_hist_save so the write and read use the same label scheme.
5. Wire soul_prev_session_summary state key into session_preload as primary source, eliminating the dead state write.
6. Wire soul_affective_context state key into handle_chat affective prefix check, eliminating the dead state write.
7. Add session_summary_autogenerate + session_summary_write to the agentic path so users on handle_chat_agentic get session summary continuity.
8. Add import "chat.el" to neuron-api.el to make session_summary_write dependency explicit.
9. Replace corrupted em-dash bytes (\xc3\xa2\xc2\x80\xc2\x94) in session_preload headers with plain hyphen per VOICE RULE.
10. Add newline before return in handle_api_consolidate to fix statement-separator issue.
11. Add delete-before-write to conv_history_persist to prevent unbounded engram accumulation per turn.
This commit is contained in:
2026-06-22 13:39:46 -05:00
parent 795b32ad1a
commit 95cb49a8b0
3 changed files with 145 additions and 62 deletions
+3 -1
View File
@@ -1,4 +1,5 @@
import "memory.el"
import "chat.el"
// neuron-api.el Native Neuron cognitive API handlers.
//
@@ -661,5 +662,6 @@ fn handle_api_consolidate(body: String) -> String {
if str_eq(sum_id, "") {
println("[api] consolidate: session_summary_write failed — summary not persisted")
}
} return "{\"ok\":true,\"snapshot\":\"" + snap + "\"}"
}
return "{\"ok\":true,\"snapshot\":\"" + snap + "\"}"
}