self-review 2026-05-18: add embed_ok to heartbeat ISE
Ollama availability is a silent failure mode: when the embedding service is down, semantic seed injection falls back to lexical-only activation with no signal in the ISE stream. Add embed_ok field (0/1) to every heartbeat by probing http://localhost:11434 — makes Ollama health visible without a separate monitoring path.
This commit is contained in:
Vendored
+12
-1
@@ -23,6 +23,7 @@ el_val_t idle_reset(void);
|
||||
el_val_t ise_post(el_val_t content);
|
||||
el_val_t elapsed_ms(void);
|
||||
el_val_t elapsed_human(void);
|
||||
el_val_t embed_ok(void);
|
||||
el_val_t emit_heartbeat(void);
|
||||
el_val_t pulse_count(void);
|
||||
el_val_t pulse_inc(void);
|
||||
@@ -102,6 +103,15 @@ el_val_t elapsed_human(void) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
el_val_t embed_ok(void) {
|
||||
el_val_t resp = http_get(EL_STR("http://localhost:11434"));
|
||||
if (str_eq(resp, EL_STR(""))) {
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
el_val_t emit_heartbeat(void) {
|
||||
el_val_t pulse_raw = state_get(EL_STR("soul.pulse"));
|
||||
el_val_t pulse = ({ el_val_t _if_result_2 = 0; if (str_eq(pulse_raw, EL_STR(""))) { _if_result_2 = (EL_STR("0")); } else { _if_result_2 = (pulse_raw); } _if_result_2; });
|
||||
@@ -114,7 +124,8 @@ el_val_t emit_heartbeat(void) {
|
||||
el_val_t wmc = engram_wm_count();
|
||||
el_val_t up_ms = elapsed_ms();
|
||||
el_val_t up_human = elapsed_human();
|
||||
el_val_t payload = 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_concat(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_concat(EL_STR("{\"event\":\"heartbeat\",\"pulse\":"), pulse), EL_STR(",\"boot\":")), boot), EL_STR(",\"idle\":")), idle), EL_STR(",\"node_count\":")), int_to_str(nc)), EL_STR(",\"edge_count\":")), int_to_str(ec)), EL_STR(",\"wm_active\":")), int_to_str(wmc)), EL_STR(",\"ts\":")), int_to_str(ts)), EL_STR(",\"uptime_ms\":")), int_to_str(up_ms)), EL_STR(",\"uptime\":\"")), up_human), EL_STR("\"}"));
|
||||
el_val_t emb_ok = embed_ok();
|
||||
el_val_t payload = 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_concat(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_concat(el_str_concat(el_str_concat(EL_STR("{\"event\":\"heartbeat\",\"pulse\":"), pulse), EL_STR(",\"boot\":")), boot), EL_STR(",\"idle\":")), idle), EL_STR(",\"node_count\":")), int_to_str(nc)), EL_STR(",\"edge_count\":")), int_to_str(ec)), EL_STR(",\"wm_active\":")), int_to_str(wmc)), EL_STR(",\"ts\":")), int_to_str(ts)), EL_STR(",\"uptime_ms\":")), int_to_str(up_ms)), EL_STR(",\"uptime\":\"")), up_human), EL_STR("\",\"embed_ok\":")), int_to_str(emb_ok)), EL_STR("}"));
|
||||
ise_post(payload);
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user