From 94b71a78dc94a4766a7643e9733ec7d48568f5a9 Mon Sep 17 00:00:00 2001 From: Will Anderson Date: Tue, 19 May 2026 08:58:53 -0500 Subject: [PATCH] =?UTF-8?q?self-review=202026-05-19:=20fix=20curiosity=5Fs?= =?UTF-8?q?can=20seed=20=E2=80=94=20'seed'=20is=20a=20reserved=20EL=20name?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit EL compiles any variable named 'seed' to EL_NULL at call sites (likely conflicts with BFS seed node terminology in the runtime builtins). Rename to 'curiosity_seed' throughout proactive_curiosity(). Also note this as a known EL reserved-name hazard alongside the inline if-else string expression bug. --- awareness.el | 15 +++++++++------ dist/awareness.c | 12 ++++++------ 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/awareness.el b/awareness.el index 9c2ebc5..2508549 100644 --- a/awareness.el +++ b/awareness.el @@ -108,15 +108,18 @@ fn proactive_curiosity() -> Bool { // expressions. EL codegen initialises the result slot to 0 (null) before // evaluating the if, so string-literal if-else branches can produce an // empty string when the true branch fires. Imperative shadowing is safe. + // + // NOTE: variable named "curiosity_seed" not "seed" — "seed" appears to be + // a reserved/conflicting name in EL that compiles to EL_NULL at call sites. let minute_block: Int = (ts / 60000) % 4 - let seed: String = "memory knowledge context" - if minute_block == 1 { let seed = "self identity values architecture" } - if minute_block == 2 { let seed = "recent decision pattern lesson" } - if minute_block == 3 { let seed = "working active project" } - let results: String = engram_activate_json(seed, 2) + let curiosity_seed: String = "memory knowledge context" + if minute_block == 1 { let curiosity_seed = "self identity values architecture" } + if minute_block == 2 { let curiosity_seed = "recent decision pattern lesson" } + if minute_block == 3 { let curiosity_seed = "working active project" } + let results: String = engram_activate_json(curiosity_seed, 2) let found: Int = json_array_len(results) let wmc: Int = engram_wm_count() - let ise: String = "{\"event\":\"curiosity_scan\",\"seed\":\"" + seed + let ise: String = "{\"event\":\"curiosity_scan\",\"seed\":\"" + curiosity_seed + "\",\"activated\":" + int_to_str(found) + ",\"wm_active\":" + int_to_str(wmc) + ",\"ts\":" + int_to_str(ts) + "}" diff --git a/dist/awareness.c b/dist/awareness.c index c6e4048..28a8a07 100644 --- a/dist/awareness.c +++ b/dist/awareness.c @@ -133,20 +133,20 @@ el_val_t emit_heartbeat(void) { el_val_t proactive_curiosity(void) { el_val_t ts = time_now(); el_val_t minute_block = ((ts / 60000) % 4); - el_val_t seed = EL_STR("memory knowledge context"); + el_val_t curiosity_seed = EL_STR("memory knowledge context"); if (minute_block == 1) { - seed = EL_STR("self identity values architecture"); + curiosity_seed = EL_STR("self identity values architecture"); } if (minute_block == 2) { - seed = EL_STR("recent decision pattern lesson"); + curiosity_seed = EL_STR("recent decision pattern lesson"); } if (minute_block == 3) { - seed = EL_STR("working active project"); + curiosity_seed = EL_STR("working active project"); } - el_val_t results = engram_activate_json(EL_NULL, 2); + el_val_t results = engram_activate_json(curiosity_seed, 2); el_val_t found = json_array_len(results); el_val_t wmc = engram_wm_count(); - el_val_t ise = el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("{\"event\":\"curiosity_scan\",\"seed\":\""), EL_NULL), EL_STR("\",\"activated\":")), int_to_str(found)), EL_STR(",\"wm_active\":")), int_to_str(wmc)), EL_STR(",\"ts\":")), int_to_str(ts)), EL_STR("}")); + el_val_t ise = el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("{\"event\":\"curiosity_scan\",\"seed\":\""), curiosity_seed), EL_STR("\",\"activated\":")), int_to_str(found)), EL_STR(",\"wm_active\":")), int_to_str(wmc)), EL_STR(",\"ts\":")), int_to_str(ts)), EL_STR("}")); ise_post(ise); return (found > 0); return 0;